Agile projects effectively address the concerns related to over-budgeting, time issues, and lack of team collaboration, product quality, and client satisfaction. It can provide significant value to the business, fostering innovation and unconventional methodologies of software development. This has made many organizations opt for the agile technique as they believe that this methodology guarantees success. Although the intention is good, the end result might not be promising. Just like other methodologies, an agile project can also fail and deliver poorly. Organizations that do not go for a thorough and planned process for agile implementation generally tend to face mismanaged projects.
Poor Agile Implementation Leading to Failure of Agile Projects:
Lack of Experience: Very few organizations have full-fledged, in-depth experience in agile implementation. Organizations generally do small agile projects at team level and are inexperienced to understand and handle a large agile project. This problem is intensified in absence of proper training and background knowledge. Undertaking a complex project with agile methodology might result in problematic execution and dis-satisfactory quality. The success of agile projects depends on complete team collaboration and high productivity of the team.
A complex agile project is difficult to estimate too. With every iteration having different estimation criteria, depending on acceptance of functionality and new planning with the next run, the estimator needs to have prior experience of estimating a software project in agile environment. Unlike the traditional waterfall technique, estimation in agile requires adjusting to changes with every iteration. Foresight and technical experience is indispensable for this. If the estimator lacks these proficiency, it would result in poor overall estimates resulting in failure.
Continuous Delivery Creating Error Backlog: Continuous delivery is an important principle for agile delivery. However, this principle should not underestimate and overlook quality. Focusing solely on creating a feature quickly, while ignoring the backlog of errors and defects, might lead to developing an unmanageable defect list. In the long run, this eats up the precious time for new feature development. A lot of time is required to clear this backlog and results in creating more defects. Creating defect backlog ultimately results in ineffective development because handling the huge backlog of errors might lead to psychological burnout of the developers.
Changing Requirements Makes Iteration Difficult: Agile methodology promotes changes as the development progresses. This involves changes in requirements, features, and the codebase. Complete estimation of an agile project in the very beginning is not possible since feasibility and usefulness of a functionality changes after the release process. Changes might be large and time consuming. Changing requirements results in changing money and effort leading to issues related to budget and time. Additionally, continuous alteration in the code base makes the fixation of defects harder. Hence, poor planning and changing requirements lead to rise in error, which affects quality. I have witnessed how agile teams struggle hard to match deadlines with changing requirements often resulting in failure.
Poor Planning: An agile team insists on working on their own in an unconventional manner, but planning is still imperative for any project success. A plan needs to be drafted which evaluates hurdles to agile implementation, existing strategy, standards, and potential sources of failure. The plan also scopes out a means to successfully deliver pilot and emulates its success for scaling up. In the absence of a background plan, which effectively resolves these initial roadblocks, execution of agile projects to a successful result is nearly impossible. Top level management support for addressing cultural change and adoption of agile techniques does not take place without a properly planned agile initiative.
An organizations culture can also play a role in poor estimation of software projects due to poor planning. By easily accepting ‘inaccuracy’ in estimation as an accepted fallacy – something which happens all the time, this could damage the quality of the product.
Bad Attitude:In the agile development process, the project manager majorly acts as a facilitator and coach. This works well with a small, competent team. However, the complexity rises when the team gets larger and more integration is required. In such cases, the role of the project manager becomes important to channelize efforts. A bad attitude with agile developers in project development is their inability to appreciate the importance of the role of they play in handling the budget and facilitating the collaborative effort. Thinking that it’s just “them” carrying out the development ruins the true spirit of collaboration.
Ignoring Management Roles: I have seen various organizations believe that top management has no role or contribution in the software project estimation and development. However the truth is that top management has an important role to play for effective agile implementation because they are involved in taking initiative, scoping the goals, evaluating initial challenges, resolving the hurdles, and facilitating change. Management empowers the best team players, and facilitates investment in agile practices. These practices include as continuous integration, automation, and remaining continuously involved in projects to resolve roadblocks. In such a scenario, if the team deem the management’s role as insignificant, the project can never succeed.
Even during the estimation phase, I have observed the senior management underestimating the word ‘estimate’. They expect certainty and invariability in numbers. However, the truth of the matter is that the management has to accept that the reliable knowledge about the project required for producing fixed and final software estimates are limited in number and nature. Re-estimation at later iterations can been granted with increasing budget and delivery schedules. Senior management must understand how and why final estimation at the beginning of Agile project is unattainable.
Preparing for the Agile Pitfalls
Before taking up an agile project, the organization should study its culture, evaluate the initial challenges, plan for an agile strategy, undergo proper training, and rope in the top management for support and agile facilitation.
For issues related to software estimation of an agile project, making use of an estimation tool can be useful. This would enable the agile team to set up the tool with great flexibility and simplicity to produce quickest estimates. The team can easily re-estimate with variability in platform, information, changing requirement, implementation types and test environment much faster pace. Using a software estimation tool such as Quick FPA can help the team to produce accurate estimates very quickly with least technical knowhow. Any team member can carry the estimation with as much flexibility and ease as done by a technical expert.
A planned approach can facilitate true innovation. It is true that the project manager shepherds the agile project, but the essence of a PM cannot be ignored in channelizing collaborative effort. Similarly, executive support is essential to handle hurdles to agile implementation and change management. Hence, it is critical to address attitude problems and viewpoints that hamper the agile methodology. It is important to incorporate agile thinking to solve issues of IT project management and deliver consistent product of high quality in a timely fashion.
“Why Agile Isn’t Working: Bringing Common Sense to Agile Principles.” 04 June 2013. CIO Website 05 March 2015
Goldsbury, Christopher, R.
“Bad Attitudes of Agile.” 20 September 2010. InfoQ Website. 05 March 2015