Tools for Agile Software Development
I’ve recently tried to come up with a list of some tools that may help in agile software development, mostly because I see the need for some at work, but also inspired by choices made by the customers I work with. I’ve picked these tools because I have had the chance to use them for real work and I found out that I even like some of them. These tools help me getting work done as well as communicate with my company’s clients.
Wikis and documentation
Forget Word or OpenOffice. The nature of a wiki lets everybody on a project contribute with documentation and informational snippets. All searchable and easily cross-referenced :
- Atlassian Confluence
This is probably the most complete wiki system. It has the added concept of ’spaces’ with access control which lets you define who can access the information, a must where you want to use the same system for multiple companies. It also lets you define document templates for various document types. - Plone
This one I’ve used for several years and although it is more a CMS than a wiki, it does the same things as Confluence. It’s support for plugins also lets you choose from a wide variety of add-on products, from blogs and wiki-oriented plugins, project management, time reporting, bug tracking and lots of other features. Recommended!
Agile project management tools
Microsoft Project sucks! There I said it! At least when it comes to agile software development projects. The only one benefiting from MS Project is the project manager (and M$, of course). Don’t misunderstand, I’ve got nothing against Microsoft, but there are some tools out there that does agile projects way better :
- Scrumworks
This software is lean and mean and does just what the name says : Scrum works. Tightly focused on scrum development cycles, it does nothing to get in the way of handling your scrum project. Easy to use administration, backlog lists and sprint handling is key features. Progress reports, burn-down charts are easy to read. The only thing is that the UI is somewhat “different”. I can’t put my finger on it, but it’s just different; wait - it’s the Java UI that sucks!
Anyway, I like Scrumworks because of it’s direct, no-nonsense approach. - Mingle
Thoughtworks (TW) released version 2.0 just recently. The previous version was as lean an mean as Scrumworks and let you handle low-end middle sized projects quite easily. As of the latest version, I can’t stop thinking that TW suffered from “featuritis”; more features makes you happy! Well, I for one, thinks they are on to something but at the same time the software got somewhat bloated and the nice, new features are seemingly drowning because the UI got nothing - or at least not the same amount of attention as features. Anyway, I like Mingle. Mostly because of the “card” feature with transitions. It’s easy to use for team members and the client can understand and appreciate just that functionality. The card-trees, I’m not so sure about, but they are a nice way to visualize stories, releases, sprints, tasks etc. The real value of them probably isn’t that great, although I’ve read “standing ovations” over them. - Version One
This is the one I’ve had the least experience with, but it is a powerful software package. It also is the hardest to get going in my opinion. As a “plain” developer it’s ok; you go in, report on work done and grab some new work. But for a small team, I’ve had a hard time setting it up properly. The projects needs quite much information in regards to get on working. It may only be me, but the previous two tools is more touch-and-go with respect to starting up. Feature-wise it may be one of the better tools for the job, but as I mentioned, I haven’t had any long experience with it.
Other tools, keeping you happy and agile
- Subversion
When doing remote work, Subversion (SVN) is the tool for version control. Comparing it with Microsoft Sourcesafe (SS) is as comparing apples and oranges. The speed you get when checking source in and out over the network is way beyond SS. Combined with TortoiseSVN or AnkhSVN (if you’re using Windows based development tools) is a winner, again in my humble opinion. It’s got the features you need; branching, merging. I’ve looked into some of the more modern, distributed revision control systems mercury (Hg), but so far I haven’t got to try them out sufficiently to say anyting sensible about them other than that they seem promising. - CruiseControl
Thoughtworks again. Well, what can I say. If you get it right, you can save a lot of time doing integration stuff and you get real feedback on the build, test and coverage of your code. I said “get it right”, because I think this is some complex matter. Even in it’s most simple form I think it is hard to get it to build, test, report coverage, package and version my software, but when you’ve got through the first hours of frustration and begin to “get it right”, the reward is coming in the form of nice build-, test and coverage reports and you can have it deploy your software on your testbed, wrap it up in a nice archive, tag the source repository and lots of other stuff. If you can, my advice is to hire someone who’s done this before a couple of hundred times to help you get going. It surely will be worth it in the long run. - Planningpoker.com
Finally, in my previous post, I praised Planningpoker.com. I still use it, when on projects with two or more developers. I tried to do it on my own - for myself - and found it disturbing to not agree on my own estimates with myself.
Anyway, it’s perfect when developers sit on different locations, heck, even when we sit in the same building. It saves the trouble of booking a meeting room (which, in some places I’ve worked, always is taken) and all the other chit-chat that normally interferes with task at hand. (I’m really not that structured either).
These tools, among many others, I use on a regular basis in various projects and settings and I’ve found they help me do my work. I’m not saying these tools are the only ones, just some I have found to keep me productive. Some of them are easy to use and some of them harder. Each of them has certain aspects of them which make them more suitable for this, while others are more suitable for that. I recommend you take a look at them, give them a go. But whatever you do, don’t let them get in the way of your real tasks. If it doesn’t fit early, it probably won’t on the long run either.