Put the programmer in the stream. Don't interfere.

 A reference is needed for every child. What's more, the approval for the finishing of the individual data. From each of the parents. Let everyone fill out the questionnaire. The account is about how many boys and girls. Besides, by age. And in the areas of registration. Well, for schools. Distribute there, please, ordinary schools, lyceums and gymnasiums. No, advice cannot be issued. It's only 4 hours. Once a week. Yes, all educators should come. Of course, you also need to act in kindergartens. Any of you. Three times a week. And we don't like your costumes, we need less paint - what if parrots?


So, why are there no freshly baked productions? Where are the victories in competitions? What do you mean two months chasing papers collecting? What kind of creativity again? And why don't you hesitate on him? Which secretary should you hire again? What do you mean "I'm leaving"? Do you seriously think that you can manage besides us? Well, good luck.

Approximately this is how one infinitely benign manager of one infinitely excellent dance group described the activity “under the wing” of a government institution, sometimes explaining why he left “from under the wing”.

The incident wicked into the soul, because I was just conducting an experiment (next time) to rid other creative people - programmers - from non-core, but "such an important, necessary and obligatory work" - being in time.

What happens if?

I have deceived this experience more than once, in various brews - both on projects, and on development, and on factory programmers, and on rendering services after revision. Believe it or not, the result is always one each of the two.

If programmers stop worrying about deadlines, and only set tasks, one after another, without being distracted for any devil, then productivity will double. Accordingly, if you reconnect the schedule of "being in time" back, then the coefficient is smoothly the same - twice, only this time productivity is divided into it.

Well, and most importantly: the programmer still misses the same on time, although kill him. (a) what if it hits, because only sometimes, by accident. Or the cost of reducing productivity.

Everything is infinitely simple here. The truth that the programmer doesn’t know at all how much time it will take to solve the problem is not to be borne out - for this topic a lot of notes and books are consumed. If you functioned as a programmer, then proof is not required. There are, of course, throwing out - the same type, repetitive tasks - but these are actually exceptions.

In the main heap, our plowing encompasses such non-stop changing unknown, long-term flashbacks of aged tasks, surprises through subcontractors and updates of dependencies, design errors, etc.

How to plan to create this kind of work? Consciously, there are four of them - fantasies, reserve, size and flow.

Planning technologies

Fantasy is the application of mass production planning techniques to the work of programmers. For example Lean or MRP. This alignment is always used "classical managers", their exclusively separate caste - "managers". It is necessary to simply release the planned labor costs from the programmer, ignoring all his cries like “damn it, of course I don’t even know what I’ll face there,” and outline a specious sausage for the Gantt chart. And redraw every day.

Potential - these are approaches like the concept of constraints, sometimes an equestrian share is simply added to the planned labor costs, for each case. The six that came out and outlined something like a sausage for the Gantt chart. Redrawn less often, but almost always.

Size is when it’s not a deadline for completing tasks, but productivity. For example, this kind of approach is used in Scrum - anticipating the indicative haste of the installation service (in story points), it is possible to project the size of the service after the sprint (in these SPs). Accordingly, all sprint problems have one, each of the two same deadlines.

Chorus is when to consume exclusively speed. Problems are created in turn, the programmer sits down and solves one after another. The deadlines are not known, but they can be calculated - anticipating the haste and the number of the problem in the queue. The main thing is not to puzzle the programmer himself with calculating the term.

Pros and cons

There is no point in discussing the fabulous entrance - it does not work. Plus, it also creates constant, virgin stress and idiotic service after rescheduling. It is possible to live if it is not the programmer who ignites the rescheduling, but someone else, but this rarely happens. Naturally, the programmer is simply repeating every day with questions like “tell me the deadline”, “when will you finish this task? "That is," the deadlines have always passed, are you going to act in other words, no? In a natural, harmonious way, the programmer arrives at the reserves of time, he does not even decently know about any popular methods.

Stocks of slowness are saved through hassle, but they reduce productivity, due to the influence of Parkinson's law - plowing borrows all the time allotted for it. In some agreements, this entrance suits everyone - for example, for the sake of industrial programmers. True, before that time, the programmer will not happily quit - then, in most cases, he understands that his haste to serve is beyond market conditions.

The deadlines around this are met, that is, the stocks of time can combine thousands of percent of real labor costs. If a business or a process is built in such a way that the key factor is actually guessing in due time, then the method of reserving time is infinitely good.

Large methods, such as Scrum, impeccably double productivity by reducing the impact of Parkinson's Law and focusing on more or less realistic productivity, not fantasies and time reserves. However, a sprint is a deadline before the drum, that's why Parkinson's canon continues to operate, in its turn, saving time and trying to manipulate estimates (story points). People are consumed by people - both programmers and managers. Programmers want to be excellent employees. And managers are so addicted to calculating as excellent workers only those who "are on time", that although a few are on their heads. It will be elementary to call it all differently - like "all tasks of the backlog are correspondingly executed around the sprint, and there is nothing to facilitate here." Also, any KPI for this skill will come up, because the imagination is not rich.

There are no problems in the data stream, because their root cause is absent - a decrease in the programmer's service and attempts, one way or another, to set the deadlines for the implementation of work. The chorus protects the essence of the programmer's service - creativity. I would like, of course, to say that the choir is pure creativity, but this does not happen. However, the accuracy is noticeably higher. And productivity doubles again when compared to Scrum.

What's interesting: the defense of the programmer, or any performer of the work, is omitted in any of the methods mentioned. But with regard to programmers, protection is constantly forgotten.

What's in the database of any order

For example, Lean, oddly enough, is also based on the idea of ​​a flow, that is, invented for a pipeline. The idea is to design the service as correctly and harmoniously as possible. So that any performer in the chain, on the one hand, constantly had something to do with something, and on the other, so that there was no queue before him. Exceptionally minimal pressing work supply. For a programmer, this is one task. Remember the manager, a Lean lover, to convey this idea - he will not even understand what it is about, because he overlooked the disclosure about the protection of performers, sometimes he recited a note on Wikipedia about lean manufacturing.

Theoretically restrictions, what about the reserves, the defense of the executing link is a universally comparable postulate. Where programmers sit, they are almost always a bottleneck. What does the CBT say about the bottleneck? Specifically, it must be protected. Tidy up all non-core workloads (including the reduction in personal work), interfere with downtime, do not fill up kumekals with idiotic questions and meetings. Organize a choir service celebration of the speed with which the bottleneck functions. Well, managers-experts in TOC, admit it - a long time ago you thought about how to protect programmers through every foolishness?

And Scrum is all about flow. There, the principle "do not stir people to work" is elevated to an absolute, and is formulated in the claim to a large autonomy of the installation during the sprint. Later - please, come, see what happened, prefer the puzzles for the incoming race, poke around in the shower. During the sprint, don't breathe nearby. Who works in Scrum - what do you say? Nobody interests you during the sprint, huh?



Don't give a damn, flow is needed everywhere. So that the programmer sat down and programmed elementary. I did not calculate deadlines, did not fantasize about labor costs, did not mix priorities after often, did not walk for a meeting, did not participate in delusional correspondence and chats.

However, not much to spit, there is no flow anywhere. Whatever entrance would not be used, a manager, or a client, or some moron will find a reason to snatch the programmer from the harmonious creative flow because of some infinitely magnificent nonsense.

Into the stream constantly