Agile project management methodologies have been around for almost a decade but it’s not until the last few years that it’s gained critical mass amongst the software development community. The web develpment community, though, has so far somewhat defied this trend and keeps resisting what many developers simply call “common sense practice”. I have often been told by drupalistas that agile just wouldn’t work for them or sometimes even that agile isn’t mature enough.
However, agile – and scrum in particular – is now slowly picking up momentum among web devs; especiallly within the Drupal community. Curiosity about the new kid on the block is growing and I’ve been increasingly asked about possible ways to get started.
My main advice used to be to stay away from half-hearted implementations of any agile methodology – not knowing which elements to mix is likely going to lead to sub-ideal results. If you want to try this – my advice is to find an experienced agile coach to help you. However, after a while I came to realise the insistence of many agilistas to go the whole way is one of the reasons why agile adoption is low.
That’s when I started to change my approach and told people that there are 4 hard simple steps to get them started on their road to agility:
- Change your mindset and embrace change
I often found that while decision makers want to buy into agile, once they realise the significant changes that need to be implemented in order to be agile they backpedal. Being agile means trusting people to make the decisions they are best qualified to make. It’s one of the cornerstones of agile and while It may sound simple It is often the first point of failure when starting the transition to agile. Be prepared for this change and its consequences. - Increase communication
Make sure everybody in your team talks to each other. It’s impossible to be agile if people don’t do that. It doesn’t matter if they don’t just talk about work – in fact, I believe you should encourage that. This will help getting little (and big) details that would otherwise fall under the radar to be communicated and keep everybody up-to-date on who is doing what. As a welcome side-effect, it should also help the team to form a sense of “we” and increase morale. - Trust your developers
Who is most likely to know the particulars of a task? The answer is almost exclusively: the person who does the job. And if this isn’t reflected in your process something is wrong. It doesn’t matter how many people think adding Facebook integration only takes 2 weeks – if the person developing the feature thinks it will take him 4 weeks chances are it’s going to take longer than the originally estimated 2 weeks. At the beginning the estimates from your developers are going to be off but estimation is an art in itself. With experience the accuracy of their estimates are going to increase and within a few sprints they are going to be spot on target! - Do things in iterations
Things are best done in bite-sized chunks. This holds true for food as much as for any kind of software development. In scrum they are called sprints but whatever you want to call them, they are iterations. They allow for some breathing space in between and more importantly, reflections. Use the time to look at what went wrong and how to avoid the same mistakes in the next iteration. It’s also a good idea to consider what went well and make sure they can be replicated in a sustainable manner. - Involve the community and contribute back
Ok, I know I originally said there are only four points and to be honest, this point isn’t strictly speaking part of any agile methodology. However, being agile is all about inducing a sense of we and foster intra as well as inter-team co-operation. Besides, it makes perfect business sense to maintain a high profile within the Drupal community.
This article was posted by me on atchai.com on 22 August 2010.