Recently, I discoverd Tim Beck’s Pliant Alliance blog and I’ve been enjoying his posts. In Delivering Business Value he writes about being pragmatic with agile (and other) practices – if it works and delivers business value, keep doing it; if it doesn’t work, stop doing it and try something else. I agree and I’d like to add that it’s not only about delivering business value, but also about sustainability and risk management.Sustainability – do your practices help you to take into account not only the short term but also the long term? Will they help you to keep on delivering business value at a steady pace? Often you can get away with cutting corners for the first release. Maintainability problems will however catch up with you and it will become harder and harder to keep on delivering value.
We’re often under a lot of pressure to deliver and say to ourselves we don’t have time to do it right the first time, we don’t have time to make it maintainable, we can’t justify it to our customer. But this is not a truth, it’s just an assumption – a limiting one. A long term focus can pay off well: one of the Toyota Way principles for instance is to base management decisions on a long-term philosophy, even at the expense of short-term financial goals (and it certainly pays off for Toyota).
Risk management – are you aware of the risks threatening your project? Do your practices help to mitigate risks or reduce the consequences? Or are you just lucky this time? Luck is not a very reliable process, neither is managing by keeping your fingers crossed…
Quite a few agile practices have implicit risk management built in, e.g. the XP practices of planning games and short iterations to manage the risk of scope changes during the project. For a practical and enjoyable introduction to risk management in software development, I recommend the book Waltzing With Bears by Tom DeMarco and Tim Lister.