One of the key benefit for organizations that adopt an Agile project management framework like Scrum should be the shortened value delivery cycle. Providing a quicker feedback, this should lead to continuous improvement the development process. This is however not always the case. In this article, Ronit Eliav discusses six issues that can cause static Agile.
Author. Ronit Eliav, Panaya, http://www.panaya.com/
Digital transformation requires IT organizations to become business enablers that deliver differentiating customer experiences that provide a return on investment. To keep pace with innovation, and deliver immediate results IT teams need to adopt a continuous delivery model where release cadences are measured in days, not quarters and quality is guaranteed. Agile software development uses a process of continuous planning and feedback to ensure that value is maximized throughout the development process. But agile methodologies don’t always deliver the expected results.
Here are six common ways agile projects can fall flat.
Unsustainable system architecture
Without a formal design process, code can be layered on top of older code and until the end result is a design that’s inflexible. The Agile Manifesto did not include – perhaps intentionally – the definition of a systems architecture. The design can be coherent during a sprint planning meeting, but it may lack a formal architectural model that result in long term sustainability.
Limitations of existing tools
Agile methodologies are often limited by existing tools. Today’s Enterprise Application Lifecycle Management (ALM) market is dominated by monolithic, on premise solutions that were designed with a “waterfall” delivery approach in mind and lack key elements of agile delivery methodology. While the software development industry has moved on to a best of breed approach with agile tools such as Jira and Jenkins, these tools were designed for professional developers and not for the needs of the Enterprise IT organization. In the world of digital transformation and continuous delivery of innovation, the enterprise has been left behind.
Some developers who are accustomed to working autonomously may find that all the collaboration required with agile development slows them down. You don’t want to alienate knowledge experts and force them to change their work style to adjust to a highly collaborative methodology if they require a great deal of freedom. If necessary, portions of the project – such as GUI development – that require frequent feedback can benefit from agile methodologies, while other aspects of the project that can be handled independently by individual contributors. Although eventually everyone on agile project teams will need to be more flexible. Gartner’s 2016 Magic Quadrant for Application Testing Services estimated that by 2020, 60% of testing resources will need to have a combination of software testing skills, application development skills, and business process skills or industry skills.
Difficulty scaling up
Agile is a methodology that traditionally has been popular with small and medium size organizations, but recently has become more mainstream in large enterprises. Larger projects that are dispersed through several teams at different locations can be difficult to manage with an agile methodology. Without a consistent approach across locations and collaboration tools with visibility into real time status of test cycles distributed over several development and testing teams, bottlenecks can occur with can result in project delays and cost overruns.
Not the right type of project
Traditional methods (like waterfall) work best on projects that are on both ends of the spectrum; clear and fixed requirements that are well established or a new technology or approach with no previous user base that can provide valid feedback. Project managers need to evaluate projects to analyze if a smaller number of software developers working autonomously might be a more suitable and cost effective solution for projects that fall somewhere in the middle.
Bogged down by collaboration
When teams use the right tools to work together, they often make improvements in both the process and the final outcome, making the teams stronger and more productive. Agile methodologies emphasize the value of collaboration and rapid feedback. However, communication and coordination – both internally and with customers – are often difficult due to logistics, locations and timing. An end-to-end communication framework for agile team collaboration is essential to help people work together more effectively.
Agile development in the right circumstances enables organizations to release high quality software that changes rapidly to drive businesses forward. It just doesn’t work all the time. Success requires collaboration, transparency and real-time visibility into project risk and quality. Given the right conditions and tools, IT Teams can implement agile software development methodologies that boost the bottom line.
About the author
Ronit Eliav is Director of Product Marketing at Panaya. She is an experienced thought leader in IT digital transformation topics such as agile and continuous delivery, DevOps, and business process optimization, and project leader for IT modernization, mobilization and system integration projects. She is a marketing professional proficient in product and content marketing, lead generation, media relations, marcom and brand management with strong communications and project management skills.