A Simple User Story
As an Agile evangelist with over 13 years of overall rich software industry experience I often come across this question of Agile Vs Waterfall. Questions range from why agile to why not waterfall and everything in between.
Today, I wanted to pen down my thoughts that I think will help everyone to try and shun this debate and instead try and focus on getting success with either Agile or waterfall based on the situational awareness as both were created to solve different types of problems.
To understand why Agile was envisioned, we need to understand the increasing complexity our world is getting into which is not only related to software industry but life in general. Here’s a user story from our day to day life:
- User Story: As a working professional, I am responsible to pay 30% of my income to government as income tax before it even reaches my bank account and pay my bills with 70% of my remaining salary so that I can meet my daily needs while maintaining my lifestyle.
- Success Criteria – With 70% of my remaining salary, I must meet below success criteria by the end of every month:
- Pay my rent
- Pay my electricity bill
- Pay my water and phone bills
- Pay for security and household help
- Buy grocery, vegetables and fruits
- Pay for any medical expenses
- Pay for medical insurance and life insurance
- Pay my home and car loan EMIs
- Invest some money for future – Kids education, marriage etc
- Plan for my retirement by investing in retirement funds
- Invest in tax saving funds or policies
- Plan expenses for any celebrations like birthdays, anniversaries etc in the family
- Plan expenses for any travel or vacations
- Save some money for any contingency
- Keep some money for any unidentified overhead expenses
- How to be Successful: Implementation of the above user story from our day to day life and meeting all 15 or even more success criteria is a daunting task. Make no mistake, these success criteria may look deceptively simple, however, planning for them and able to accomplish all the goals while allocating required resources wisely can be very daunting especially when accounting for the inflation, risks in life and ever-changing tax and lifestyle requirements.
To successfully implement this simple story, you need to start early to keep your overheads low and avoid the risk of not meeting your goals because of starting late. It is also required to periodically revisit your plan and keep updating it, make any trade-offs, if required, to maximize the expected value. You need to have faith in your abilities to handle any unplanned activities as they pop up and move with confidence.
While you are handling a complex task, as life is not simple, keep your plan simple and not too complex so as you can follow the plan.
Focus on getting one smaller item completed at regular intervals and keep moving ahead. Be ready to face your failures and learn from them as you move along because success doesn’t come without failures.
From the above example, you would start noticing a pattern. I am highlighting some key items below based on the above user story, success criteria, and related explanation:
- To meet your success criteria, you need to start early, plan your life’s roadmap and divide them into short term manageable goals
- Keep your plan simple (KISS principle)
- Start early with short term goals while keeping the long-term goal in mind even if you are not completely ready. This is known as taking a bite
- Focus on getting one item completed at a time and keep iterating to reach your goal
- You need to revisit your plan (inspect) on a periodic basis and adapt to changing requirements by updating the plan regularly and taking appropriate actions to keep yourself aligned with your long-term goals while updating the long-term goal as well when required.
- Prioritize and deprioritize the tasks while maximizing the amount of work not done to ensure you accomplish your goals while enjoying the life
- You need to do regular investments in yourself for personal, professional and financial improvements as in to learn and do something new on a regular basis. This will allow you to go incrementally
- Take ownership, be ready to make mistakes and learn from them.
Closely examining these points would tell you that these are some of the Agile fundamentals. There are many other things that can be inferred from the above story which would further reveal its similarity with Agile, however, the point here is to highlight that life, in general, requires you to be Agile if you are gearing for success.
Still Wondering Why Agile?
In case you are still wondering, Agile tries to help solve complex problems. Be it software, hardware or the life itself which deals with some of the most complex issues, Agile was designed to help navigate and conquer such issues. This is not to say that Agile is perfect but the very definition of Agile means that you are highly responsive to change, and you believe in your abilities so that you can make necessary amendments to your plan or action as and when required to ensure you meet your story’s success criteria.