Do programmers need managers

January 4, 2016

Suddenly a thought came to mind – two, or maybe three weeks had passed, and I hadn’t written anything. Neither in this blog nor on Facebook (expanded, beautiful, clever text – mi-mi-mi-photos don’t count). Maybe the head has forgotten how to think and give speeches? Or is it a matter of vacation, which simply switches the brain to another mode, in which it works by inertia, without offering to change anything in this already quite perfect world in general?

Meanwhile, under the cover of disasters and misfortunes, catastrophes and hurricanes, failures and missed deadlines, nothing less than the perfection of the surrounding world is hidden. What would happen if we all suddenly realized this? Surely the world would become an order of magnitude more boring. Go to the wonderful cartoon “The Little Prince”, look at the girl and her mother, who drew her life plan, scheduled hourly for years in advance – isn’t this an example of perfection? And the old grandfather-neighbor, smashing the wall of her house with the propeller of his prehistoric, half-decayed airplane – is he really doing something good by this?

Stop! Here comes the first really good idea! Order is when everything is good. And when everything is fine, everything is fine. From the narrow window of our programming kitchen, it looks like this when Vasya, having received a task from project manager Petya, simply completes it, on time, which he, Vasya, will calculate and check beforehand, with the quality that he, Vasya, himself will promise to provide. He said it and did it. And if you can’t do it, you said it right away, and no one expects you to do the impossible. Otherwise, it’s a head-off, as the Red Queen liked to say.

Now this is where things really get interesting. Whose head will fly off the shoulders first if, God forbid, something happens? That’s right – a manager. Who, if not he, is responsible for the success of the project entrusted to him? If anything happens, it will serve as the first buffer, softening the impact of the project aircraft that failed to take off from the runway. Or maybe he’ll even be able to lift it into the air by attaching a couple more screws on the fly and placing crutches under the wheels.

For me, a line and functional manager, seeing how experienced programmers know the value of their word work, thoughts often occurred to me about the appropriateness or even unnecessaryness of the position of an “abstract” manager in IT. “Top” level managers are always needed to represent their organization at symposiums and negotiations, enter into contracts, develop the business, and be the face of the company. We need product managers who understand the details of the market and make decisions on the implementation of features. We need HR managers who create a good microclimate in the heterogeneous environment of a large company. But “just” project managers, even very good people, are hardly needed when they are also surrounded by very good programmers and testers who know a lot about their business.

That’s what I thought before, being what I considered to be an “unnecessary” link. I thought until I hit a few painful bumps in the very place where the health and success of the project should be felt. Later, having become a little more familiar with the theory and practice of management, I realized how wrong I was.

.. because I was mistaken in many ways, namely:

  • The project team is like two people from a chest from a famous children’s cartoon ( https://www.youtube.com/watch?v=UJ84I0iKd_s ). They do not immediately start working and produce excellent results; it takes months to “break in” and reach optimal performance. It is the manager’s responsibility to make this process as painless as possible.
  • Planning, coordinating, and controlling work on a project is something that the project team itself cannot do because it should not do it due to the very specifics of these tasks: they have little to do with the creativity and creativity that programmers need. It’s just plain boring.
  • Bringing internal corporate or project information to developers, and distributing information between disparate (for example, physically remote) departments requires separate efforts. Developers usually either don’t have access to this information or simply aren’t interested in it.
  • Providing the project with the necessary resources, be it developers, equipment, premises, necessary software, etc. – this is a task that is better solved by a manager; he just usually knows how to do it!🙂

Of course, there are a thousand and one more reasons why a project needs a manager, even if the customer is sure of the opposite, and the developers completely agree with him. And, of course, you can find just as many arguments to the contrary. Personally, I am convinced that a project manager is necessary!!🙂