Realization of projects and tasks, achieving goals in a group of people called company, require perfection in information flow and long term planning. Process management in that kind of group is a quite complicated issue. That is why since a couple of years a lot of techniques and methodologies, like Scrum, Kaizen, Kanban and so on, have been created to simplify it as much as possible. In short these are the most efficient ways to use your employees’ fullest potential.
On top of that we usually have a BIG MAN, who can be a leader, a manager or a director, etc. So here are the questions: What characterizes that kind of person? What’s the difference between a manager and a programmer? Are they able to change their roles?
To understand that we should think about it from a human point of view. To put it another way, we need to use the term a human factor.
First of all in order to manage people, you need to understand them. To do this we have to use emotional intelligence. It is more than just a part of human beings. Emotions are in everything we do, be it personal or professional, we can’t forget about it in our collaboration strategy. So it’s not all about control and order, but also listening, understanding, communicating and giving effective solutions to complicated and emotional issues are all crucial.
Many people belittle this part of management. Effects are dramatic and similar to this example: “Bob, starting from tomorrow you will be a Project Manager, because we have too many programmers, but don’t worry, you’ll go on a Scrum Master Course”. We all know how these certificates look like and how much they are worth. That’s a quite similar story to another one of being a coach after 10 days of ICC training course – it doesn’t work children, remember that!
On the other hand, Mark Foster in his book titled “How to make your dreams come true” says that there are two ways of achieving goals: Push mode and Pull mode. The first one uses just a mechanical skill to complete the task – something similar to programmers, whereas the second relies on experience, intuition and emotional intelligence to choose the best way to solve a problem – our vision of a manager. When it comes to this kind of management model, a manager is not able to change his role with a programmer and vice versa. This model is used by bigger companies. In this way we sometimes lose potential of employees because of creating a complicated hierarchy with multiple levels of managers.
Why? Many small companies are using Agile methodology. It is based on a collaboration. The model described above doesn’t meet these requirements. There is always a barrier between managers and programmers on different hierarchy levels. It leads to divide them into “ a knowledge worker” and “ a manual worker”. The results are that we’re losing people who also have brains and don’t use it. Nowadays to have efficient workers means to treat everyone like a knowledge worker.
Evan Rose said:
Command-and-control cultures segment their workforces into knowledge workers and everybody else. They pay knowledge workers to think and pay everybody else to carry out orders. In these cultures, collaboration is dead on arrival
And most important, information flows in multiple directions rather than cascading from senior leadership down through multiple levels of management to front-line people. In reality, everybody today qualifies as a knowledge worker.
It creates something called self-organization that our world is based on. If we are self-organized, why don’t go any further?! Maybe we don’t need managers at all? Something like this is implemented in 37Signals and DHH, described it here:
We also let our teams manage each other. Every week, one employee gets to be manager and set the rough agenda, review others’ work, write a company status update, and generally be the go-to person for their colleagues. We rotate these duties weekly. You know what we’ve found? Magical things happen when employees know they’ll get to be king for a week. Gone is the complaining about what management is forcing them to do, because rotating management gives them a clear perspective of both sides of the fence. Employees will step up and grow if you give them the chance.
But don’t get smug. It doesn’t work everywhere and for everyone. But like David said: there’s a greater chance that it would work. If you’re apprehensive, try experimenting with one team or a division. Generally in a small company you can react relatively quickly if something goes wrong, and it’s easier to avoid dramatic consequences.
In a nutshell, whatever you’re going to do with your management model, always remember that somewhere deeply in the organization’s structures something like “human factor” is waiting for you and can crash all these beautiful ideas. The only one thing that can prevent disaster is realizing that you are dealing with human beings, not machines.





Pingback: How to manage your Programmers | Uplevel e-solutions
Pingback: 如何管理你的程序员 | ジ溫暖色調ミ