📜 ⬆️ ⬇️

The benefits and harm of deadlines in programming

I often find myself thinking that the presence of time when writing software can have a negative effect, although many believe that time is useful. It seems to me that they need to be applied with caution after all (like any other pill of happiness). I tried to analyze how deadlines can harm a project, and how deadlines can improve a future result.
For those who are too lazy to read the whole article: I believe that deadlines are needed, but managers and programmers should understand that deadlines sometimes fail, and that there is no big tragedy in this. Sometimes in failed terms, circumstances are to blame, rather than specific people.

Having deadlines for the things you do is useful. But in the case of programming, there are some nuances.

How do terms help writing software?
')
Thanks to the timing you can plan the future. If we plan to finish work on features X in 2 months, then we know that in 3 months we can release a new version of our software.

Timing helps with rationalization / optimization: if we know that in terms of time, Peter finishes working on features X in 2 months, and Vasya finishes working on his task after 2 days, then it is easier for us to find out who has a lot of work. If tomorrow there will be some kind of medium importance bug, then we will be able to rationally weigh the situation, and decide that we will fix this bug to Vasya, who will be free in 2 days.

Deadlines can also act as an additional way to specify the task. The programmer can maneuver under the influence of the timing - somewhere he will be more zealous and clean, and somewhere he will not. And this is good, because due to such maneuvers, ultimately the speed of software development will increase.

How do terms prevent you from writing good software?

Unfortunately, programming is a complicated thing, and even good specialists cannot calculate the time in advance. In addition, most programmers estimate the timeline overly optimistic. Therefore, deadlines are often overdue. It turns out that the programmer needs to invest a lot of emotions and efforts in order to complete some task in the stipulated time frame. A programmer may call unreasonably optimistic terms under pressure from managers. Even worse, when managers themselves call deadlines to programmers.

Timing in the eyes of many programmers is a punitive-reproachful tool for managers. For such programmers, terms cause some emotional discomfort. When a programmer is ill at the emotional level, then most likely his effectiveness will decrease.

When the programmer sees that he does not have time to close the task in the necessary time, he will work with increased diligence and increased concentration. I see 2 implications of this:

In the end, the programmer will think “ What is my fault? Why should I now put extra effort into my work? Just because I misjudged the timing? ". With such thoughts, any person will very quickly lose motivation for his work.

Who is to blame? And how to save the situation?

As usual, the truth is somewhere in the middle between the manager and the programmer. From the manager’s side, I would:


If I were a programmer, then I would:


Moral and distribution of prizes

Guilty and right there in this situation. If the quality or speed of software development falls due to the deadline policy in the company, then both are to blame. Terms need to use and useful. But it seems to me that the deadlines should be mild - the employees should understand that they should “fail” the deadline, if otherwise they would have written crutches or if otherwise they would have exhausted themselves emotionally. We are still not clairvoyants, and the dates will always be inaccurate, so you need to be open to the fact that the dates can be adjusted.

Source: https://habr.com/ru/post/244309/


All Articles