"Agile implementation can be difficult for teams new to the framework, and at times development teams fail to implement Agile properly because they fail to identify potential pitfalls in time. The management too should be wary about certain issues that could lead to implementation failure, and take steps to resolve the fundamental issues."
Agile implementation and the development team
As the popularity of Agile based frameworks such as Scrum and XP keeps on increasing, more and more software development businesses and IT companies are migrating towards the frameworks to reap the benefits of Agile. Organisations new to Agile have many expectations, about how, and up to what extent they will benefit from the product incremental cycles and the basic Agile principles which offer and promise a lot to organisations implementing them. In practice, however, the scenario is quite different and instead of benefiting from increased productivity levels, IT businesses tend to face many types of problems while implementing Scrum. If or when the implementation fails, or desired results are not availed through Agile, managements start having second thoughts regarding the practicality of using Agile. While a lot has been discussed as to why Agile might fail, a highly common reason that contributes to the failure is the attitude of Scrum teams and their willingness to accept Agile.
Reluctance of development teams to accept Agile framework
Agile implementation involves changing the current working pattern, especially if you are following traditional development methodologies like Waterfall, and aims to make the development team more self-reliant and self-organising. In Agile, the team is offered more autonomy. The team is allowed to function in any manner it so desires - as long as it follows Agile principles. However, along with working independence and autonomy comes responsibilities and self-governance - the two aspects most teams fail to uphold in the manner as suggested by Agile.
One of the primary reasons why teams fail to implement Scrum, or any other Agile framework for that matter, is that it becomes difficult for the individual team members to accept changes and mould their working to suit a new working pattern. As a rule, most people who are habituated to one particular method of working, and who feel comfortable doing what they have been doing since quite some time, do not feel comfortable when exposed to new working conditions and a new set of rules to follow. Changes are not easy for most individuals and managements need to understand this fact. As is often the case, when managements decide to introduce Agile, they do so without issuing any prior warnings to the team. The team is not mentally prepared to learn or accept a new method of working – especially a method which may seem to challenge their basic beliefs in how production and development should occur. Agile may seem radically different to people who have developed projects using traditional development methods. It challenges team members, even senior management personnel, to think differently, and to trust each other as far as work is concerned. And therein lies one of the important issues – it is not easy to put trust in somebody whom you have known for a short time, or who does not share your ideas or beliefs. Another issue is understanding a totally new way of working. Some individuals welcome changes while some don't. From the management's point of view, it is difficult to force people to accept new working environment. It is also important to maintain the retention levels of employees since a team is difficult to train, it takes a lot of time in training new employees, and the management may have to invest in trainers and coaches on a frequent basis to train employees as and when they join.
Why Agile may fail to implement correctly
Some of the common issues why teams fail at Agile:
Teams are not ready to accept changes and new challenges because it does not understand the new method of working
Individuals may feel threatened they might not be able to perform well under the proposed system and this could challenge their future growth in the company
Old working habits may be difficult to give up, and the team might not be ready to compromise upon its comfort levels – unless forced to do so.
Since Agile proposes self-organisation and self-management, the management might feel uncomfortable giving up its authority while controlling the team. Agile teams are autonomous, and are empowered to decide how to work. It means the management cannot instruct the team how to work – the team decides for itself. This might make the management feel insecure and uncertain since it cannot directly control the team.
Teams have a habit of reverting to old habits while working under pressure. Even though a team might have attended training sessions and may be performing well under normal circumstances, it might collapse when told to face challenging situations and stress-associated conditions. The reason could be individuals tend to revert to their original mode of working since they are more accustomed to dealing with work pressure in a process flow they know best – the older way of working.
Agile advantages for the management and stakeholders
Agile is a framework and not a methodology. Unlike methodologies, Agile principles have to be implemented in a project, and stringently monitored to ensure that Agile processes are followed by the team. Only when a team follows what Agile preaches, it can successfully avail the desired results. It is important to know that there are no fixed rules or theories concerning the implementation – teams have to study the framework and decide collectively how to implement it in their projects.
A few suggestion may help teams new to Agile and Scrum plan their project transition in a more successful manner.
Educate the team
The first and the foremost activity is to train the development team in Agile framework and impart sufficient knowledge so the team can grasp the fundamentals. The management should select a trainer who is experienced, and who has the ability to engage on a personal level with the team members. Face-to-face communications can help to resolve many types of misunderstandings, so active participation should be encouraged and promoted between the team and the management. It is generally observed that when teams are properly explained how Agile can help to reduce their burden and increase their productivity, they tend to realise the fact that Agile may, in fact, prove to be useful to them in many ways and help them to perform better at work. Senior management members have to put in enough efforts and convince the team that the Agile way is most suitable for all concerned – the management as well as the team – and planned and sustained development should be the “norm for the day”.
Hold talks and discussions
Agile promotes openness and transparency. Above all, Agile principles encourage face-to-face discussions in lieu of emails and in-direct means of communications such as emails and online chats. Perhaps, the main reason why Agile promotes personal communications is because people can easily open up in their discussions when they discuss topics face-to-face. The more the management communicates, easier it becomes for the teams to present their issues. Discussion can lead to sharing of ideas. When ideas are shared, it becomes clear what is acceptable to the team, and what is not. Once it is possible for the management to understand and pinpoint the exact issues troubling the teams, it becomes easier to find acceptable solutions. Problems concerning Agile implementation can be effectively resolved only when talks and discussions are held more openly and frequently.
Client participation advantages
Contrary to the belief, client involvement can actually lead to improved development and reduced turnaround times. Generally, development teams abhor discussing their work to clients. Most teams believe client involvement can actually slow down the development process, or create problems some way or the other. Actually, this is not true. Agile emphasizes upon client participation. From a practical viewpoint, it is important to “satisfy” the client by giving her/her what is required. The bottom line is to fulfil, or provide, what the client really needs. In most cases, teams take the initiative and present the development based upon its vision as to what the client expects. It is when the client disapproves the development because it does not support what was originally envisioned, the team starts investigating what kind of development was originally planned, and what has in fact been delivered. Productivity and time is wasted in such cases. Agile, on the other hand supports a special event – the sprint review - in which it can be ascertained whether the development meets the client’s approval or not. Problems can be detected at an early stage and rectified. Agile can be properly implemented when the client works side-by-side and provides valuable inputs regarding the process flow. Keeping the client satisfied can lead to happy and profitable situations for the entire team in the future.
These are a few common pitfalls which can be analysed to improve Agile implementation. These are not the only issues concerning the implementation, however, they are most common, and usually faced by teams new to Agile and Scrum.