To be or not to be that is the question. Is Agile the magic bullet , is it a buzz word or is it a way of life. Lets explore these questions in this article
When not to use Agile
Before we jump on the agile train , its extremely important to understand
- When agile does not fit
- Why predictive is still a good approach
- Which scenarios need a hybrid approach using both Predictive and agile.
If your scope is fixed, on negotiable AND if you have an exact idea how the end product should look like , Predictive is the best approach.
Let us consider a scenario in which you need to renovate a bathroom , you need
- exact plans
- fixed timelines
- a decently fixed cost estimate
In this case planning using an agile fashion does not make sense as you exactly know what you are looking for. You will end up frustrating yourself and your contractor with frequent change requests.
Agile approach is best suited for knowledge based scenarios where the outcome evolves over multiple iterations and the end goal itself may not be clear in the beginning. The customer as well the implementation partner need a different mindset as well as a different contract structure.
Another practical check is look at the inverted triangle.
If you operate in an environment where you need to keep the scope fixed , optimizing time and cost , you should opt for predictive. In case you have the freedom to vary the scope while having fixed Time and cost ( example a sprint team) you can operate in an agile fashion working with customers
What is Iterative and Incremental
There is a difference in iterative and incremental approach. Even in predictive scenarios you can have an iterative approach, so you review the product after each iteration.
As an example in your bathroom project you review each milestone, you review waterproofing , you review tiles and in the end there is a big deployment when bathroom becomes usable. This will be considered an iterative approach , in which you are building product increments with every increments but they are not handed to customer yet.
In incremental approach, you ship minimal marketable feature ready for use with every iteration . An example would be your contractor allows you to use sink after 10 days while your bathing tub is still being built. These are all valid scenarios and help you transition to an agile approach.
Let us take another example. If you building a shopping center , in your design phase you may hire a firm that presents you multiple versions of your plan , you plan exact layouts , common areas, lighting with each version of design , then freeze the design and give it to a contractor, which then takes a predictive approach to finish the project.
One of the best books to deal with this topic is Agile Practice Guide by PMI
What is Agile
Agile is not a set of tools or procedures , its a mindset. There is a huge difference in doing agile vs being Agile. Working in agile includes following the principals described by agile manifesto
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
It includes demonstrating behaviors included but not limited to
- Having the freedom to negotiate scope and co innovate with customers
- Trusting the judgement of self organizing teams and protecting them from distractions
- Continuous feature delivery maximizing value and minimizing risk
- Ensuring a focus to minimize technical debt after each iteration
- Having information radiators such as Burn down charts establishing transparency
- Having a mindset to focus on simplifying than gold plating
- Adopting a mindset of servant leadership rather than command and control
Each iteration should be considered as an experiment and the goal should be to get quick customer feedback and do progressive elaboration.
Agile mindset is also compared to the Japanese concept Shu-Ha-Ri which elaborates on multiple levels of excellence
Shu – Follow the rule
First principle is to understand the master and follow it. Obeying all rules.
In Agile terms it will be understanding Scrum , XP or Kanban or any other method but follow it by the letter in initial stages. This helps in respecting and understanding the agile mindset. A formal training of the entire team on the chosen agile frame work will also be helpful if its just starting the journey
Ha – Break the rule
After you have internalized the rules , you are free to detach from them.
In agile terms its called process tailoring. It means adapting your process to project needs and business situations. The goal of any agile project is ultimately to achieve business value so adaptations should be encouraged
Ri – Be the Rule
When you transcend into a higher level of maturity, you become the rule.
But you never forget the essence of your technique explained by your master. In agile terms it would be mixing Iterative , incremental and Agile mindsets to create something unique which you can share with the larger community
Thanks for reading the article. All the best in your agile journey. Lets start a conversation.