I have had my head down at work trying to fix a four-year backlog of software development requests and bug-fixes. It was plain to me that carrying on as before was just not going to work and we needed to do something fundamentally different. The resource management process just wasn’t working and backlog prioritisation was a joke. I decided to implement Agile using the Scrum framework so that we could fix some of the key problems and make some space to clear the backlog. The problems I saw were:
- A very frustrated business that did not believe that IT could deliver anything sensible
- This caused the business to try and micro-manage delivery, constantly swapping priorities and wasting valuable resources
- Holding an IT Manager accountable for delivery when they had no power to deliver
- Demotivated and beaten developers and testers who had given up
- Who had stopped arguing that the business was being dumb
- Who had stopped talking to each other and the business, delivering exactly what they were asked for even if they knew it was dumb
The key things that agile delivers are:
- Forced communications
- Early failure without burning resources unnecessarily
- Ability to show and tell new functionality
- Clear Accountability
- Joint and Several between the business and the individual developers
- Accountability linked to clear commitment
- Simplicity (who can fail to estimate work rate over a two week sprint)?
We have been doing it for 9 months now and the four-year backlog is gone. We are working in real-time with the business to prioritise work and delivering like a well oiled machine. The business has started to ask for new stuff, knowing that we can and will deliver. The developers and testers are motivated and committed. We have clear and open communications, dumb stuff is exposed quickly and everyone is happier and motivated.
I like agile and for many types of work, it really delivers results quickly. Specifically it is useful where
- We need real committed business engagement
- We need to solve problems that we don’t fully understand
- We are faced with a need to deliver something quickly and fix it later
Agile is not a panacea however and is tough to implement where we have a dispersed team in different locations, lack of trust in a commercial way or sponsors who expect waterfall style delivery. My experience is that hybrids of agile and waterfall development just don’t work – largely because they mess up the point of accountability:
- In agile – every developer and tester is accountable for delivery
- In waterfall – the Project Manager is accountable for delivery
- In hybrids – who knows who is accountable?
My advice is keep it simple, do not compromise on communications and accountability and agile works.