You cannot exist in the world of the web and digital design without someone describing the way they work or their project as ‘agile’. Agile is modern parlance for an iterative approach to project management planning and guiding work processes. It was born in the dot com world where an emphasis is placed on producing a minimum viable product which is released as soon as possible; this can then be rapidly iteratively improved. It contrasts with a development cycle which aims to produce a fully completed feature rich project at the end of one long cycle.
In the world of dot com startups an agile methodology makes good sense in a number of ways, not least:
- The emphasis is on delivering a product that shows potential to satisfy investors rather than one end users but actually initially use.
- Technology is always developing at such a pace that a successful company will forever be extending the possibilities of their product in any event.
- A process of lots of little increments is far easier to manage and implement rather than moving wholesale from one complete version to another.
- It is good for morale, delivering yearly updates can feel like a slog up a very high mountain, making weekly incremental changes feel like achievable bite size chunks which are clearly linked to a team’s objectives.
Sometimes it takes a completely different situation to help you see with clarity the strengths and weaknesses of something. Four years ago, having finished renovating my house I ended up adopting an agile methodology to fix a recurring annoyance with the heating system. For various reasons I was not able to get the plumbers who completed that part of the renovation to fix the problem, nor could we find anyone else with the technical competencies to do the work either. The complexity of the system, the number of problems and my own technical ineptitude meant the only option I had was to try and figure to diagnose an issue and test a solution bit by bit hoping eventually to end up with a well functioning system. Here is what I learnt:
5 reasons that agile works:
- It encourages you to start, so many good ideas and projects never even get off the ground out of fear. Agile by definition encourages you to at least get on with it, by identifying a minimal viable product you can at least end up doing something. (In my case actually fixing a system that means I did not wake up to a cold house or no hot water).
- It encourages you to learn new skills and take opportunities. A key ingredient of agile is that it encourages you to embrace new possibilities, to see if things might work, this encourages you to learn.
- It allows for serendipitous possibilities. Twitter is often cited as the most obvious example when it was born out of Odeo. In my case along the way of fixing my heating by learning how to access underneath my floors I was able to install new plug sockets and install floor insulation; all of which would never have happened if I had not started out.
- It achieves results, by forcing yourself into a repetitive design/implement, design/implement cycle you do actually achieve good things (in my case a warmer house).
- The results are better than industry standard, by launching on a cycle of design and refinement you find yourself pushing yourself and with very good results (in my case a far better heating system with features that do not appear in most other houses).
5 reasons that agile does not work:
- Somethings should not be developed by agile. Heating systems are known quantities with proven technology; even complicated ones should just work. In this case I was trying to fix inexcusable poor design which I should not have had to do, unfortunately the same applies to the use of agile in the project management world – somethings should just work with no excuses.
- Agile can be expensive, especially if you do not have the resources in house. The only reason I could afford to fix my heating system by this process was that I was willing to commit time to learning new skills and equipment. If I had paid a professional plumber to carry out the same process for me it would have been very expensive indeed!
- Agile can lose sight of what it is trying to achieve. You can become locked into the process of improvement for improvement’s sake, sometimes something is just fine and does not need to be tweaked or improved.
- Agile does not work in the context of a customer who requires a fully developed solution from day one. My heating system worked so badly that anything would be an improvement so in that sense I had nothing to lose.
- Agile requires sacrifice. When moving from an existing website to a new website and you plan to use agile you need to be sure that you or your key stakeholders ready to accept the minimal viable product that will be initially developed and then rapidly iterated as users use it. It is a fallacy that you can run well for instance two websites, a live beta as well as an old one. Users will only ever want to interact/update one. In my case I could not run two heating systems side by side!