views:

963

answers:

35

I'm part of a small 3-person development team (myself and one other local, the third is remote). Our manager will be leaving soon, so we're starting to look for a replacement. We're going to be involved in the interviews of our potential new managers, but I'm having a heck of a time trying to come up with things to ask them or look for. My current manager is the only real manager I've ever had, so I don't even have experience with other styles of management.

What suggestions do you have for this? What kinds of things should I, as a developer, look for in a manager?

EDIT: I guess part of what I'm wondering is how do you tell (from an interview or other factors) that the person you're looking at actually matches what you're looking for? Some of the answers so far give great things to want in a manager, but how would you actually determine if someone would be that way?

+18  A: 

The ideal manager is someone who removes obstacles from the path of the team. They are not a dictator, but a facilitator.

Edit in answer to Herm's comment - You can find out if they will do this by asking about their management philosophy. Ask for examples of when their team was most successful, and see if they focus on just them or on the team. Ask how they handle conflict within the team, or how hard decisions are made. Ask how they respond to higher management pressure to push up the deadline or bloat out the scope of the project.

Carlton Jenke
But how do you tell if they're going to do that?
Herms
Threaten them with violence if they don't.
Will
I guess you could present them with a scenario and see how they answer in the interview
harriyott
Or, you can be upfront with them about your concerns and evaluate their responses.
Will
For questions like this, never let the person being interviewed know the right answer ahead of time.
Chris Lively
+3  A: 

You need somebody who will allow you enough space to get your work done.

You also need somebody who will not try to tell you how do do something they could not do themselves.

Galwegian
+5  A: 

Someone who has at least a basic grasp of the technology their team will be using.

harriyott
+5  A: 

Make sure the manager supports the style of development you want. If you are currently using agile methodologies, and the new candidate likes waterfall, then it's not going to work.

Kristopher Johnson
+1  A: 

I would suggest to read "Peopleware" by Tom DeMarco and deduct a picture of a manager from there. It would for sure include them being facilitators (@Carlton Jenke), giving you a pleasant workspace (@Calwegian), but more then that. They would actually see developers as the most important people in the company (at least for software companies), and know where you know more then them (things like estimating, selecting tools, planing your work schedule, ...).

Ralph Rickenbach
Unfortunately, one of the interviews is this afternoon, so I don't really have time to read a book. But it could help in the future though. :)
Herms
+14  A: 

To quote the Tao Te Ching:

Superior leaders get things done with very little motion. They impart instruction not through many words, but through a few deeds. They keep informed about everything but interfere hardly at all. They are catalysts, and though things would not get done as well if they were not there, when they succeed they take no credit. And, because they take no credit, credit never leaves them."

Patrick Cuff
A: 

Well, duh, be open from the start: ask them what you want them to do (not just 'manage us' but stuff like "move obstacles out of the way"). Give real examples from stuff you are used from your current/last manager.
make it clear what it is you expect from him, ask him if he thinks he is able to provide this.

The most important part: make sure you all get along! Don't hire someone you don't like on a personal level!!!

Then give him a chance to prove his claims, if he does not, explain to him what you expect him to do better, if he fails to comply, let him go again.

Openness and truth are always a good way to start.

Sam
+3  A: 

Someone who stands between top management and development team as:

  • A stone wall, during tough times
  • A glass wall, when thing go smoothly

Am I dreaming too much???? ;)

Vijesh VP
A: 

Before you can get an answer to this question, you really need to look at yourself. How do you function on a day to day basis?

For example, what type of management do you need? Some people need to be constantly told what to do, and in some cases, how to do it. Some people want to be left alone because they already know the business.

The more truthful that you are with yourself, the easier it will be to interview a potential manager.

Of course, at the end of the day it's going to boil down to whether you like the person or not.

Chris Lively
+1  A: 

They should be a programmer. Many of the worst screw ups I have seen were the results of technical decisions being made by non-programmers. Lawyers are not allowed to be managed by non-lawyers. It should be the same for programmers.

Edit (response to Herms): A programming team leader will be making programming decisions. They will need to make a call when team members disagree with each other or with external parties, or when team members want to make purchases. I want my surgical team led by a surgeon, I want my legal team led by a lawyer, I want my kid's college led by a professor, and I want my programming team led by a programmer.

Glomek
I'm not sure I 100% agree. I'd prefer a manager with technical knowledge, but a non-technical manager can still work, as long as the understand that they don't know the tech and involve the people who *do* know it in the decision processes.
Herms
+1  A: 

