views:

750

answers:

11

Specifically, what are the best indicators to forecast if someone will be a great manager for a team of software developers, and also, someone that you would want to work for?

Examples:

  • education
  • breadth of technical knowledge
  • depth of knowledge in a particular domain
  • interpersonal skills
  • work on open source projects
  • choice of tools, operating systems, and languages
  • taste in music
  • etc

Please: Only one trait per response, so they can be voted up or down.


This question is intentionally similar to a question on the traits of software developers. Since many software managers are software developers who got promoted, I think it will be interested to see if the traits line up.


Edit:

For the record, this was not an attempt to gain any reputation, badges or bonus bucks. With help from thesmallprint (that's a username, not a legal reference), I just learned about the "community wiki" feature, and happily turned it on. Now you can feel free to vote and comment with the reassurance that this question will not improve my reputation, or help me get the coveted Almighty Ruler badge, which I could then use to crush your dreams/soul.

My experiences with this site have been very promising -- the caliber of the questions and answers has been impressive. So, if you find this question too subjective, I offer my apologies. I have had this question (and the other like it) rolling around in my head for a while now, and I assumed that other developers would consider it interesting.

If you like this question...please leave a comment or vote.

On the other hand, if you still hate me and my question...please shake your fist in the air, then vote me down and leave discouraging comment. Then you can go to bed content with the knowledge that you've made the world a better place by making me feel dumb.

+2  A: 

I want a boss that does not micromanage, has an operational understanding of what I'm doing, and respects my technical skills.

craigmoliver
+2  A: 

Experience as a developer. Having lived in the trenches for a while will make them much more sympathetic to your plight, and allows them to create much more realistic expectations and schedules.

Matt J
+2  A: 

It is very important for an IT Manager to have background in development and have good managerial skills.. IT background alone is not enough .. and being a manager alone is not enough...

Wael Awada
+4  A: 

I've been blessed (and it is something to be grateful for!) to know a number of good managers, and while they all have different backgrounds, they have the following things in common:

  • They don't micromanage.
  • They will sacrifice for the good of the people the manage.
  • They can communicate with people above them, as well as people below them in the business hierarchy.
  • They listen.
  • They can say no to upper management or to their staff when the situation calls for it.
  • They seek to minimize the risks to a software development project.
  • They seek to improve the chances of a project's success by pursueing best practices.
  • They value quality over deadlines.
torial
+3  A: 
  1. Fight for your people
  2. Know your people's skills
  3. Know when to get out of the way
  4. Motivate the team (know when they need a beer and when they need a kick in the arse)
  5. Clear the obstacles in front of the team; steer the team with gentle nudging (think curling vs football ;-)

Of course it's also important to have experience in the area, though you have to acknowledge that you are/will fall behind as you stop being hands on.

ddimitrov
I prefer the horse racing analogy, although the guys I manage aren't thoroughbreds. More like harness racing at the local track.
MusiGenesis
+1  A: 

The guts to say no to the MBA's, and the wisdom to know when to do it.

seanb
+3  A: 

I'm looking at this question through the eyes of a software engineer interviewing at a company, who is trying to determine if s/he wants to work there. So the top traits I look for are:

  • Someone who listens just as much (or more so) than talking. Somebody who spends the whole time talking about themselves is a major red flag
  • Someone who views their managerial job as being to move the furniture out of the way so that developers can get their job done
  • Someone who not only rewards top performers, but also is willing to get rid of under-performers. As we all know, under-performers can hurt the whole team, and not getting rid of problem employees punishes the whole team.
  • Someone who knows how to push back on upper management when requirements are added in. The manager should have a clear scheduling/expectations process and require upper management swap previously scheduled tasks for new functionality they want to add in the middle of the development cycle.
  • Someone who has a judicious approach toward team conflict - you want a manager who is not afraid to bring all the issues out on the table up front, and make sure that everybody is heard, as an initial step towards buy-in (this is borrowed from The 5 Dysfunctions of a Team).
  • Someone who does not see writing code as a significant part of their job function. It is extremely difficult (although not impossible) to be an effective manager while at the same time putting out high quality technical work. Also, there could be issues having real collaboration with someone who decides what your raise is at the end of the year.

These are the top few that popped into my head. I'll edit if I think of more.

Julie
A: 

I dont think there is a list you can just check off in search of a good manager.

Management of people and projects requires some natural skill, which can be recognized in individuals early enough to start priming them for management, but it also requires a multitude of learned skills -- some of which they may never learn, or simply don't master. At best, the following criteria would need to be met to successfully manage people and projects (keep in mind, this is for long-term management, not just management of a single project):

  1. Good judge of character & Eye for big picture
  2. Experience & Knowledge in the field
  3. Ability to multitask across multiple business domains

1. Good judge of character & Eye for big picture They must be experienced enough and good enough a judge of character, to be able to build and maintain a balanced team. As you may or may not know, a "dream team" is not a team of highly skilled developers, but rather a team that works well together, where each developer complements the team as a whole with their skills and knowledge. Like pruning a tree, the dead or dying branches need to be removed; support given to weakening branches; And more importantly, the tree needs to be in an environment where it can thrive and grow.

2. Experience & Knowledge in the field Above all, the successful software development manager must be from the field. Hiring someone because they have a MBA is the first step towards failure. No matter what their skills in defining business process or juggling budgets, they'll never hold a successful track record in meeting deadlines and retaining developers. Ultimately, it could translate into a long-term loss for the company -- especially if their reputation is hurt.

A successful software development manager must be continually aware of exactly what skill-sets his team has, as well as those in the ever-changing subcontractor pool. In addition, the successful manager is defined not by short-term success, but the long term career average. This means that they must recognize among other things, the need to keep their developers skills up to date with modern technologies being used in their specific industry, and budget developer skill improvment and wellfare accordingly.

It is my opinion that the manager of a development team must be a "go-to" guy. If the developers know more than the development manager, it will be perpetually difficult to maintain respect and loyalty amongst the developers.

3. Ability to multitask across multiple business domains Depending on corporate structure and policy, the successful development manager needs to have a good enough understanding of general business processes that they can interface with appropriate departments necessary to properly define and manage projects and resources. This may include, but is not necessarily limited to, creating and giving presentations to senior officers, working with HR to acquire necessary skill sets for a project or team, interfacing with accounting and management for budgeting, all while following criteria 1 and 2.

So in summary, it is my opinion that good managers build themselves and rise to the surface. Of course, the old adage applies here.. "it takes one to know one". Or in this case, to recognize one.

PS: replace management gender identity used throughout with gender of preference :P PPS: There's various holes to be filled in here which I didn't cover - I dont want to take up everyone's time by writing a book, smile. But hopefully it helps answer the question as to how to tell if someone would be a great manager for a team or not.

jproffer
I'm not sure I agree that managers should know more technically than developers. Developers are doing the work and should be the most technically knowledgeable, in my opinion. Also, it's almost a benefit for the manager to know a little less so s/he can step back and make the big decisions.
Julie
A manager needs to understand the work to manage it well.The manager also needs to understand the language and process well enough to recognize when a developer is "bad", BEFORE the project goes bad. You dont want to find out a dev is bad when upper management is yelling at you.
jproffer
A: 
  • Someone who trusts what their technical subordinates tell them from a technical standpoint.
  • Someone who doesn't push their own technical solutions, especially if they have no technical experience (or recent experience.)
  • Someone who doesn't treat me as simply a "resource" to be "allocated" to a project
  • Someone who doesn't pressure me to hit dates that are unrealistic.
  • Someone that buffers me from the typical corporate political bs.
Giorgio Galante
A: 

A good manager should make it possible for you to do your job well. How?

  • By enabling you to work with few interruptions
  • By providing the infrastructure you need to work efficiently
  • By trusting your skills as developer and your ethics as a conscientious worker, rather than distrusting you until proved innocent
Ola Eldøy
+1  A: 

I think the manager is not as important as the process the business as a whole takes to product development. At my company I am a manager. I have half my team working in Scrum, they self motivate, find solutions to business problems as well as tech problems. The other half work from an Excel spreadsheet. Guess who is happier?

For me it is all about process if you can find an organisation that will follow a professional approach to product development.

Managers are often representative of their managers and so on.

Corporate culture is king here.

Stewart Robinson

related questions