Agile development has been in existence for almost 13 years and has been delivering immense value to organizations. It continuously accentuates on the rapid delivery of customer’s business value and provides the “best bang for the buck”. We witness a lot of frenzy for Agile Implementation. The interest towards the traditional waterfall and iterative models continues to dwindle. But, are all projects suited for Agile development? Is there no future for traditional methods of software development? Are all software organizations capable of steering the Agile way of development? What does it take to implement projects successfully the Agile way? This article seeks to address these questions.
When do we desperately need Agile implementation?
- Projects with uncertainty in business requirements. Long term projects do not have clarity in requirements, hence it is most appropriate to take those stories having clear requirements and target the obscure ones later. However, it should be ensured that all the requirements dovetail into the overall big picture.
- Projects requiring substantial integration with other external components. When there are multiple components, it might be better to align with the external components at regular intervals. There are multiple stakeholders and the goalposts may keep changing.
- Product Implementations having TTM (Time to Market) as the competitive edge. This refers to products wherein retail users determine the product’s success trajectory. Hence Agile is a perfect fit as it is dynamically adaptable.
In a nutshell, any project that needs scrutiny at frequent intervals becomes a logical candidate for Agile Implementation. This could be primarily to avoid any risks created owing to the complexity or uncertainty of the project.
Are there any demerits?
- With very scanty documentation available for Agile, the Application Support team has very little technical documentation to lean on. Subsequent improvements also become a challenge.
- All relevant stakeholders need to invest regular time from their busy schedule to be actively engaged and keep close watch on the deliverables for midcourse correction, if required. The project might go off guard if business requirements get overhauled later.
- As the project commences, the business needs are quite nebulous. As the project progresses, the needs get clearer for implementation. Inadvertently, they get enhanced later affecting the project budget. Hence the cost and timelines of the project get inflated significantly towards the end.
- With frequent releases and fluid requirements, employee stress can take a toll in such projects, which may result in employee turnover. It might hamper the growth of the organization significantly and have a significant impact on the delivery of the project, as very little documentation is available to ensure continuity.
- As we shall observe later, such implementations require mature team members, which is not easy to afford and obtain.
Despite the above challenges, we frequently witness a scramble for Agile implementations. Many organizations embark on Agile projects and realize their mistakes much later into the project, leading to a significant effort and time annihilation. Agile implementation requires an immense amount of discipline on the part of the teams and often this is obliterated from people’s memory.
Before an Agile implementation is launched, it is necessary to do an appraisal of the candidate organization and its development teams to gauge their preparedness for Agile.
It is paramount to assess the organizations and their teams on the following parameters to know their preparedness for Agile:
A. Growth mindset
- Does the organization foster innovation? Does it provide for an environment for failures?
- Does the organization create an inclusive environment that fosters trust, fearlessness and transparency, whilst maintaining a sustainable pace at which they can work?
- Are the teams intrinsically motivated to voluntarily invest effort and learn and deploy better concepts during the project tenure?
- Are the project decisions made only by the senior members or is it by everyone’s consensus?
- Does the team believe in continuous improvement in the project and practice the same?
- In case of conflicts and clarifications, is the tendency to collaboratively resolve the issue with all concerned?
- Is the team capable to distinguish Customer Value from Non Value Adding activities and focus on the former?
- Do the team members have a good knowledge of the SDLC processes?
- Are all the team members conversant with good homogenous coding standards?
- Does the team have clarity on the Product Vision and Product Roadmap?
- Do the Business Analysts know how to write succinct User Stories laying down the benefits along with the Acceptance criteria?
- Do the team members have a good knowledge of ALM tools to manage the entire landscape of the project?
- Do the team members possess a good knowledge of automation – Build, Deployment and Testing?
- Are the team members capable of implementing business needs based on a contour of the information on business needs?
At this stage, one is thoroughly aware of the strengths and weaknesses of the organization and its teams and will now be in a better situation to harness its strengths for facilitating Agile adoption. In the next (concluding) blog, we shall outline the measures required to achieve a holistic Agile adoption in the organization for optimal results.