In addition to facilitating progress, they also need to stand up for you. You can typically determine if your potential manager will be proactive in standing up for you in the interview. If they are aggressive and outspoken during the interview then they will most likely be aggresive and outspoken when merit/awards are being determined.

dr_pepper
+9  A: 

The best manager I ever had described himself as a "sht filter". "I filter the sht coming down from above before it gets to you guys, and I filter the sht coming up from you guys before it reaches upwards". Which sounds very negative, but was actually meant in a very positive way.

I would also add that the manager has to (a) back you 100%, even if you're wrong, and then take it up with you afterwards; (b) encourage you to make good decisions, but to trust that you have and not start sticking their non-technical beak in.

Do you really need a "manager" as such? If you're such a small team just hire someone to run the project plan, but who has no authority over setting priorities or deadlines. Manage that yourself/yourselves.

endian
Do you really want someone to back you up when you're wrong? I think part of being a good manager is giving tactful feedback in those situations. A key component of getting where you want to go in life is learning. Someone that backs you up when you're wrong might make you feel good, but is keeping you from being able to grow to some degree.
Paul Morie
+2  A: 

The first thing you and your colleagues need to do is decide some of the attributes you want in a manager. What is role will be, etc... This is unique in every organization and there is not a one size fits all answer.

Once you know what you want, the best way (especially when it comes to managers) to deal with interviews is to prepare a list of behavioral questions. Be prepared for the interview. Review the resume in details. Look for someone with experience managing remote employees (as it applies to your situation).

The Manager Tools Podcast is a great resource to find out what a great manager should be. They actually have a number of podcasts on interviewing. They cover both being an interviewee and an interviewer. This should give you plenty of ideas on what to do and ask during the selection process.

A list of interview related podcasts are available. Some good ones are:

Benoit
Listening to the behavioral question one now. Thanks!
Herms
+3  A: 

Do you know Scrum? The ideal manager is a ScrumMaster. No, I don't mean he needs know Scrum very well (although that won't hurt either) :-P ScrumMaster is just a role in the Scrum development model. What defines a ScrumMaster?

Scrum is facilitated by a ScrumMaster, whose primary job is to remove impediments to the ability of the team to deliver the sprint goal. The ScrumMaster is not the leader of the team (as they are self-organizing) but acts as a buffer between the team and any distracting influences. The ScrumMaster ensures that the Scrum process is used as intended. The ScrumMaster is the enforcer of rules.

I need a manager as a buffer between the developers (the team I belong to) and everyone surrounding us. No matter what a customer or the management wants from the team, they first come to the manager and if the manager thinks this is something the team should hear, decide, or take care of, he takes it to the team. If I have a problem that we, the team can't solve, I take it to the manager and its his task to find the best possible solution, so we don't have to worry about that.

We are not really doing Scrum yet in our company, thus we still have compartments. I need the manager as a buffer for these, too. I'm as a developer only care for implementing whatever I have been asked to implement. I don't care for issues of the sales and marketing department and if they come to me, I direct them towards the manager and tell them to please discuss that with him. If he can decide upon it without bothering the team, he will do so. If he has to bother the team, he will call for a meeting and discuss the issue with the team.

Further the manager must make sure that whatever rules there are, these rules are enforced (and ideally all rules are rules created by agreement, that is all team members agreed that we should have this rule). Still, it happens that the whole team agrees on a set of rules and some individuals violate them. It's up to the manager to make sure they stick to the rules they agreed upon.

Mecki
+1  A: 

All the comments above are great. You also want--OK, maybe you need--someone who can gently nudge. The manager is the poor schlub who not only has to get you poptarts and beer and keep Higher Management out of your face--he also has to keep the team on track when they decide that they REALLY need to take a month out of the two-month schedule in order to switch source control or rearchitect the entire framework in a new, fun language.

And the manager has to have the you-know-what detectors attuned enough to know when this is really required--and when not.

With such a small team, the manager may be able to get in there and help develop--if s/he can do so without being a demoralizing influence on the rest of the team (read, "the manager thinks he's smarter than me"--not good)

bog
+1  A: 

A bad manager I had once is one who knew nothing about the technology we were working with.

A worse manager I had once was one who knew nothing about the technology but thought he knew everything about the technology we were working with. And everything else really.

