Monday 28 January 2008

ALM and IO Models - how do they relate?

If you watch TV, read technical or business magazines you probably have heard of Microsoft's People Ready Business vision. It recognises it is people who deliver business value but their full potential is only achieved with the support of optimised IT infrastructures.
This infrastructure is very diverse and must support a wide variety of capabilities. To get a handle on this, Microsoft developed three models that collectively capture all the necessary capabilities required to support a People Ready Business. The models are:

The models also consider different maturity levels, similar to other frameworks such as CMMI, SPICE or SixSigma. As organisations mature they increase efficiencies and effectiveness. The framework recognises four levels of maturity:

  • Basic
  • Standardised
  • Advanced
  • Dynamic

It is beyond the scope of this post to elaborate about the IO models but if you are interested there is an excellent 6-page overview available here.

So what does this have to do with ALM? A lot! To implement an effective Application Lifecycle Management platform in your organisation, you have to improve several - traditionally distinct - capabilities:

  1. you have to get your project/program planning and monitoring activities right
  2. you have to optimise your development activities
  3. you have to streamline your deployment and infrastructure management capabilities

It doesn't make sense to be excellent at developing software but incompetent at deployment or vice versa. Neither does it make sense to efficiently deploy applications which don't solve business needs - you have to be efficient AND effective!

It just so happens that the Microsoft IO models describe all these capabilities and a lot more (see picture below). In the context of these models, ALM is an example of a scenario delivering a value to the business (in this case effectively managing application lifecycles).


We don't use the term IO scenario here at Microsoft, but it reminds me a lot of use case scenarios. Use case scenarios are collections of related requirements, IO scenarios are collections of related IO capabilities ..... works for me!

No comments: