📜 ⬆️ ⬇️

How many minutes do I need to add 1 line of code in a large organization?

This is an illustration of the previous article " How large offices are decrepit "

I want to share a real example of inefficiency. For young developers and / or those who have never worked in large offices, it may seem unrealistic, but this is true.

Objective: to extend the functionality of the existing system. The system is huge and old. Several XX million lines of code, a lot of hard, a few decades of life.
')
The essence of the expansion: the system can process materials of type A and B. It is necessary to add type C.

Naturally, this is a complex task that requires analysis and assessment: how much will it all cost in man-years? Estimates are needed to understand: is there any economic feasibility?

We have many development teams with their managers and architects. And they all must provide their estimates.

Using the toolkit, we can easily find places in the system where this code is written:

typedef enum { OBJECT_A, OBJECT_B } object_types; switch(object){ case OBJECT_A: printf("This is object A"); case OBJECT_B: printf("This is object B"); default: raise_error("Unknown object!!!"); break; 


In many cases, this switch simply reports, there is no functionality tied to the type of object.

Those. in this particular case, to solve the problem of adding C, we only need to expand the enum and add one line:
case OBJECT_C: printf ("This is object C");

And now attention, a question: how much time is needed to make this change?



And these documents should be “checked / approved” (other people have to spend time). Because of this, even such a tiny change can not take less than 1 day. Physically can not. Also, inside large offices that are engaged in business there are almost no resources for “general improvements”, so there are “gentlemen's agreements” that teams can add ~ 20% to functional changes.

When the office is just starting to live, then man-hours are used for effort estimates. As the decrepitude - man-days. Later - man-weeks. The details become unknown, and people simply include in the work “time to figure out, but what is it all about ?!”

Let's return to our example: In general, after talking with the architect of the group in which this change should be made - we agreed by 0.5 weeks. 2.5 days to add one line (and complete all related accounting / administration).

Already here it becomes clear how bad everything is inside the big monsters.

But this is not all, after PL got involved in the matter, he without moderating his details modestly reported “upstairs” - 10 weeks. And the worst thing is that the people above do not argue.

10 weeks - this is the correct answer to the question of the topic: (

Interesting: who knows some good materials on KPI? Should something already be gained by the amount of code and time for its implementation?

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


All Articles