Ideally, you want your manager to be a techie, such a thing is rare (really good developers seldom want to be managers). So you want someone in the middle - someone who can recognize basic aspects of your work but isn't some know-it-all who you will have to fight battles with constantly.

Schnapple
+1  A: 

You want a manager who can, well, manage. If they spend more time coding, or debugging than managing you have a problem. I know, I know development managers code, right? No. A manager, a real manager, manages. They keep your inbox a plenty, and help you handle any issues you have with the work, people, or tasks.

Where I work now, we have our manager then comes the project lead, and then we have the senior level developers and engineers working on the specific project. Our manager is rarely seen, or heard from, but he's working to keep us busy, focused, and happy. Yep, happy. My manager calls me to ask how I am, what I need, and if I like my work. Seriously.

How can you tell that in an interview? Well, unfortunately, its very hard to tell. Being with a company large enough to support that kind of infrastructure helps, but it isn't for everyone. If you like to be a free thinker, and forge your own path sticking it to the man then the small company world is great. :) However, with that comes less management and more coding.

Personally, I prefer having a dedicated manager. They're available when you need them. I remember having a senior developer as my manager at a small company. I could never get his attention when it was needed. Just rm -rf /'d a live site? Good luck getting advice on fixing that before the customer notices.

Target questions to ask:

  • How is work assigned, and are tasks defined in specifications or requirements?
  • How are the development teams structured?
  • Is there upward mobility within the company?

Once you know how the team functions, you'll know if the manager is on the ground fighting kernel panics or not. When you know the structure of a single team, you'll know where you fit in. If there's no leader within the team, you have a problem. Knowing about advancement tells you whether or not the company is interested in hierarchal management. If they aren't, well, management is likely just a title on their desk.

Abyss Knight
A: 

Steve Jobs

rahul
uhhhh... seems like to be one of the most annoying micromanager ever.
Stefano Borini
Yes, especially I like the moment when Steve threw a camera at one of Apple managers during one of the tech demonstrations. I think it was one of the wwdc's. Totally dig such manager.
ttvd
Better a camera than a chair :D
Stefano Borini
+12  A: 

One you can believe in.

A manager is a driver, he guides the tide, seldom is part of it. His role is to harness the skills from the right people to achieve a goal in a defined timeframe. For this reason, he must be trusted by his team. If you trust him, if you know that he is arranging things properly to achieve the goal, you leave this responsibility to him. You believe in his skills, and put yours in his control.

A manager knows how to deal with human nature, its weaknesses and strengths. Knows how much is too much, and how much is too few. He praises and never blames. He looks for solutions, not for those responsibles. He will never put you on a unachievable goal, and if things go down, he is the one who takes the blame for that.

He trusts your skills, and never pretend to watch over your shoulder micromanaging in the most gory details. He does not hinder your creativity unless it becomes a problem for other members of the group, or for the goal to achieve.

Stefano Borini
I wish that was true of most managers, I honestly can't find many traits there that my managers have had, they all suffer from 'blame game' / 'micro-management' / 'doesnt take the blame'
Jakub
A: 

One you come up with on your own.

Bombe
-1 This sure is helpful. </sarcasm> Why not give an opinion, or not bother? The question called for this after all.
Kyle Rozendo
So I guess you consider “what are your favourite underparts to wear while coding” a valid question for Stack Overflow, too, only because it contains the word “coding”?
Bombe
You're comparing managerial styles and those you want to encounter in your work life, something which by the way accounts for more time in your life than what you get to spend with you wife and kids (whilst awake), to underpants? You're kidding?
Kyle Rozendo
They’re both completely unrelated to programming, yes.
Bombe
You live in a dream world mate. If your managers don't relate to your programming, you don't program (or work).
Kyle Rozendo
+9  A: 

Just be honest, describe what sides you like in people. Chances are if they don't like your answer you probably wouldn't want to work there anyway.

ttvd
+1  A: 

The one you are willing to go with to hell and back

Shahmir Javaid
+5  A: 

A manager that has: people skills, is a good leader, great at motivating, networking and is a good negotiator.

ps. and if they are weak technically they will trust the decisions you make, or the direction you go in when working on a project.

kevchadders
+2  A: 

Listens effectively - A manager who seeks first to understand, then to be understood is a manager who will always have their finger on the pulse of the business.

Narayan
A: 

Jon Skeet. The man knows everything.

(And I have no shame)

