I've just been reading a well thought out article on Option Theory applied to software - "Real Options" Underlie Agile Practices, posted by Chris Matts and Olav Maassen.
I like the concept, and its common sense approach resonates well with my beliefs. I'll try and summarize, but you should read their article for the full story.
There are three possible decisions when faced with an option (in our case, an approach, an architectural choice, an implementation choice, etc) -
- Yes
- No
- No Decision Yet
The 3rd choice is often overlooked and a decision is made earlier than it needs to be, curtailing any chance that you will learn more information and make a superior choice later on. The authors explain that when listing options, it is important to define when the true "must have a decision point is" for each option, and passing one of those "drop dead" points is actually making a decision "No" for an option.
The key points for me from this article were:
- List options early, and keep looking for new options
- Determine what the true last possible time an option is still viable, and regularly assess if these change due to other decisions
- Make a solid "Yes" decision for an option at the last possible moment - this leaves open the opportunity for newer options to emerge
I came across this article by looking up the speakers at a local upcoming conference in Seattle. The authors are speaking at the APLN Agile Leadership Summit in Seattle (July 17-18).
Troy.