Slashdot Mirror


On Managing Developers

An anonymous reader writes: A columnist at TechCrunch takes a crack at advice on how to manage developers. He has some decent starting points. For example, "Basically a manager's job is to make other people more productive. What's one really good way to do that? Do the work that is getting in their way. Which means: find out what kind of important work your developers dislike the most, and do it for them." Also: "[D]on't bull$%^& anyone, ever. ... Speak the truth as you see it. Speak it diplomatically, don't get me wrong; but be trustworthy. Only then will you be able to trust others." But some of his statements are open enough to be nearly devoid of meaning: "Any particular process artifact is probably irrelevant. The finest tech team I ever worked on began every day with a daily standup; so did one of the worst, most dysfunctional teams I ever encountered. ... [T]he systems and processes you choose for any given project should be fluid, and flexible, and depend in large part on the team and the context." If you are or have been a developer, what qualities have made your managers good or poor? If you've been in position to do the managing, does you experience jive with this guy's?

10 of 146 comments (clear)

  1. If it were easy by Crashmarik · · Score: 5, Insightful

    Everyone would be great at it. Anyone that thinks you can find the secrets to being a good anything in a couple of paragraphs, just doesn't know very much about the topic.

    1. Re:If it were easy by Anonymous Coward · · Score: 5, Insightful

      Pretty much this.

      I've been a first-line development manager for twenty years (one of the reasons I am still "first line," is because I have zero desire to lose my tech edge, which would be a requirement for moving up the food chain. I loves coding).

      In that time, I've learned a lot; much of it by screwing up.

      "Good judgment comes from experience. Experience comes from bad judgment."

      Honesty is a biggie. That's probably one thing that makes the difference. I'm dead solid honest with my team; including up front about how my first duty is to the corporation, but part of my duty to that corporation is to maintain a cohesive, productive team. That sometimes means that I'm honest to my supervisors when they make dumbass decisions or impose bad process.

      That also means courage, personal integrity and a good self-knowledge. Insecure managers are a blight.

      We need to manage ourselves first. An unpopular opinion that doesn't sell many books.

    2. Re:If it were easy by Anonymous Coward · · Score: 1, Insightful

      Do what your engineers hate is pretty much the one thing that I've found in my current job (where managers actually turn out to be good)...

      Managers here defend me from having to go to meetings by going to them for me, arguing for what I've chatted to them about, and giving me good reasoned explanations for the outcome. It lets me get on with my job, while I trust them to fight for a good solution.

    3. Re:If it were easy by Livius · · Score: 4, Insightful

      But very few people can fake that for their entire career.

      Actually being honest is less work. It just takes a minimum of courage.

    4. Re:If it were easy by Anonymous Coward · · Score: 2, Insightful

      Actually, I have to disagree with that position. My experience has been that being a good manager is much like being a good parent. The manager's role is to guide and mentor their reports, not coddle them and do their job for them. Treat the employees as adults and help them understand what their jobs are and how to do them effectively. That means a combination of facilitating them and educating them. Try to setup the employee for success, but ensure that they realize they have a responsibility to fulfill as well. An employee who never learns that working at a company inherently involves not always getting your way is not going to be effective and eventually the employee will fail which does not work to anyone's benefit. Let the employee know what is going on in the company so that they can understand why they are being asked to perform certain tasks or do things in a certain way. Simply understanding how what they are doing fits into the big picture empowers them to make better decisions and understand the trade-offs which is a huge part of both being successful at work and making peace with the inevitable trade offs that have to be made.

      Bottom line, the employee needs to be an adult who understands the concept of responsibility and the manager needs to encourage, mentor and reward adult behavior and provide the resources, information, etc that the employee needs to be effective.

  2. My approach by CaptainJeff · · Score: 4, Insightful

    Here is my approach to managing engineers.

    1. Get the right people.
    2. Get the right work.
    3. Get obstacles out of the people's way.
    4. Get myself our of the people's way.

  3. "What's ONE really good way to do that?" by turkeydance · · Score: 3, Insightful

    superior compensation. period.

  4. ...and SHOW GRATITUDE! by Anonymous Coward · · Score: 2, Insightful

    Can't stress this enough. Few developers respond well when they're treated like machines, even if they get external rewards like bonuses. Showing how valuable a part of the team they are makes a big difference in developers' morale in my experience.

  5. Not specific to Software Devs... by asylumx · · Score: 3, Insightful

    Learning how to manage software developers is exactly the same as learning to be a good manager in general. I manage software developers. I'm not perfect, I wouldn't even rate myself very high, but many of my employees have told me fairly often they appreciate what I do for them. They things they seem to appreciate are: being as transparent as possible, being interested in their personal interests and development, going to bat for them when they need something (new PC, training, etc), giving them honest and quick feedback both good and bad, and not being willing to place blame but instead just looking for solutions. None of those behaviors are specific to managing software developers, but instead are some things good managers do in general.

    I was a software developer before this so while I'm not up to date on the tech they are currently using, I understand the types of struggles they face. That helps, although I'm fairly sure if I went tomorrow to manage a team of mechanical engineers that I could become effective fairly quickly in that role, too.

    Don't get me wrong, I'm don't think I'm a great manager, but I have had one or two great managers and I'm trying to borrow the things I thought they did well and my employees seem to respond to that.

  6. Advice by Anonymous Coward · · Score: 5, Insightful

    Two of the SDEs I manage told me in their last review I was the best boss they've ever had. Here is my advice:

    1) Do not judge anyone on anything except on whether they get their job done. If someone quickly does a good job, I don't give a shit whether they take the rest of the day off.
    2) Lead by example. Do the things you want your guys to do. That means the hard things.
    3) Imagine your team as a machine. You're the oil. Be where there is the most friction and smooth it out.
    4) Sacrifice yourself for your team. If you can't get a reward from the company for someone who deserves it, buy it yourself.
    5) Understand the perspective of your boss's boss, and explain it often to the team.
    6) Say you don't know when you don't know.
    7) Fight for raises and bonuses.
    8) Don't talk as a boss most of the time, but when you do, have a good reason to.

    These guys worked on the project that won us a nomination by a government agency for Small Business of the Year. The morale earned from being a good boss repays itself in improved productivity and reduced turnover. Plus you make friends for life. It pays to be a good boss.