Table of Contents
The development of a software product is an intricate and complex process that demands a highly calibrated organization. At the same time, no one is proof against human error, unforeseen circumstances, and similar issues that cause a change in the project requirements.
While some people still perceive changes as inevitable evil and follow the strategy “better prevent than manage”, more experienced managers embrace changes and treat them as something that has to be well-managed and organized. Such an approach minimizes the level of stress experienced by the team, helps sustain smooth workflow and deliver results in accordance with set deadlines.
What is change management and why does it matter so much?
Change management has many definitions in accordance with the industry where it is used and its purpose. But in general, one can say that change management in IT is the process of obtaining a request for a change in the software product, approving and implementing it.
There are dozens of factors that impact the development of a software product: interests and demands of a target audience, the project’s budget, changing market requirements, shift in deadlines, even a spontaneous idea about a new feature. All that needs to be processed and included in the development process. And, if not managed properly, these changes may lead to the following issues:
- Missed deadlines
- Scope creep
- Misunderstanding between the product owner and the team
- Poor quality of the product
- Exceeded budget
Regardless of whether you are working within a waterfall or Agile methodology, it is imperative to have clear procedures for managing changes to requirements in order to keep the project on track.
Change management in waterfall: a few tips to follow
While more and more companies are switching to Agile, there are still hundreds of companies that prefer working within the waterfall methodology. While it has its pros, this methodology does not allow as much flexibility as Agile does and this, in turn, may be problematic when dealing with any changes.
During the waterfall development, the team presents the ready product to the client and only after that receives any requirements for a change. The team then has to go through another development cycle, get the budget approved, and create new documentation.
SoftTeco has rich experience with waterfall methodology but in order to make the process more flexible and efficient, we slightly adapt it in order to grant the client more control over the development and add transparency to it. When the client requests a Waterfall team, we usually suggest breaking down the overall development in several phases that include several sprints. At the end of each phase, the client can make any suggestions and this facilitates the change management for the SoftTeco team.
Such an approach works great for large-scale projects with a fixed budget and enables the client to request the changes during the development process. As a result, the client can better manage the budget without fearing to go beyond it and receives the desired result in full correspondence to expectations and business needs.
The almighty Agile and its benefits
As said above, change management is obligatory for any software development company. But if the company works in Agile, the core nature of this methodology implies organized management of the changing requirements.
Agile is all about iterative workflow and gradual, “step-by-step”, development. When working Agile, the development team works on a certain scope of work and delivers certain results in a negotiated time frame. By separating the work in chunks and prioritizing tasks, the team is able to keep a strict focus on the end goal and provide high quality. The product owner sees the results after every sprint and can decide whether any changes should be added to the backlog.
The Agile methodology brings the following benefits:
- Timely implementation of any needed changes without hurting the project’s deadline
- No serious deviations from the set budget
- Inclusion of all the needed features in the product
- Tight collaboration between the product owner and the development team
Of course, Agile methodology does not mean that there are no deadlines and the budget is infinite. At the beginning of work, the client and the development team negotiate on certain time frames and estimate how much time is approximately needed to complete the project. But with Agile, the client is ready to pay extra for any needed changes which greatly increases the project’s flexibility and quality.
The process of managing changes in Agile
In order to deliver the expected results and high quality of work, Agile development calls for a strict organization of processes. Though change management will be individual for every company, the overall process remains the same:
- The client contacts the Project Manager and informs him about the needed change,
- PM (often together with Business Analyst) processes the request, together with the team estimates the workload needed to implement the change, and adds the task to the backlog,
- PM prioritizes the task and, in accordance with set priority, adds it to a certain sprint,
- The task is resolved within the specified sprint, during which the PM keeps up constant communication with the client.
The client usually places a request for a change at the end of a sprint so the team can note it down and include it in the backlog. Thus, the team usually works on the tasks scheduled for the next sprint plus on the suggested change (if it is of high priority). In this way, proposed changes do not affect the work process and do not interfere with development plans.
The essentials of efficient process management in Agile
The biggest mistake that many companies make is switching to Agile methodology without really realizing what it implies and means. It is obligatory to work by certain and established Agile methods and principles in order to obtain the expected results.
First, the client and the development team need to negotiate on the preferred communication methods and communication frequency. Once the PM defines the duration of sprints, he should discuss with the client how exactly they are going to communicate and choose the preferred communication channel.
Another thing to keep in mind is consistent reporting. The development team should provide regular reports so the client always knows and understands the current stage of the project and the work to be done next.
As for product owners, their biggest responsibility is providing the team with clear requirements and an explanation of an idea and business goals. Once the team understands the idea and the vision, it will become much easier to come up with the most efficient solution within the desired time frames and budget.