Agile Tools
Agile Tools
Agile Tools
Whitepaper
Table of Contents
Introduction...3 Why do you need a tool?6 Simplest tools7 General software tools9 Old-school project management tools12 Agile project management tools15 When is whiteboard better than everything else? 17 Conclusion and Predictions..20 Author Biographies21
Page 2
Introduction Introduction
Agile software development adoption spreads over the world. According to the latest surveys, about 70% of organizations adopt agile practices (http://www.ambysoft.com/surveys/agileFebruary2008.html) and stick with it. During the last 10 years, agile methods jumped from nowhere to the peak. Such rapid revolution demands new tools. There are many developers-focused tools appearing including JUnit, Eclipse, Cruise Control, etc. However, the project management community is less self-sufficient and unable to create new tools for the new methodology in their spare time. As a result, most companies are still using old-fashioned project management tools like MS Project or generic tools like spreadsheets for project planning and tracking. The table below contains results of project management tools usage taken from TargetProcess leads (from May to July). People requested trial or free versions of TargetProcess. There were 371 requests with answers about tools usage.
Tool Category Traditional Spread sheets None Agile Bug Tracking Collaboration Wiki Other In-House
Answers 89 60 65 41 44 20 24 12 16 371
The question was in a free form and the answer was typed. Surprisingly, 18% of the respondents do not use any tool at all. Most likely, many people in the "None" category use paper and whiteboards. However, it is just an assumption.
Page 3
24% companies use traditional project management tools (vast majority use MS Project). 16% use Spread Sheets (vast majority use MS Excel). 12% use various Bug Tracking tools (JIRA is the winner in this category). 11% use Agile Project Management Tools (open source XPlanner is a leader).
Tool MS Project Spread sheets None Rally JIRA XPlanner VersionOne Basecamp Trac Mantis Other Bug Tracker custom/in-house dotProject Other Collaboration Mingle ScrumWorks VSTS Wiki Paper
Answers 81 60 65 7 17 12 9 9 16 10 17 16 8 11 6 7 7 8 5 371
Category Traditional Spreadsheets None Agile Bug Tracking Agile Agile Collaboration Wiki Bug Tracking Bug Tracking InHouse Traditional Collaboration Agile Agile Other Wiki Other
Page 4
In total, 52% use traditional tools, excel or bug tracking tools for project management. Are these the best choices for software development projects? In this article, we discuss various approaches for agile project management and provide comparisons between the simplest tools (index cards and whiteboards), spreadsheets, traditional project management software and agile project management software.
Page 5
Page 6
Page 7
Pros
Easy to learn and easy to use Flexible, may be adopted for team Inexpensive
Cons
Dont work for distributed teams Dont work for large teams Lack of reporting Manual remaining time update, burn down update etc.
Page 8
Sprint Contract Product Backlog at start of sprint (xls and pdf, as sent to the customer) Status Overview from the Planning Meeting (current burndown chart, estimated resources for next sprint, definition of done, time/location of next demo meeting, etc.) Sprint Backlog at start of Sprint (pdf - this is the actual contract) Daily Scrum Spreadsheet (xls - updated daily) Status Review from the Demo (stories/points accomplished, costs etc) Sprint Stories Story 103 Some story -> all project documents related to that story Story 105 Some other story
Wiki is not appropriate for backlog management, however a simple spreadsheet looks like a good tool for that purpose. It is possible to consolidate all of the wish lists into one spreadsheet which becomes the product backlog. It may have as little as 5 columns: Name, Effort, Priority and Estimate and "reference number" column to make it easier to find individual stories.
There are many possible ways to track sprint progress using spreadsheets (http://www.odde.com/home_page/html_files/bl_templates.html). The simplest daily scrum spreadsheet contains a list of all tasks and remaining effort for each day. The spreadsheet should be updated every day and uploaded into the wiki to make it available for all parties.
Page 9
The advantage of this approach is self evident: many companies have these tools and know how to use them. A spreadsheet is very flexible, so you can slice and dice the data as you see fit. Data reuse is not a problem per se. Backup is handled by whatever mechanisms you have in place for your PC. The wiki requires a lot of discipline so that you can find things. The basic Scrum flow was relatively easy, but data which did not obviously belong to a single sprint was always somehow a special case and finding it later was hard. A good search tool is a prerequisite for using the Wiki.
2008 TargetProcess, Inc., Michael Dubakov and Peter Stevens
The problem with Wiki and Excel is quite common. These tools are simple, but general. They do not have business logic behind them, but provide frameworks to resolve simple data manipulation problems.
Page 10
Most likely the product backlog management will be inefficient with the Wiki and spreadsheet. The Wiki is too inflexible as a data structure and the spreadsheet is too flexible. The customer, when he had the data, could too easily change the structure of the spreadsheet. Assuring the quality of the input was a problem and we had "file locking" problems: Either the customer could update or you could update, but you could not see changes made by the other until you got the spreadsheet back, nor could you update unless you had agreed with the customer that you had the writable copy.
It is good, but what are the benefits? Wiki+Excel will not work in distributed environment and will not work for large collocated teams well. Concurrent access, real-time reporting, integration with other dev. process tools all these functions are just
Cons Doesnt work for distributed teams Doesnt work for large teams Limited reporting Limited visibility Manual remaining time update, manual burn down update
Page 11
Classical PM Software Schedule a series of events Manage dependencies between events Schedule people and resources Deal with uncertainties in the estimates of the duration of each task Arrange tasks to meet various deadlines Calculate critical paths
Agile PM Software Product/Release backlog maintenance Release and Iteration plan maintenance Burn down reports Iteration velocity concept Task Board
Lets evaluate how classical PM software functions correspond to the needs of an agile team. Schedule a series of events. The schedule of events is largely determined by the priorities of the Product Owner and is negotiated from sprint to sprint with the developers. It is not required to set dates for tasks and user stories. Manage dependencies between events. Dependencies are not required most of the time. Software development teams may handle dependencies inside without any additional tool since they are pretty obvious. Schedule people and resources. That may be helpful for large projects with several development teams. Deal with uncertainties in the estimates of the duration of each task. The estimates are handled in two levels of detail - 1) seat of the pants 'story points' for rough sizing and scheduling at the release level, and 2) very detailed task estimates for monitoring progress through a sprint. There is no need for additional uncertainties analysis. Arrange tasks to meet various deadlines. The only deadlines are sprint demos and they are fixed by the sprint rhythm. Calculate critical paths. Critical paths are not important for single iteration. The development team feels it during the iteration planning and daily scrum meetings since the iteration is usually short. High level critical paths may be helpful for large projects with several development teams, but still it differs from the usual critical paths in traditional PM tools. It may include just releases and iterations, not tasks.
Page 12
"The trouble with Microsoft Project is that it assumes that you want to spend a lot of time worrying about dependencies... I've found that with software, the dependencies are so obvious that it's just not worth the effort to formally keep track of them." Joel Spolsky Lets see how traditional PM tools support required agile practices: Product/Release backlog. Just do not exist in traditional PM tools. You will have to store backlog in Excel or somewhere else and copy/paste features when required. Release and Iteration plan maintenance. May be done in traditional PM tools without problems. Burn down reports. Just do not exist in traditional PM tools. Task Board. Just do not exist in traditional PM tools. Iteration velocity concept. If you create iteration in traditional PM tools, Effort will be Iteration Velocity in fact, but you don't have a clear velocity progress picture.
In short, the tool needed for successful agile project management should be the opposite of what classical PM tools have to offer. It should compensate for classical PM tools weaknesses in an effort to avoid frustration and gaps in communication among ALL of the team members.
2008 TargetProcess, Inc., Michael Dubakov and Peter Stevens
Page 13
How many features in MS Project will you use for Iterative Development? Resources and Tasks that's it. Tasks will be independent, so critical path is useless and Gantt chart is not very helpful. Resource leveling sometimes helps, but in most cases conflicts may be resolved very easily during daily meetings. Most reports are useless. It appears, that traditional PM tools are too complex and don't bring enough value to justify its usage in iterative planning. Pros Cons
Does not support agile development concepts Limited reporting Limited visibility
Page 14
Most teams use several tools to manage all these activities. For example, the toolset may include MS Project, Requisite Pro, Bugzilla, Test Run and Support Forum. Each tool does a part of the job, but it takes time for people to export/import data between applications and often slice and dice data manually to have the complete picture. The solution is an integrated project management software that supports all development activities and provides information in a single shot. Modern agile project management software combines common activities and provides open API for advanced integration. It powers: User Stories and Epics management. Backlogs prioritization. High level release planning and low level iteration planning. Progress tracking via virtual burndown charts, Task Board and Daily Progress. Tests management via Test Cases support and integration with automated testing tools. Bugs management via Bug Tracking support and integration with external bug tracking tools. Customers requests management via Help Desk functionality or integration with third-party tools like Salesforce.
In short, you get support for an integrated process (Lean Principle at Work: Eliminate Waste, in particular, searching for information), starting from preparation through deployment and operations. The other goal of agile project management tools is to integrate several teams. In the real world, several teams work together on a single large project. Often the teams are separated by continents and time zones. It is really hard to integrate them without a tool that can be easily accessible by all teams all the time. Paper and whiteboards will not help; desktop applications will not help either. The only viable solution so far is the web based software. There are various opinions about distributed teams, including extreme: "Distributed teams are not teams; they are at best a collection of people who communicate regularly. But communication is not collaboration. A distributed team cannot create the kind of energy that comes from human eye contact, from shared spontaneous laughter, from physical touch. True collaboration requires all five senses. Distributed teams require managers, and thus can never be truly self-organizing.
2008 TargetProcess, Inc., Michael Dubakov and Peter Stevens
Page 15
Time differences and delayed response times inevitably slow down conversation, hold up decisions and ultimately cripple agility." Tobias Mayer Without a doubt, is it better to have collocated teams. However many companies are distributed geographically for business reasons and software development projects will be executed by distributed teams. There are ways to mitigate the problem. For example, collocate teams for the first release, exchange team members on a regular basis, use web cams and interactive software for meetings. Web based agile project management tool is one more way to reduce the negative effect of distributed teams.
What is the downside of an online tool? Mostly reduced flexibility compared to cards. A physical taskboard is a much more effective Information Radiator than a web page and cards are extremely productive for the kind of group work that occurs in Scrum brainstorming stories, sprint planning and the retrospectives. A program structures information the way it was designed to. If your needs are different or simply not envisioned by the tool, then you have to figure out a work around. Pros Cons
Works for distributed teams Works for large teams Real-time reporting Integrated solution, provide connectors to source control, but tracking, etc.
Limited visibility Sometimes hard to adopt for existing development process Significant learning curve Maybe quite expensive
Page 16
Velocity tracking, Time tracking Burn Down Update and other charts update Communication Reporting
1 manual, asking each person 1 manual 4 just great 1 poor reports since all data offline 4 everyone involved 4 almost free
1 3 3
4 automatic 2 exists 4 almost endless reporting capabilities 1 may become a problem 1 may be quite expensive
3 2
Total:
57
52
43
We have 57 for tangible tools, 52 for web-based software tools and as little as 43 for spreadsheets. Are you still using spreadsheets? Although the above scores are somewhat subjective, it is still clear there is a better way than spreadsheets or other tools not designed for Agile.
Page 17
Tangible tools are more preferable for agile processes use them if you can! But remember, that it remains the case for collocated teams only! It is impossible to use usual tangible tools for distributed teams. Distributed teams hardly can share whiteboards and task boards. They need more formal processes and more formal tools. Agile offshore development (http://www.martinfowler.com/articles/agileOffshore.html) is there and definitely is better than the traditional waterfall process. More and more distributed teams use agile development processes successfully and that is the fact of life. What should you use in this case? Obviously, web based software is a great tool for sharing knowledge, project state and other project information. It coordinates distributed teams nicely. In fact, there are some guidelines that you may think about when reviewing the comparison table. You should prefer White Boards, Cards and Markers if:
Another important question is how can we alleviate potential problems that may arise with web-based tools for project management in agile environment? Some thoughts: Focus on communication and collaboration. Do not think that email is OK and enough. It is just not true. Use Skype, use web cams, whenever it is possible travel and meet in person. Try to break the borders in all possible ways. Plan iterations as usual using cards! Enter data into the system at the completion of the planning game. Integrate information radiators with software. For example, you may bind Ambient Orb to project status. It will be green if everything is OK and red if iteration is in trouble. You may print out iteration plan on A3 paper and stick it to the wall.
You are trying Extreme Programming or Scrum for the first time (that's important). Team is collocated. You tried simplest tools, achieved great results and don't feel a need to change anything.
You should prefer a web-based software tool for project management in agile projects if:
You have a distributed team (offshore development). You have a large collocated team (20+ people). Your executives need status reports and without them would not accept the agile process ("OK, if I can see realtime project status somewhere, you may try XP/Scrum/Lean"). You tried simplest tools and for whatever reason they did not work in your environment. (In that case, you should try to define exact reasons for the failure. Perhaps, there are communication problems or something else that can be fixed).
Page 18
We may combine results in a small matrix. No Status reporting required Small Collocated Team Large Collocated Team Distributed Team Tangible tools Mix of tangible tools and web based agile tools Web based agile tools Status reporting important Mix of tangible tools and web based agile tools Web based agile tools Web based agile tools
Page 19
Page 20
Author Biographies
Peter Stevens
My mission is to help you realize complex projects effectively. I provide coaching, training and project management to help you get started with Scrum, save projects in crisis, and make your IT operations leaner and more effective. I studied Computer Science at Colgate University and started my professional life at Microsoft. I am a Certified Scrum Master.
Michael Dubakov
I am a founder of TargetProcess (best agile project management software in the world). My Mission is to provide solutions to real problems in agile projects. I wrote several books about web development and many articles related to almost all aspects of software development.
Page 21