With any development project, one of the first things that needs to be agreed upon is the scope: what will be developed, what features it needs to have, and at what point can one say that the project is now ready. Based on this a price estimate will be prepared and if all looks good the work can begin.
If everything goes according to plan, then the end result of the project will perfectly match what was agreed upon beforehand. However, the project budget and timeline may start to slip if the scope of the project starts to increase.
What exactly is scope creep?
It is clear that some changes will occur during the project and to a reasonable extent they have already been considered in the price estimate. During the development process, something is always found that could be done differently, better, or at the expense of something else. Concerns arise when the desired changes no longer fit within the originally agreed upon scope.
The most common example of scope creep is the addition of new functionalities that were not originally agreed upon. We can look at it in a simplified way: creating a weather app, which originally had to show only the probability of rain and the ambient temperature, but at some point, during development, it was proposed to add a functionality to capture images of snowy weather and to enable users to share them on social media.
Although the change may seem small, it can significantly increase the number of working hours required, because in addition to creating the new functionality itself, everything already created must be reviewed and these components must be changed as needed to fit the new functionality into the app.
Scope creep can arise in several other forms as well. For example, you may start off with developing an Android app, but at some point, during the development process, someone demands an iOS application as well. There may also be cases where someone new joins the team that has been working on a project for a while and demands that the interface of the piece of software in question should look different.
There are dozens of different ways for scope creep to occur, as such it’s important to be as prepared as possible.
What causes scope creep?
Scope creep can be caused by several internal and external factors, but the most common causes are:
Lack of preparation. Before starting any development project, the expectations of different stakeholders should be made as clear as possible. This avoids situations where development has started, but there are people in your organization who expect something completely different from the solution in question compared to what was agreed upon with your development partner.
Changes in the team. It’s understandable that when new people join the team some innovative ideas may surface. However, these ideas may not always fit within the scope of the project, so when deliberating on them, it is worth considering if they are important enough to increase the scope because of them.
New realities. It is not uncommon for internal or external factors to cause changes in what is needed of a software solution. In such situations, changing or expanding the scope is fully justified, but it must be borne in mind that this may also change the project budget.
How to keep the scope in check?
To some extent, some scope creep is expected and should be considered during the preliminary phases of the project. However, to avoid unpleasant surprises, it is worth paying attention to:
Proper preliminary analysis. The more thoroughly the functionality expected from the solution is outlined, the market situation is understood, and the expectations of in-house stakeholders brought to the right level, the greater the probability that the project scope will not expand.
Independent team. The more people involved in the day-to-day running of the project, the more likely it is that the scope will change during the development process. Once the proper preliminary steps have been carried out and there’s a clear vision for the project, the project team should be kept as small as possible. This group of people should have the power to make decisions and represent the entire company or all the involved stakeholders.
Splitting it up. If at some point it seems that more functions, special solutions, and other bells and whistles need to be added onto what has already been agreed upon, then it is worth considering whether the development project should be divided into several parts: in the first stages everything originally agreed upon is completed and at the same time objectives and scope of the next phase is mapped out. This approach makes it easier to control both the time frame and budget.
You should also not be afraid to directly ask your development partner’s project manager/analyst if any of the desired additions fit into the already agreed-upon scope. Once the answer is given, the project team can decide whether to go ahead with the idea or leave it for the future.
Agile development helps with keeping the scope in check
The use of agile development methodologies is also of immense help in preventing scope creep. With the classic development process, the whole project is undertaken as a whole – it is developed from start to finish in one go. With agile development, the project is broken down into many small fragments, which helps to keep the project scope under control.
Take, for example, an ordinary product ordering system. Whit agile development the project is chopped into several different stages, and each system is treated as a small product in its own right: an order entry component, an order verification component, a payment component, and so on.
With this approach, each party always has a clear picture of the progress of the project, costs associated, and the timeline. There is no need to fear that something will be developed in a “black box” that will significantly expand the scope.