This is my personal guide on how to implement Agile methodology into a company.
Firstly, the workflow needs to be set-up. There are tools that can be used in order to establish the workflow.
Trello and Github integration
Trello is used to represent the state of our Github repositories. One Github repo = One Trello Board. Always use Trello as the immediate go to when wanting to know what to do.
We use lists to divide our Trello board into sections. Each section represents the state of our tasks. The sections are divided as follows: General Backlog, Backlog, In Progress, For Revision and Done.
Each task that we have to complete in our application can be represented as a card.
At the start of each sprint we take tasks from the general backlog and put them into the weekly backlog. Once we define the tasks in the weekly backlog, they do not change for that week. Each team member assigns themselve to a card. When a user assigns themselve to a card then a branch in Github must also be made. The branch name must resonate with the card, ie same name.
When a team member is working on a task then it must be in the “In Progress” list. A team member is allowed to attach a git branch and a pull request to the card. A pull request does not mean to merge the work into the master branch. A pull request is often attached, so that tests are CircleCI can start to run. A branch should only be merged when it’s corressponding card is in the “For Revision” list. While you are working on your task attach, all the resources that were used to complete the complete your assignment (Links to videos, online tutorials etc). This will help when you want to remember how you did a certain task.
When a team member has completed a task then the card must be moved from “In Progress” to “For Revision”. The card must have the branch and a pull request attachment on it as well, for direct access. A fellow Reviewer can decide to pass your work or ask for a review depending on whether s/he thinks that there could be more improvements. Pull requests are how other people are able to contribute to your work.
The team member who reviewed the card is responsible for moving the card from “For Revision” to “Done”.
So far we have discussed just Trello and Github. Trello is used to represent the state of our application. It represents the truth, of our application it’s current state.
However, we can throw Slack into the mix. Slack is used to communicate with those in your team. Slack can also be used notify developers about the state of the Trello card. With slack you can sign on into your Slack workplace.
CircleCi (Continuous Integration and Continuous Deployment)
When you push code to Github, you can use the CircleCI tool to ensure that the code you push to Github repository, passes all of the tests and is hence production ready. When the tests pass on CircleCI then you can tell CircleCI to run a deploy script on your server which will checkout out the code from the Github repository and will automatically deploy your code onto the Server.
You can use a Ubuntu Server to serve your users on the WWW. You can set up your servers remotely or in-house. Using cloud based companies such as Digital Ocean can improve proficiency. Once you have acquired a Server. Then you can install the relevant web hosting software, Tomcat and Nginx to host your application.