Tracking progress
When you are working on your own, tracking the progress of your project is fairly simple. You keep some sort of checklist of what needs to be done, keep notes about what has been completed and you adjust your schedule as you go along. Things start to fall apart though as soon as you are working as part of a team. People keep notes in different ways and update them at different times. These incompatible ways of working mean that some people on a team may not be aware of the overall state of the development. This is a particular problem when one team member is dependent on another for a task. It also means that delays may go unnoticed until a deadline arrives. If the team does not have a confident sense of what is going on, confidence and morale will suffer, deadlines will be missed and the project schedule will fall behind. If the project is a commercial one, this also means it will start to cost more than planned.
Clearly, making sure that everyone on the team knows the current state of the project is important. To make that happen, the whole team needs to adhere to a standard process for recording the tasks that they are working on, and when those tasks are completed. In many agile methodologies, this is done using a task board which the team keeps up to date. The task board is central to the Kanban approach, and is often referred to as a Kanban board.
A task board is laid out as a series of columns that represent the different stages of completion that a task can go through - e.g. proposed, to do, in progress, in testing, complete. A task is represented as a card that starts in the leftmost column and moves into the next column as it reaches the new stage as illustrated in the first image below.In its simplest form, a task board can be implemented using real cards stuck onto a vertical surface like a whiteboard, although there are several software applications available available too.
Using the arrangement above, the information about who is doing each task would have to be included in the written content of each card. The simplified version of the task board shown below can be useful in small projects. In this version, each member of the team has their own column, and so it is very easy to see who is working on what. A useful rule with this style of board is to place a limit on the number of cards that any one person can own at one time. This encourages team members to focus on a small number of things at one time.
Implementing a task board in GitHub
If you are working on a project that involves code development you should be using a code repository such as GitHub or BitBucket.
GitHub allows you to record issues for any repository. These are pieces of development work that need to be done, and can be modifications to the existing code base or new feature requests. You can also define a project in GitHub using the Projects tab in your repository. Having done that, you can associate issues with the project. A associated issue becomes a task in the project which you can assign to a member of the team. You can also view these issues on a basic task board using only native GitHub functionality.
You can also extend GitHub in various ways. Zube is a more advanced task board which integrates directly with GitHub and provides a range of additional features and a better user experience. To connect Zube to your GitHub repository, go to zube.io and click Sign in with GitHub:
(Please note that Zube is only free within certain constraints).
Implementing a task board in BitBucket
To implement a task board with BitBucket, the simplest route is to use Trello. This cloud application implements exactly the functionality needed to set up a task board and provides native integration with BitBucket. To begin, you need to sign up for a free account at Trello.
Once your account has been created you can create a board and link it to your repository. BitBucket provides simple documentation to explain how to do this.
Implementing a task board with Trello
You can also use Trello independently for tracking tasks in a project. First, create a Trello account as described in the previous section. Then, create a team using option indicated below.
The team creation dialog allows you to specify the type of team. You should choose Engineering-IT as shown below.
As soon as the team has been created, the next page lets you invite members into the team. You can do that straight away, or add the team members later.
The next step allows you to choose a template for your board. There is a Kanban option as shown below; however, the recommended option for this project is the Agile Sprint Board.
After that, the board is live and it is up to the team to make sure that everyone operates it properly. Anyone can add cards, and it is up to the team to decide what the rules are in that regard. Cards can also be colour-coded which can be useful for displaying their priority. It is also a good idea to make sure that team members update the comments on a card as the work proceeds. This can be useful for other team members who might interact with the task in some way later on. The comments can also be a useful source of information if you have to compile a project report.
One further enhancement is to integrate your Trello board with GitHub. This can be done using the GitHub power-up
Further reading