Saturday, May 23, 2015

"Agility" is a philosophy of managing complexity and unpredictability through empiricism.

Many forward-looking organizations are moving from doing Agile to being agile if we can only manage what we measure, how to measure the maturity of organizational agility? The measuring needs to go beyond agile, because "agility" is a philosophy of managing complexity and unpredictability through empiricism. How do you measure a philosophy?

Variance between software development teams is to be expected and wholeheartedly accepted. Many will attempt to improve all the teams in an organization simultaneously to the same standards and metrics (CMM-style, presuming that the goal is a single organizational maturity or capability). However, treat each team, its context, and its value flow as individual instances which have different issues at different times and, therefore, need to be handled individually. There are practices that agile is enhanced with; such as engineering practices, testing practices, requirements etc. Also, many of the agile practices assume there are other project management practices in place it could leverage of; take Risk Management or Communication Management as examples.

There are measures that matter. Everything else is a means towards those ends. From project/program management perspective, the goal is to deliver best, fast, good quality and cost-effective products or services according to requirements or business expectations, and make the adjustment from spending organizational resources on something with low business value and slow ROI to delivering an alternative with much higher business value and faster ROI.

- Time from work approval to completion (schedule, on-time)

- Cost of work (human cost, resource, on -budget)

- Quality of work (customer satisfaction, on- value)

It is very complex to measure Agile values at the organizational level: Some have tried this using an organization-wide agile maturity assessment with mixed success. Others have moved towards agile maturity assessment based on the key practices. Delivery teams, either software and non-software score themselves against each practice, where they want to be if increasing the maturity of this practice adds value, and how they think to get there by defining some team actions, and then scale and amplify the practices. Overall, keeping track of following factors will help improve Agile maturity:

-Safety Net: Know what it means to be on track; know when you've gone off track; know how to get back on track.

As with all models, there are pros and cons. The Agile maturity model is not for the management to beat the team or find fault with the teams. It is for the teams to know where they are and where they are going. Still, that maturity model is a possible answer to a much-asked question: How mature is a team or organization as a whole in its agility? The model has to be open - ended in the sense that you might have a number of levels which eventually lead to 'full maturity,' and it is a state of 'actively self-organized continuous improvement' to build a high - mature agile organization.