Agile has become a major buzzword for project managers across many business functions in recent years, and the IT department is no exception. Software developers have been especially keen to embrace this way of working, having been attracted by promises of more efficient delivery and better results.
But 'agile' is a concept that can be tricky to get to grips with. Even if you think your development processes are agile, it may well be the case that you aren't applying these principles appropriately to ensure they work for your software development process.
It's important to remember that agile isn't the holy grail for any business. Even if you implement it perfectly, it isn't a panacea that will solve every challenge you face. And if it’s poorly implemented, it can actually create more problems than it solves.
So why do agile IT projects fail, and what can you do about it? Here are some of the factors that can lead to these efforts failing to bear fruit.
1. The wrong attitude
Agile is sometimes thought of as a change management methodology that a business turns to when traditional ways of executing large-scale projects fail, but this can lead to thinking that simply 'doing agile' - that is, following best practice steps such as sprints and scrums - will automatically lead to better results. However, this can leave firms so focused on the process itself that they aren't looking at the results, and the same old issues - such as time wasted on distractions or changing requirements - can slip in.
2. Poor planning
It's often thought that as agile is constantly refined and adjusted throughout the process, a clear plan at the start is unnecessary, yet this is a mistake. If firms go into a project with a vague or high-level strategy that doesn't clearly spell out what developers and engineers have to do, it can quickly lead to chaos. Instead, adopt planning tools that have been specifically designed for these environments, such as an agile release train, that can plot a clear path through the process.
3. The wrong team
Having the right team in place is also critical to success - and this means both having the right mix of technical skills and personal synergy between the members. Individuals need to understand what everyone's strengths and weaknesses are so they know what areas to focus on. Teams that are too slanted towards just one aspect of the development process, or aren't familiar with how each other work, will increase development times, and add to the complexity of the project if they have to bring in more external people for certain tasks.
4. A lack of testing
Testing is a feature that needs to be implemented continuously at every stage of an agile process. Yet poorly-planned testing that’s only done sporadically can mean teams often find themselves going back and making major revisions after failing to realize what knock-on effects any changes to the code will have further down the funnel. To prevent this, use test-driven development practices, in which code is only written in small enough chunks to pass predetermined tests, and employ automation wherever possible to speed up the testing process.
5. No clear endpoint
With a traditional waterfall approach to software development, teams typically have a clear endpoint in mind and, once the product has gone live, it's signed off and - barring any future security updates - finished. But a common complaint about agile strategies is there’s always something more to be done. There's always a bug to be squashed, or a new functionality to be added, so teams can feel as though they're just going from sprint to sprint in a never-ending cycle of tweaking and thinking, which leads to burnout and poor morale.