I am seeing a lot of programmers turning away from management and administration roles. They want to build stuff. And as a result, a lot of these positions are filled by non-technical people. I fail to see how they add value. Is scheduling meetings, booking offsites and other administrative work enough to justify their role?
-
10What percentage of all software teams do you think could operate like that without egos and agendas getting in the way?– ozzCommented Jul 26, 2013 at 18:09
-
30From the Tao of Programming: A novice asked: "In the east there is a great tree-structure that men call 'Corporate Headquarters'. It is bloated out of shape with vice presidents and accountants. It issues a multitude of memos... How can such an unnatural entity be?" / The master replied: "You perceive this immense structure and are disturbed that it has no rational purpose... Do you not enjoy the untroubled ease of programming beneath its sheltering branches? Why are you bothered by its uselessness?"– apsillersCommented Jul 26, 2013 at 19:58
-
possible duplicate of I'm a manager. How can I improve work relationships and communication with programmers?– gnatCommented Jul 28, 2013 at 7:45
-
2Rather recent writing by Rands revolves around some of these issues; I give it a seal of recommendation. (Not to mention he has a lot of other great writings on management, too!)– Jari KeinänenCommented Jul 31, 2013 at 4:11
6 Answers
I fail to see how they currently add value and is scheduling meetings, booking offsites and other administration works enough for their role?
Don't underestimate the amount of interaction your manager does with other departments. They handle budgets, training plans, HR paperwork. They protect the developers from getting sucked into meetings with other departments and provide a unified front for your group.
In short, their job is to protect self-motivated developers from all of the other demotivating things that exist in business.
-
4
-
20Very +1. We occasionally get "leaks" through the system and a small idea of what our managers and especially our Product Owner go through. I do not want to deal with that daily.– IzkataCommented Jul 26, 2013 at 18:42
-
1I know these are important, but I don't get the relative importance in software development team and the value for these. Commented Jul 26, 2013 at 18:55
-
17@SenthilKumaran As a developer, would you rather spend two hours with a manager from another department discussing why the software is not complete, or would you rather spend those two hours writing code? You know how difficult it is to explain technical issues to your manager. Imagine trying to explain it to someone who knows even less than your non-technical manager. The best non-technical managers prevent their developers from all the things that would waste the developers' time that is better spent coding and testing. Commented Jul 26, 2013 at 19:41
-
5This over and over. Even for a technical manager, this is still the biggest part of their job.– EarlzCommented Jul 26, 2013 at 20:51
The best managers are magicians. They make the rest of the company disappear for their developers. I can't remember the exact quote from Joel but it was something to the effect that it's management's job to make sure there's a fat Internet Pipe, a beast of a machine, and lots of caffeine so all the developers have to worry about is what they do best.
A good manager is the voice of your group to the rest of the company.
-
4
As it applies specifically to software development, there are two sorts of value-adding roles for managers: project management and team leading.
A project manager interfaces with clients and middle management, which is a time saver for the developers. Often there are clarifications or scope changes that come up in projects, and it is helpful to clients and middle manager to have a single point of contact. Trying to field questions from every member of a development team leads to unrecorded project decisions and undocumented commitments, the bane of scope management.
On the other side, a team leader is involved with career/skills development, making sure the workload is appropriately distributed among team members, and providing resources and rewards commensurate with the individual contributions and needs.
Neither of these roles requires a heads-down programmer, in fact somewhat the opposite. A programmer will often jump to a code-writing task as the first response to a question or crisis, and it's helpful to have someone whose job is to ask whether that task really needs to be done.
-
6Developers see trees. Their managers see the forest. Commented Jul 26, 2013 at 19:43
-
9@DavidNavarre - IMO non-technical managers have trouble seeing anything...– VectorCommented Jul 27, 2013 at 10:10
-
13@Vector: what you seems to be referring to is not non-technical managers, but incompetent managers.– Lie RyanCommented Jul 27, 2013 at 17:39
-
@Vector: It brings to mind Dilbert's PHB, but I don't think this is the same as a non-technical manager.– hardmathCommented Jul 27, 2013 at 20:14
-
@hardmath - I understand :-) Your answer is really included in what the OP granted,as per the edit. The point I'm trying to make is that as far technical stuff is concerned, they need to butt out. I have some bitter experience in these matters... "A little knowledge is a dangerous thing" - I'm sure you get my drift. See my answer.– VectorCommented Jul 27, 2013 at 21:02
Along with the other benefits mentioned, the non-technical manager may do a better job of making final decisions when there is an impasse amongst the experts. I know this sounds counter-intuitive, but the good non-technical managers understand the strengths and weaknesses of their people.
Example: Two programmers debate over which server to use for an application. In some sort of make-believe democracy, they both get their one vote, so no decision is made. This war could go on forever (and with some technical people it will). Someone has to step in and arbitrate this disagreement and get the project going. A good judge will lean to the opinion of the one with the most expertise in this area.
Just because someone lacks talent, skill or knowledge in an area doesn't mean they can't identify those who do. Recognizing talent is a talent.
-
1Also, a non-technical manager is available to address the team's needs instead of writing code.– JeffOCommented Jul 26, 2013 at 18:00
-
1"Along with the other benefits mentioned, the non-technical manager may do a better job of making final decisions when there is an impasse amongst the experts." Non-expert has the least amount of info about a specific topic. He can only take "sides" with one with the most expertise in this area (or choose a solution that he thinks it's best). But that doesn't mean his decision is right. Solution from a less experienced programmer can be better but the non-expert couldn't know that. joelonsoftware.com/items/2006/08/08.html Commented Jul 29, 2013 at 9:03
-
In such a situation, an often underestimated part of management is not always letting the best people get their own way. A good manager will read the situation well and will make a judgment that may not be technically correct, but will be politically correct. If the argument is not over something important, the manager may prefer the person who needs more encouragement or is being bullied by the other developers. It's a judgment call and a difficult one sometimes, but that's why they're paid the big bucks.– StephenCommented Aug 2, 2013 at 0:50
-
@Stephen agreed - good manager will know how to manage his people (e.g as you said giving encouragement to people etc.) But if we're speaking strictly about making (important) technical decisions manager has the least amount info about the problem and is probably wrong person to make that decision. Commented Aug 2, 2013 at 9:45
-
@Stephen : but will be politically correct - that is often a very good way for a non-technical manager to lose all credibility with technical staff. Very risky IMO.– VectorCommented Aug 26, 2016 at 17:26
Is scheduling meetings, booking offsites and other administrative work enough for their role?
Yes. Perfectly sufficient. They are also good for calling building management when there is a problem with heat, AC, etc; making sure vending machines and water coolers are well stocked and maintained; bringing in special goodies for noshing; keeping the office clean and orderly...
Do your best to think of other such tasks in order to keep them busy and out of trouble...
Their most important role? Staying out of the way and not mixing with programmers, and making sure that other non-technical people do the same.
Consider a development team like an MLB ballclub (the analogy is quite a good one IMO): The managers are always former players - only they know how to handle 'hands on management' of a team of highly skilled, nerdy, idiosyncratic, professionals, who do things that most 'regular people' cannot.
-
You also get a lot of Managers in Sports that were not former players, or were not very good former players - Arsene Wenger, Jose Mourinho, Andre Villas-Boas anyone? that turn out to be excellent managers. You need strong interpersonal and orgranisational skills to be a good PM which is NOT coding.– bobo2000Commented Aug 25, 2016 at 16:02
-
In my experience non-technical manager are best suited for this role, besides adding value by avoiding company stuff interfering with developers work, they foment partnership between developers(cause it's well know that developers are introverts http://www.unwesen.de/2012/03/16/introversion-productivity-work-environments/), good ones let the team work at their rhythm but caring about visibility.
-
2Your answer would be stronger if you cited some external references or expanded upon your tenets. Stating
cause it's well know[n]
is a weak form of evidence.– user53019Commented Aug 2, 2013 at 3:27