What are the causes of delays in projects?
Grzegorz Papaj, 12 June 2019
Exceeding the deadline is quite common in IT projects. According to a survey conducted by Pmreaserch.pl, as many as 61% of projects are completed after the deadline, just 33% on time, and only 6% ahead of schedule. Thus, the efficiency of project implementation is usually quite low. What are the reasons for delays in IT projects? Find out what to keep in mind to assure your software project is finished on time.
Challenges for the contractor?
When it comes to project delays, most often it is the contractor who is blamed. In many cases, rightly so, but not always, as we will show later. For now, let’s look at the most common mistakes made by programming services providers.
Most of the reasons for delays occur even before the IT project is started, i.e., during the initial analysis. At this stage, it is necessary to estimate how much work and time will be required for the project to be successfully completed, i.e., within the given scope, time, and budget. It is known that such forecasts are always only an approximation and their precision decreases as the size of the project increases. So, the chances of correct estimation decrease with the scale of the project. Of course, the risk of estimation error is also increased by the lack of experience in implementing similar projects. By “similar projects” we mean not only the business or technological specification of the system. Its scale is also important because a software development company working on a system for 10,000 users faces completely different challenges than the creator of a system used by 100 users.
Underestimating the difficulty and complexity of the project is a separate problem. It is a common mistake for novice developers. If the dev team doesn’t have experienced specialists who have already faced similar projects, the chance for not even a delay, but the total failure of the project increases dramatically.
It is quite common for clients to relentlessly claim that their design is “small and simple”. This way (more or less consciously) they press on the supplier to lower the implementation price. Unfortunately, even experienced developers sometimes succumb to customer suggestions and accept optimistic, instead of realistic, estimations under customer pressure. It leads to narrowing (or even complete skipping) safety margins included in the estimation. As a result, not only do delays occur during the implementation but also numerous tensions appear on the client-contractor line when both sides start accusing each other. The most often underestimated aspects of IT projects include all kinds of integration with external systems and not taking into account system loads resulting from, e.g., a large number of users or records in the database.
On the other hand, delays at the stage of development are often caused by communication problems. They can occur both inside the dev team (or for larger projects between teams) and on the client-contractor line. Although it might seem that in the second example the blame is on both sides, it is not always the case. After all, the contractor routinely runs projects, so he is more responsible for most communication problems. An experienced contractor should sense them at the early stage and put effort into improving communication with the client, for example, by running the project with Scrum or related Agile project management methodologies.
Of course, failure to meet the project deadline can also be caused by “standard problems” arising during implementation, and unfortunately, they are not always predictable or avoidable. They vary in nature – it may be the illness of a key team member, a significant technical problem discovered during the implementation, or a gap in the specification provided by the customer. These are to be prevented by using the aforementioned safety margins in the estimates of time and costs.
Challenges for the client
Although it is usually difficult for customers to accept, delays in an IT project can also be caused by their actions or omissions. The most common problems are related to communication. If the client’s needs are not sufficiently detailed, the risk of error in time (and costs) estimation increases, creating additional tension during implementation. This is often due to the client’s underestimation of their own expertise in the given field. For the commissioning party, a lot of aspects of domain knowledge that affect the final shape of the IT system are obvious. We have to remember that even the best developer can be a complete amateur in the client’s business area. Although the dev team knows how to build a given system from the technical side, the client is always the specialist here. A lack of sufficient involvement and the wrong assumption that some issues "are obvious" is a straight path to incorrect implementation, and thus to significant delays.
Another common difficulty during project implementation is the client’s inability to make key decisions. As the work progresses, the project team faces several technical and business choices. While it is possible to rely on the contractor’s expertise in technical matters, it is more difficult for the client to make decisions concerning business matters. The choice between possible solutions should be made by the client who knows the specifics of its business. Unfortunately, clients tend to take a lot of time making such decisions. It is often necessary to involve many people, or sometimes reconcile the expectations of various interest groups (e.g., different departments). As a result, work in some areas of system development may have to be suspended. This situation can result from the indiscriminate business concepts that the system has to implement. Sometimes, a person with insufficient decision-making power is delegated to coordinate the project on the client’s side. At this point, it is worth emphasizing once again that an experienced contractor should minimize delays that can result from the client’s lack of decisiveness. But in many cases, they are still unavoidable.
Despite appearances, the members of dev teams also notice when the delays come from a lack of client involvement, which is expressed in various ways. Except for the above-mentioned lack of decision-making abilities, clients delay, e.g., by not delivering promised, and from the development point of view, crucial information or system components on time. This may be a server to host the system, access data, API enabling integration with other programs, or specific hardware with which the system is to work.
Another example of a lack of commitment is avoiding testing early prototypes. Although it may be a time-consuming task, it gives invaluable benefits for the client too. Early confrontation of the contractor’s ideas with expectations of the commissioning party allows both parties to avoid misunderstandings at the first stages of the system’s development. Of course, delays can also occur at the stage of final testing. Often, they discover that the client tests of the IT system are a major undertaking and they cannot be done in one afternoon.
Unfortunately, if there are delays, regardless of their source, there are always consequences. Most often these are business losses resulting from the delayed system launch, but sometimes also various types of shortcomings and problems caused by creating the system “quickly”. In extreme cases, this can lead to abandoned projects.