When starting a new software project, your team has a lot of decisions to make. Not the least of which is how to track the features from initial design through completion. Trello can help make the entire process easy and painless. Let’s jump right in.
Task Creation and Tracking
Setup with Trello is fast. Simply go to the Trello web site, logon (or create an account), create an organization for your team, add members, and set up a new board. By default, your board will include three empty lists:
- To Do
- Doing
- Done
Though your lists can be modified at any time, this is a great place to start, and will allow you to create a backlog of stories and tasks quickly, without regard to importance, how long a task might take to accomplish, or who will end up implementing them.
Every feature and idea that anyone has is fair game at this stage. Create a new card in the “To Do” list for every idea, user story, or task you can think of. As long as a card is in this list, anyone can make changes to it. Cards can be moved around at will, but should be sorted by importance. The more important cards are near the top. This forces you to make value judgments on the relative importance of your features. Because cards must be in order, no two cards can share the same significance. This eliminates the problem of every feature request being considered “critical.” The most critical card is always the one on top.
All changes and comments to all cards are logged, so it’s easy to look back and see a history of how a feature has evolved over time.
Estimation
Trello has no built-in mechanism for estimating the time any particular card will take to complete. There are informal methods for dealing with this, but one particularly clever idea is to use a web browser extension to make it painless for the entire team. Scrum for Trello is a free browser extension for Chrome, Firefox and Safari that will let you place an estimate on each card’s title.
Once the extension is installed, you can simply click on a card’s title to set its estimate. A small row of numbers appears just under the title’s text box. The numbers are the typical agile planning values from 0 to 21. Click on one to set it.
Your development team should go through each card in the To Do list and assign an estimate. Very simple tasks will probably get a 0.5 or 1. Extremely complicated tasks might get a 13 or 21. Those cards should be broken down into multiple cards so that every estimate is a single-digit number.
By design, the numbers do not contain units. They don’t represent any particular measure of time. Most Agile practitioners call them story points. At this point, don’t get hung up on what the numbers mean. They won’t be accurate at the beginning even if you try. The important thing is that the developers are comfortable that each card has a value that is accurate, relative to the other cards in the list.
You will notice that the Scrum extension adds up the estimates for each card and displays the total at the top of the list, as well as the total of all cards on the board.</div>
Iteration Planning and Scheduling
Now it is time to start planning and scheduling your actual development work. You will want to agree with your team on a set period of time in which your work will be accomplished. Most Agile methodologies refer to this as an “iteration” or “sprint.” It doesn’t matter what you call it, and I will use the former term here. The typical length of an iteration is two weeks, though some teams like to use one or three. One week iterations can work well for highly efficient teams doing very small tasks. Three week iterations work well for some teams, though I find it too long between planning and feedback.
This is also where you may want to consider making your first custom list in Trello. I like to create a new list between To Do and Doing. Simply click the “Add a list…” link to the right of your right-most list. Call it “Current Iteration.” Create the list and drag it to the space between To Do and Doing. This is where the current work will go.
Your task at this point is to select the most important cards from the To Do list, and move them to the Current Iteration list. Remember that cards should already be organized by importance from top to bottom, so you simply need to drag them from one list to the other. As you do so, the Scrum extension will update the list’s estimate. Continue dragging cards until the developers feel confident that they can complete the amount of work scheduled.
Developers should not be pressured to accept more work than they feel they can handle, especially in your first iteration.
Development
Once your sprint is planned and cards are in the Current Iteration list, development work can begin. There are now a few rules that must be strictly enforced during the development phase. One is that no one is allowed to change any card’s description or estimate. Another is that no cards be moved between the To Do and Current Iterations lists, with one exception that I will address shortly. These rules and a few more are summarized at the end of this post.
At the beginning of every day, the developers should get together to discuss what cards they intend to work on that day. No two developers can work on the same card simultaneously. Doing so indicates that there is more than one task on that card, and it should be split into multiple cards. You can do that if necessary, but be sure that the total estimate doesn’t change.
As developers select a card to work on for the day, they will assign the card to themselves (select the card, click Members, and add themselves). Then the developer will move the card from Current Iteration to Doing, and begin to implement the feature on the card. Throughout development, comments and checklists can be freely added to the card.
The powerful thing about this is that everyone on the team can see the current state of development at any time at a glance, simply by loading the project’s Trello board. Trello boards dyanmically update automatically when anything changes, so that all users see others’ changes almost immediately.
If a developer has a question for someone else on the team, he can enter that question as a comment on the card, tagging the individual(s) expected to have the answer. Those tagged in a card will be pro-actively notified by Trello.
When the developer has finished implementing a particular card, it is dragged from Doing to Done. He can then take another card from Current Iteration, assign himself to it, and drag it to Doing. Developers continue to work in this way until the iteration ends or they run out of cards.
Running out of cards is the exception to the rule of not moving cards between To Do and Current Iteration. This simply indicates that the developers are working faster than initially expected. If this happens, management (in consultation with developers) should move one or more cards from To Do into Current Iteration, again based on importance. The developers can continue working until the iteration ends.
If the iteration ends with cards still in the Current Iteration list, don’t consider it a failure of your estimation or planning. It just means you put in more cards than the developers were able to finish. This is important information that you can now use to help plan the next iteration.
Calculating Velocity
Do you have any comments, questions, or just want to see more? Please follow me on Twitter and let me know.
Did I make any mistakes in this post? Feel free to suggest an edit.