Am I hearing right — ‘BEST’ practices in Agile ??
In Agile ways of delivering software products we often hear people talking about adopting ‘Best’ practices to improve their delivery.
If you try looking for BEST practices definition in Wiki you get -
A best practice is a method or technique that has been generally accepted as superior to any alternatives because it produces results that are superior to those achieved by other means or because it has become a standard way of doing things, e.g., a standard way of complying with legal or ethical requirements. Best practices are used to maintain quality as an alternative to mandatory legislated standards and can be based on self-assessment or benchmarking.
In my view, Best Practice must surely be able to demonstrate a superior outcome achieved because of the way the thing has been done.
At the same time, Best Practice is quite rare. That’s why it’s ‘Best Practice’ not ‘Quite Good Practice’.
Best Practice generally demands superior skill in execution. It may also include a high quality of insight, an unorthodox use of techniques previously little used for that purpose, or simply taking the tools available and doing something that bit special with them that lifts the result from standard to sublime.
Best Practice must surely be able to demonstrate a superior outcome achieved because of the way the thing has been done.
Do we have BEST practices in Agile ?
Cynefin framework which was first developed by Dave Snowden in 1999 in the context of knowledge management and organisational strategy recognizes the causal differences that exist between different types of systems, proposing new approaches to decision making in complex social environments.
The basic types of systems involved in Cynefin are divided into ; Simple, Complicated, Complex, Chaotic and Disorder (in the middle of the image below).
Cynefin is known as a sense-making model, and not a categorization model. In a sense-making model the data precedes the framework, making it good for exploration.
As per Cynefin framework — Agile practices fall under ‘Complex’ domain category. OK, now try to understand what is ‘Complex’ domain !!
In the complex domain, we find the relationship between cause and effect can only be perceived in retrospect and the results are unpredictable. Here, we need to create safe to fail experiments and not attempt to create fail safe design. We cannot solve complex problems with best or good practices alone. While conducting safe to fail experiments, we must dampen the parts that fail and amplify the parts that succeed. In this domain we get emergent order and practice that is often unique.
Emergent practice, behavior or order results and the approach is to:-
PROBE — SENSE — RESPOND
Probe — Experimental input
Sense — Failures or successes
Respond — Decide what to do
Meanwhile, when you look at the application domain for Best practices it is ‘Simple’ domain. Simple domain is where we are in an ordered system and where the relationship between cause and effect exists, is predictable in advance and is self evident or obvious to outsiders.
Hence we categorize the causes in the system (identification of specific pattern) and apply best practices accordingly.
When BEST practices can be applied for Simple problems why should we do the same for problems where there is a demand of exploration/innovation ideas to arrive at a solution — that is where majority of our Projects/Product implementations fall under :)
Just because “Company A” had success with a particular initiative doesn’t mean that “Company B” can plug-and-play the same process and predict the same result.
Deploying Best Practices depends on the people, process, and the systems in place. It depends on the overall complexity of the business and a number of transactions. All these parameters cannot be cut and paste in one setup to another. All assumptions cannot be capture 100%.
Best practices are ALWAYS static
Many of us recognize this intuitively: best practices are optimized for a specific place and time and don’t necessarily transfer easily between cultures. What worked in EUROPEAN geography may not work as it is in India.
They worked BEFORE, but there’s no guarantee they’ll work for what company’s needs NOW.
BEST practices forces one to stay in ‘Fixed’ mindset: Moment we starts following specific template, checklist,prescribe way , there is no thinking. It will be routine monotonous work.It has built in danger in it.
BEST practices forces to minimize experimentation: No expeirment -> No Learning -> No/Less Growth !! And believe me this is not the place to be in for longer duration especially in the current competitive market …
Conclusion : Working in Agile ways is always about exploration (experimenting) and making course correction (inspect & adapt). Agile is not silver bullet, approach that works for one organization/team may not work for other and at the same time Agile is not a recipe of success either !!
By nature Agility is all about one’s ability to move quickly and easily (see the dictionary meaning). For that people/orgs/teams working in Agile set up should focus towards having flexibility, improvisation and continuous learning & exploration culture.
None of the teams/organizations can stay in successful path when they run behind ‘BEST’ practices. Moment they stick to Best/Good practices teams loose the focus of staying in the path of Continuous learning/improvement journey which may affect the business growth significantly !!
In short, Agile Practitioners/Change Agents should always be open enough to assess the current stage & make necessary adjustments before moving further in the journey (carrying Growth Mindset) . Take a small step to learn from it and keep experiment !!
Don’t forget — it’s OK to fail, but try to fail fast !!