Agile is the IT industry buzzword du jour. In fact, it’s so popular that it’s transcended the IT industry and has entered the general business lexicon.
In fact, so potent is it that Spark famously declared that they are ‘going agile’ and told their employees that they either need to drink the Kool Aid or find themselves promoted to customer.
So what exactly is ‘agile’ and should you care?
Agile is an umbrella term for software development practices that emphasise adaptive planning, evolutionary development, early delivery and ongoing improvement.
Remember that developing software is an incredibly risky endeavour. Most studies put the failure rate of software development projects at around 70%. Think about it – almost three quarters of software development projects are flops. Can you imagine such a high failure rate in any other industry?
A major contributor to this failure rate is the traditional ‘waterfall’ project management approach for software development. This is where we do all of the planning, design and budgeting up-front then develop all of the software, then do all of the testing and then, if we’re still standing, inflict whatever we’ve developed onto our users.
The problem with this approach, which originated from the construction industry, is that the initial planning and design is almost always fundamentally flawed.
The truth is that we software developers normally don’t really understand what our users want until they start using our software and they can start telling us what’s right and what’s wrong with it.
With ‘waterfall’, users don’t get their hands on the product until it’s finished, so they can’t tell us it sucks until it’s too late to do anything about it. Windows Vista, anyone?
Big, monolithic waterfall projects are also like marathons. Everyone is running for what seems like an eternity. The developers are tired and in pain and they struggle to remain enthusiastic about an endeavour that seems like it’s never going to end. Often the developers are the first ones to realise that their software sucks too, which makes it even harder for them to keep pushing for the finishing line. To add insult to injury they normally have project managers and other non-technical people hanging around and micro-managing them as they sweat their guts out. Not fun!
First, deliver small
Agile takes a completely different approach.
Instead of entrusting expensive, complex software development projects to the project managers, product designers and line managers (who are so often wrong), agile focuses on building projects around motivated, skilled individuals and trusting them to make magic.
Instead of trying (and failing) to specify 100% of the product requirements and design up-front, agile focuses on delivering small at first, then on delivering iterative changes and improvements and continuously gathering user feedback. The seminal 2001 Manifesto for Agile Software Development sets out the following key values:
- Individuals and interactions over processes and tools.
- Working software over comprehensive documentation.
- Customer collaboration over contract negotiation.
- Responding to changeover following a plan.
So does it work? Absolutely! When applied effectively, an agile methodology can completely transform the software development lifecycle. It is so effective that Choice Technology (my company) would never go back to the traditional ‘waterfall’ approach.
Unfortunately, like so many of the cool ideas that come from the tech sector, the term ‘agile’ has been bastardised and abused in the corporate environment and in many companies it really is no more than a buzzword.
You can’t take mediocre teams (or even companies) and make them exceptional by making them ‘agile’.
Although I’ve seen some truly astonishing results from agile teams in large organisations, anecdotal evidence suggests that agile techniques have failed to deliver significant benefits to most large organisations who have adopted them. Even worse, many organisations have developed an ‘emperor’s new clothes’ syndrome where they congratulate themselves on how agile they are while users grumble about how crappy their IT systems are.
So can you take a large, moribund organisation and make it ‘agile’? In a word: no.
Agile is about the decentralisation of authority. It’s about delivering iterative changes in response to user requirements and feedback. It’s about recognising that those who deliver are often more competent than those who manage.
Large corporations are, by definition, hierarchical. They are designed to take authority away from the motivated and skilled people at the business end of the organisation. It’s just not in the DNA of large organisations (including most technology companies) to make a true commitment to agile methodologies.
How many middle managers do you know who would acknowledge that their troops are probably more competent than they are, so they should just get out of their way?
So should lawyers care about agile?
I certainly think so. For a start, you can now tell clients what ‘agile’ actually means and why Spark’s agile strategy is doomed to failure.
There is also a lot to learn from agile techniques and you could find opportunities to provide clients with advice on how to be more ‘agile’.
Personally I think that all projects, software development or otherwise, should focus on delivering iterative ongoing changes and on collaborating openly and proactively with users and other stakeholders. Almost all projects would benefit from being flexible enough to respond to change during execution, particularly as opportunities present themselves to do stuff smarter and better than originally anticipated.
You simply can’t apply agile techniques to repetitive ‘business as usual’ processes (sorry Spark), but all companies should be continuously gathering feedback and improving processes and tools. Often the best ideas about how to improve these processes or tools come from those at the coalface, so corporations have to figure out how to gather and act on this information.
Damian Funnell firstname.lastname@example.org is founder of Choice Technology, an IT services company, and panaceahq.com, a cloud software company. He has a long-standing involvement with the legal services industry.