butterchicken
Knowledge does not necessarily reflect ability to manage. Not that I want to undermine Jon Skeet :P
ttvd
Heretic! We shall burn you upside down for this blasphemous claims on the Jon Skeet Church!
Randell
+17  A: 

My answer (not necessarily the best) would be: One that makes my job easier, gives direction where appropriate, and ensures that I can do my job to be best of my abilities.

What I'd hope to imply with this answer is:

  • Keeps office politics at bay
  • Don't interfere with tech decisions
  • Keep requirements stable
  • Generally: leave me alone as much as possible while checking progress as non-invasive as possible.

I'm not a huge believer in "motivational" managers. imho motivation should come from the job and the subjects, if it doesn't I'll change jobs. But then, we're in the luxurious position of being in an industry where that is possible.

Ticcie
+4  A: 

There are two distinct manager roles.

Right now we want to work for a manager who knows how to run projects properly, which means keeping the project on time and within budget. True, that entails unpleasant tasks such as asking for timesheets and estimates. But also means ensuring that we're working on tasks which drive the project forwards, not promising the customer the moon on a stick and generally running flack against external distractions. In short, somebody who gives us confidence that what we are working on is worthwhile and achievable.

In the long run we want a manager who will support and shape our career. That means sending us on training courses (including soft skills). In means making sure we work on many different projects or at least undertake different roles on a long running one. It means championing us with other managers in our organisation. In short, somebody who gives us confidence that what we are working on right now is not what we will be doing in twelve month's time.

We need to work for a decent project manager because the stuff we do every day contributes directly to our quality of life. Following a spreadsheet-fixated donkey on a death march is no way to spend our days. But if we want to progress our careers we need a manager who can see beyond the confines of their current project. The good news is there are people who combine both sets of traits working in your organisation. The bad news is they have probably been promoted to a level where they no longer have developers as direct reports.

APC
Right on with the first paragraph... but the only person who should manage your career is you. Managers may seek to delegate more work to you and possibly see you as a succession plan, it's not their want or responsibility to shape your career.
Mark Nold
@Mark. I don't disagree that ultimately everybody is responsible for managing their own career. But having a supportive manager makes it easier to develop a career within the same organisation, as opposed to jumping ship every eighteen months. Of course things are difference for freelancersrs, and some people just like getting "Sorry you're leaving" cards.
APC
Besides, the OQ was about wish fulfillment. It is probably true that most managers don't see it as their responsibility to grow us as individuals, but that doesn't make them right to think so.
APC
+3  A: 

Personally, most if not all of the below would be great:

  • One that Listens
  • One that has the ability, and willing to Learn
  • One who doesn't get overly involved involved with technical matters
  • One who can diffuse office politics without inflaming them
  • One who will "stick up" for you, as he knows the problem and its difficulties
  • Ability to speak to Clients without forwarding every client (potential or current) to a non-support person.
  • Democratic leadership style (with ability to take charge) as opposed to "laid back" or autocrats.
  • And as for a HUGE quality for me, Motivation, Motivation, Motivation

All of the above produces a person who you can lay your trust in, and hopefully one who lays their trust in you. It would be a person who gains loyalty through respect, not fear (or the appearance of fear)

Kyle Rozendo
+4  A: 

A manager who has the courage to say no to his boss.

Sam
Yes, but that doesn't just apply to managers!
Simon Knights
That's why am looking for a job!
Sam
A: 

A good manager sets the right expectations. On one side of the manager are the customers (and the other higher-ups); on the other side are the programmers.

To the customers, the manager needs to say things like:

  • What do you like about our software? What bugs you? What new features would you love to have?
  • You say you want this feature. What are you really trying to accomplish? Would the feature in this mockup work instead?
  • To accomplish X, we'd need to rework some earlier code. Is it worth the extra time to you?
  • Do you agree that when we have finished this list of things, you will be satisfied? Sign here.

And sometimes, when a marginally profitable customer wants time-consuming customizations:

  • I'm sorry, that feature doesn't fit into our plans right now. We'll keep it in mind and let you know if we're able to get back to it.

With this done, the manager can present a clear, stable list of requirements to the programmers, based on whatever makes good business sense.

To the programmers, the manager needs to say things like:

  • Break down this requirement list into tiny tasks and give me estimates for how long each piece will take.
  • Long-term, we hope to do X (add features, scale up, run on multiple servers, have multiple product versions, etc). Do we need to code things differently now to prepare for that? How does that change our estimates?
  • What do you hate about our code? What would it take to fix it? How can we minimize the pain of re-testing?
  • Are there any tools/books/training that would help you be more productive? Any distractions I can eliminate? Are you confused about anything?

