Let's assume you work in an agile team and follow the Scrum framework. Let's also assume that you collect and track requirements "using" user stories. Mike Cohn in his brilliant book User Stories Applied somehow discourages from putting user stories into "digital tracker". In his opinion the best place for user story (most probably yellow or green sticker) is cork- or whiteboard.
As far user stories are concerned I totally agree - but what about programming tasks, bugs and other ah-hoc "low-level" developer's communication? How can small sticker with information like this As a user I want to ... [in order to ...] help itself developers deliver the user story to the customer?
Isn't some tool help needed here?
Agile development process
In my previous team we used Scrum i.e. we collected user stories from Product Owner, estimated them during planning poker session, planned the release and Scrum iteration, were meeting everyday during daily Scrum meetings, demoed product after iteration and finally we retrospected finished iteration. This is all about high level project tracking i.e. on the user story level. But we - developers - need to track also issues i.e. smaller tasks that can be implemented, fixed, commented, investigated, discovered, applied, etc.
The tool that was helping us track project from the developer's perspective was JIRA. This is not sponsored post and nobody pays me for advertising JIRA (maybe they should :) but I'm going to recommend this tool in the next paragraphs.
Let's break the story
OK - we have a user story As a user I want to create new account in the system. And this user story is cool from the user's perspective but it needs to be split into tasks during planning session. You need to:
As you see developers have a lot of work here with one simple user story. And these single tasks should be tracked.
Why to track it?
You should track your issues in order to store useful information about each task, decisions taken, problems occurred, etc. You should track your issues also because after couple of months you could ask someone a question why something was implemented this way not the other way. The answer will be in the issue tracker with links to the source code (you could see single lines that solved the problem). The communication history will be there for you.
Developers also need to communicate with stakeholders, users, bug reporters, etc. in an effective way. And it's not always possible to have them on-site. They have to be able to give the team feedback even if there is nobody in the office - you cannot call development team members when they are at home or during vacation.
As you can see there is many arguments for tracking your projects' issues.
How to track it?
Tracking issues is the job for issue tracker, of course :) Issue trackers enable bi-directional communication i.e. on the one hand customers can report problems and new features (?) and developers on the other hand can ask customers (or other developers) for clarifications (whether they correctly understand the issue, what is really necessary, etc.).
Of course, you can employ Excel sheet to track your issues but this "solution" does not scale and if your team is bigger then you alone you should resign from this concept - employ issue tracker instead.
Which issue tracker to choose?
You can find quite comprehensive comparison here. The decision is not easy because there is many systems that do the job but I would personally recommend JIRA.
JIRA is the best issue tracker I've ever seen and worked with. This tool is cool, sexy, easy to use, intuitive, easy searchable, etc. I can enumerate many many more advantages but I want to keep the size of this post reasonable.
This tool encourages everybody to add new issues/bugs, to comment, to fix them! It is the tool every decent software development team should use - and not only the agile one. JIRA is not only a great toy (yes, developers love toys) but extremely valuable stuff that helps us doing the software.
Of course JIRA is not the only choice and it's not very objective recommendation as I don't know many other trackers. However I worked also with Mantis and many internal issue trackers (yes, you know this kind of crap).
Should I resign from paper stickers?
NO! Keep your user stories on the board and meet everyday by it. It's much better to meet by the physical table and stickers that you can actually touch and move around the board. Don't abstract and digitize things that work good in the real world.
But when it comes to bugs, task and issues use issue tracker. It cannot be tracked other way effectively.
What about being agile?
If you are using issue tracker you still can "be agile", however your tracker has to be agile-compliant. Some issue trackers - most probably your internal corporation-wide crap - are not able to fit the agile world. With some trackers it's hard to create an issue, not to mention commenting it and passing some communicates at all. Some issue trackers can be successfully interchanged with an Excel sheet and the quality of the "tracking" will be the same.
Conclusion
Originally I wanted to conclude this post using such sentence "Issue trackers are definitely part of the Agile Development world!". However, later I realized that it's not true. JIRA issue tracker is one of the tools that definitely fits the agile world but it doesn't mean that all issue tracking systems fit this world too.
Not every issue tracker fits the Agile Development world - you should definitely track your projects' issues but if you want to stay agile use an agile issue tracker.
Comments
JIRA is not free
July 17, 2008 by Tote (not verified), 1 year 34 weeks ago
Comment id: 1671
Hi,
I believe you that JIRA is a great tool for agile, however, there are other tools, too, offered for free. Of course, there is a price that you have to pay for these tools being free: that they are not perfect.
In any case, we've used Trac (http://trac.edgewall.org/) for project collaboration tool between customer and the team. It has a Wiki, issue tracking system, you can add version control access too (to SVN, for example), etc. What it does not provide, though, is the ability of managing user stories: although it can manage tickets assigned to a sprint, it does not provide any facility to view the projects, milestones, etc. from a bird's view perspective.
Therefore we gave a try to XPlanner (http://xplanner.org/), too. This provides the afore-mentioned missing feature as well as has a ticketing system. What it lacks, though, is the Wiki: although it provides Wiki syntax in tickets, it does not have a stand-alone Wiki.
Both systems are free. But you can see that we had to put the two together to get a fully-working proper environment for our purposes.
Cheers
Which ones really fit?
July 17, 2008 by groszek (not verified), 1 year 34 weeks ago
Comment id: 1672
How can you tell that your issue tracker is agile or not, are cool and sexy your top priorities :)? Looking at the comparison chart I would say: "Customizable workflow" and "Custom Fields", because you can define any process then and maybe you'll get a process predefined for user stories with subtasks, bugs, etc. But is documenting "decisions taken" really necessary? It is almost like writing a documentation, are you going to update it after each change?, otherwise it will be misleading.
Re: JIRA is not free
July 17, 2008 by pbielicki, 1 year 34 weeks ago
Comment id: 1673
Why do you want everything to be free? Experienced, good and expensive developers should work with good (thus sometimes expensive) tools. JIRA is not free but is not expensive (it's rather cheap) and boosts productivity - our team resigned from Trac because it was crap and it wasn't working for us.
Anyway - I agree with you that JIRA is not the only choice. However, the difference between Trac and JIRA is something like between Fiat and Mercedes (not the price difference) - the choice is up to you which one you want to "drive".
Re: Which ones really fit?
July 17, 2008 by pbielicki, 1 year 34 weeks ago
Comment id: 1674
It's up to you to decide which one works for your team.
> "Customizable workflow" and "Custom Fields"
You're not thinking agile :) What if you don't need it? What if the only thing you need is ready made, easy to use (yes, sexy too), handy tool?
> But is documenting "decisions taken"
Please don't read my post as a prescription to every problem and every situation and every project. I write about what I experienced and what worked well in the environment I worked in. And yes, we were sometimes (SOMETIMES) writing why we implemented such and such issue this way not the other one. Many times afterwards we were able to say "Aha!" and we were not accusing anyone of implementing crap. The answer was in the issue tracker saying that we had some technology constraints and this was the only possible implementation in that time. And many times in the issue tracker we were suggesting improvements for the refactoring if there will be need to extend the functionality. Does it sound reasonable?
"more Agile" alternatives
July 17, 2008 by Ilja Preuß (not verified), 1 year 34 weeks ago
Comment id: 1675
It sounds like you are excited about using Jira, because it improved the situation you are in. That's great! :)
Your original post sounded a lot like every Agile team should, in your opinion, use an issue tracker. Your comment seems to soften that statement a bit, which is good.
Personally, I think that issues tracker are crutches that - even if they are the best known solution for the situation your team currently is in - always should be questions in favor for approaches that lead to more direct feedback and more warm and direct communication - and thereby to more Agility.
For example, instead of having to look up the reason for an implementation in an issue tracker, I'd rather pair program with someone who knows why the code looks the way it does. I would like to have one ore more tests fail when I change something that is in conflict with those changes. And I'd want to be able to ask a question into the team room and getting an answer from my teammates. And when finally having to look up something, I'd rather ask the version control system about the commit comment that is associated with a specific change.
I also have mixed experiences with task breakdown of stories. The breakdown often feels rather artificial, so that there are code changes that I can't tell which task they should belong to. Often, even when all tasks are done, the story actually isn't. Or I find that I can't reasonably finish one task without also touching another. What works much better for me is breaking down a story into smaller *stories*. Joe Rainsberger once gave a nice example of this: http://tinyurl.com/yszjyz
Last but not least, I don't think an Agile team should have enough bugs to need software to track them. The ideal Agile team would take each bug as a "stop the line" incident, not only immediately fixing the bug, but also preventing similar bugs in the future.
Those are all ideals, mind you. There are teams which are actually doing what I described above, but not every team will be there tomorrow - or even ever. As long as we aren't there, it would probably be a good idea to admit that we aren't as Agile as we ideally could be.
Re: Which ones really fit?
July 17, 2008 by groszek (not verified), 1 year 34 weeks ago
Comment id: 1676
If a tracker can be customized (JIRA can according to the chart), you can for example: change estimation in ideal days to story points, eliminate fields you don't need etc. If a predefined process is really good, you just have more flexibility. Process evolves and what worked for your team at one time may become a limitation one day.
If you write bold, general titles like "How issue tracking systems fit agile development", expect general questions. If the title was "How JIRA fits my team", I wouldn't ask any :). There are no perfect solutions that fit everything, but some of them fit more situations and you don't always want to reinvent the wheel.
Re: "more Agile" alternatives
July 17, 2008 by pbielicki, 1 year 34 weeks ago
Comment id: 1678
Generally I totally support your point of view but you're writing about the ideal world :) where teams stay the same for the very long time. What if there is nobody in the team that can pair with me and answer my questions? It could happen even in very agile teams - you don't have to pair 100% of time.
>but also preventing similar bugs in the future.
I don't necessarily mean bugs here but issues - issues are not bugs (bugs are subset of issues). Someone, even extremely experienced developer, could forget why they used e.g. JavaMail API instead of Commons Email framework. And he/she could have very good reason to do that? How to get this information?
I wanted to express that issue trackers generally could help your agility - they are not necessary, of course. Anyway, every team should employ the best tools they need to do the work - no blog post should make them buy/deploy issue tracking system because it worked in the author's case - this is about agility, right? :)
Anyway what is the best free
September 11, 2008 by Curious (not verified), 1 year 26 weeks ago
Comment id: 1846
Anyway what is the best free tools ( defect / issue / story / backlog tracking + reporting - velocity and burndown etc ) available ( except Excel! and running inside the computer ) for doing agile development ?
I think you forgot that.
Post new comment