Tuesday, August 30, 2011

Best Practices for Agile Managers

Agile Managers! Sounds like an Oxymoron?

In reality, there are organizations which have functional or product manager roles which do not fit under the traditional roles defined by agile methods. Jurgen Appelo started a thread (on his blog) to capture the best practices for a newly minted agile manager.

Here is what I think (as interpreted from the Agile principles)..please add on if I missed anything important

An agile manager should:

  • Focus on optimizing the "business value" being delivered by the agile team. You may decide on your own metrics for business value (qualitative, quantitative or gut feel), but key is to have a sense ..at all times
  • Pursue delivery of a fully working software at end of each sprint
  • Periodically (pick your own frequency) Review and optimize the 'Done' list
  • Identify key stakeholders and ensure their participation (as required) during the entire project life cycle
  • Set expectations clearly (with all stakeholders), manage expectations to avoid last minute surprises
  • Make an genuine effort to understand all aspects of the project (example: if you are not technical, don't avoid the architecture all together, try to gather just enough understanding)
  • Set up information radiators (to convey real time information to all stakeholders)
  • Focus on attaining a sustainable velocity quickly and early in the project life-cycle (it helps in planning and avoids burn outs)
  • Watch out for 'Smells' (things which might be an impediment to agile practices

Last but not the least, an agile manager should demonstrate thought leadership and show genuine concern for professional growth of each member of the team. It's essential for the agile manager to win the respect of the team. You would always be better of by being a 'Leader' rather than a 'Manager'

Monday, August 29, 2011

Myths of agility

In the context of Software development, the term “agility” is widely misunderstood. Even many seasoned software engineers associate agility with complex process changes to adopt ‘Agile’ methods such as XP, SCRUM, DSDM, FDD and Crystal etc. But in reality, this specious association can’t be any farther from the truth. Before you join the ‘Agile’ bandwagon and start reading a XP or SCRUM book, it is essential for you to understand the fine line between ‘Agile methods’ and being ‘agile’.

Being ‘agile’ is a state where your organization is completely adaptive to changing environment. You are driven by business value. Your entire infrastructure, not just IT department but also other business functions such as sales, marketing, finance, production, procurement etc look to maximize the business value generated for the organizations. All it requires certain level of maturity in the way you work, nothing else matters. In the context of Software development, you can adopt any methodology you like (yes, even waterfall, RUP) as long as you focus on a) maximizing “Business value” instead of “through-put” b) being “Adaptive” instead of being “Predictive” c) and Continuous sustainable improvement. All that ‘Agile’ methods do, is to enable some of the aforesaid attributes a bit more than any other traditional methods (such as Waterfall, RUP etc).

Looking from a holistic perspective, being agile is the end goal of all organization and adopting an ‘Agile’ method (for that matter any other software development method) is just a mean to achieve the end goal. However it’s unfortunate to see many organizations blindly adopt XP or Scrum process without giving sufficient thoughts to the values required to make an organization truly agile. It is, therefore obvious that such changes fail over long run.

If you care for being agile, have a look at the Principles behind agile methods. Have a open discussion within your team to determine what each principle means to you as a group. Look at your existing processes and see if they adhere to these principles (fully or partially). Start working on those processes which needs refinement. Change if you must, but only after fully grasping what change means to the overall organization. Rest assured you will ensure a successful and sustainable process change towards being truly agile.