And sometimes even:

  • I know you think doing X is stupid, but trust me, it makes business sense. Do it anyway.
Nathan Long
+1  A: 

With the one open enough to ask this question.

Developer Art
A: 

The attributes I like in a manager:

  • Respects me and my time.
  • Respects my intelligence and experience.
  • Understands that people have lives and families outside of work.

A good manager IMHO won't ask me to stay late unless it's a crisis. They will recognize when I am on and when I am full of it. They will be flexible when it comes to family needs or emergencies.

I find some managers think they can bleed every last amount of time and energy out of their employees. My guess is that they have high turnover or employees who don't value themselves.

pave
A: 

i know this was asked 10 months ago, but I just found this question today and would like to give an answer:

  • Methodology knowledge/analysis - How well do you know what we use here? What do you like about this methodology? What do you think are the strengths and weaknesses of this approach? This isn't to say the maanger has to know it well, but it may help as well as what kind of attitude is given in the answer.

  • Level of communication - Do you try to talk to everyone under you each day or could it be weeks before we discuss what I'm doing? Do you have an open door policy? Are you open to sharing personal and professional activities in the office or do you compartmentalize your personal and professional life? Are the type that says hello to everyone when you arrive and good-bye when you leave the office? Do you like to have regular meetings to pass along various business news such as a weekly or monthly team meeting?

  • Values/management philosophy - What are your core values? Do you use this often when making decisions? For example, do you try to continuously improve what you do? What management philosophy do you use? Do you have certain practices that your team generally follows? How do you celebrate successful projects? How do you handle project failures?

  • Conflict resolution - How do you handle cases where a developer and a tester have different interpretations of a given specification? How do you handle cases where developers fight with each other? How do you address complaints that your underlings have?

  • Handling bad employees - Do you have a style for handling employees that aren't meeting expectations? Do you try to work with each employee to develop a professional growth plan? Do you have 1:1 private meetings to review performance each month, quarter, semi-annually or is the annual review frequent enough for you? How would you handle the employee that overly invests in their work, that workaholic that spends 60 hours in the office each week and thinks the project is "their baby" and it'll get done well come hell or high water? If an employee makes a mistake, how do you handle this? What if it is the same mistake for the 100th time in a couple of weeks?

A key point is to note how the answers are given. For example, in the methodology question there may be a pause while the manager or possible manager absorbs this new information. Are the answers given well thought-out, with proper syntax, said at a reasonable speed with a respectful tone? Does this sound like the kind of person you would want to work under? Each of the above points centers around a different aspect that is worth addressing, particularly the communication and how to handle when things go wrong?

JB King
A: 

Qualities of a good manager:

  1. Knows how to get the best out of each individual ... based on that individual's skills and weaknesses.

  2. Takes time to understand what each individual is trying to accomplish, and facilitating that by providing information or knowledge about others who can help, and uses his or her connections/influence to help accomplish those goals.

  3. Provides clear guidance about his or her goals, long and short-term, for the group and guidance on how to accomplish them.

  4. Provides constructive and helpful feedback on your performance and useful suggestions on how to improve them.

  5. Knows how to motivate people working with him/her by recognizing achievement and accomplishments.

  6. Helps you to accomplish your own career goals by supporting learning, providing appropriate performance reviews (appropriate is highly context dependent - in some organizations it can mean highly favorably biased reviews, just to keep you on par with others within the same organization - US military is one example of this).

  7. Protects the team as well as possible from the vagaries of the company culture.

I had a manager like this - without him, working at my company would have been intolerable.

Larry Watanabe
A: 

Depends on the purpose of the role.

If its to act as your interface to customers, then the ability to listen and understand the requests in people talk, not always in techy talk. So that he gives the customers a feeling of being in good hands.

If its to schedule work, then...

Just a thought, If there are only 2 of you, do you actually need a manager?

I tend to be of the opinion of my manage works for me. I need to write great code and produce a great product for our customers... My mamangers role is to provide me with the resource and remove barriers to me doing so..

As to how to actually test that, its nearly impossible in an interview. Managers tend to 'talk fluff' - I dont mean that as rude but you tend to get the answers you want to hear, rather than actual reality.

Trial periods are the only real way of telling.... imho

JohnnyJP