Project Risk | Agile Practice |
Addressing schedule and estimate risks | Manage to done, Velocity, Relative estimating, User stories |
Addressing the risk of building the wrong thing | Deliver early and often in small increments, Iteration demos |
Addressing the risk of validating your architecture | Steel thread, Iterative development |
Identifying risks and issues as soon as possible | Daily stand-ups, Frequent retrospectives, Iterative Development, Manage to done |
Addressing scope risks | Iterative development, User stories, User story slicing, Relative Estimating, User story mapping, Trim the tail |
Addressing people risks | Paired programming, Team ownership practices |
Addressing quality risks | TDD, BDD, ATDD |
This list doesn't address the risks that accompany any change initiative, but it does underline that many agile techniques are directly targetted at averting project risk. Agile practices help us shorten the distance between guessing (planning, designing, estimating, etc) and knowing.
See also - Chris Matts wrote about this topic recently and gave some nice examples of how he talked about risk during a methodology audit.
http://theitriskmanager.wordpress.com/2011/12/12/the-language-of-risk/
Great topic, Steve. One that you could probably add is "project cancellation risk" with the Agile practice of "delivering done usable software at the end of every Sprint" so as not to be stuck with the best damn architecture known to man that does absolutely nothing.
ReplyDeleteAlex
I agree whole heartedly - thanks Alex
ReplyDeleteChris Matts wrote about this topic recently and gave some nice examples of how he talked about risk during a methodology audit.
ReplyDeleteI've added a link to the post above.
Steve
ReplyDeleteNice post.
The key is to understand how the practices address risks. Some of them are more subtle than others. Otherwise you can break the risk management process.
Chris
Yes, I agree. I liked your post because it gave a few examples. Sounds like a great blog post series for someone to write ;)
ReplyDelete