Slashdot Mirror


How Do I Manage Seasoned Programmers?

An anonymous reader writes "I have a technology background and worked as a programmer for a few years before slipping over to the dark side. I am now on the business side and have been given responsibility for a small team of Java programmers. While the technology aspect of what my team works on doesn't scare me, I need ideas to make sure the team stays motivated while reporting to me, a business-oriented guy. Perhaps I should mention I am in my early 30s while the majority of the team constitute an older, wiser generation. What advice should I follow to avoid turning into yet another Bill Lumbergh?"

23 of 551 comments (clear)

  1. Re:Specs by Fulcrum+of+Evil · · Score: 5, Insightful

    Or admit that the requirements are somewhat in flux and take an iterative approach. There's nothing wrong with building a small chunk of the app all the way through, then expanding it. Depending on the specific app, of course.

    --
    "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
  2. Re:Specs by the_banjomatic · · Score: 5, Insightful

    Or no specs at all. The last thing I want as an engineer is someone to come to me with their own solution they want me to implement.

    Good software engineers enjoy solving tough problems. So present them with the problems you are trying to solve and let them come up with their own solutions

  3. Beer by retech · · Score: 5, Insightful

    Beer, wine, whiskey and good food.

    Seriously, they're people. You make it sound like you're some exotic zoo keeper and you need to know what to do when they present their glowing red ass.

    Why don't you think: "How would I like to be treated?" With respect, open communication, acknowledgment of work done, incentive for above and beyond... and learn who they are.

    The fact that you cared enough to ask is a big step.

  4. Get out of their way! by www.sorehands.com · · Score: 4, Insightful

    Focus on getting them what they need, staying out of their way, and keeping the management shit out of their way.

  5. Difficult by dedazo · · Score: 4, Insightful

    See, the key here is whether or not these developers are good developers. Experienced and responsible.

    If they are, the best advice I'd give you is to stay the hell out of their way. They will deliver. The best developers need a set of requirements, a deadline, a good working environment and caffeinated drinks. Not much more.

    But on the other hand, if they're not, then you need to stay on top of them. But how are you going to figure out if they are, given that you're a business guy? That's a difficult situation.

    If you do know that at least one of them is the kind of person that can lead, work through him/her to make sure you can identify any potential problems.

    There's nothing better than a good developer who can design, code, document and communicate, and does not need constant supervision. On the other hand, there's nothing worse than one that pretends to do those things and turns out to be a disaster for the project.

    --
    Web2.0: I love when people Flickr my cuil and digg my boingboing until my google is reddit and I start to yahoo
  6. As a seasoned programmer I can easily answer this by thewils · · Score: 5, Insightful

    You don't have to. You are redundant.

    --
    Once I was a four stone apology. Now I am two separate gorillas.
  7. Oh for crying out loud by Weaselmancer · · Score: 5, Insightful

    Don't tell him that. He'll actually believe it.

    Here's what you should actually do: Manage.

    Be honest with your team. Tell them what you need and when you need it. Take advice from them on the best way to arrange that. If they're experienced (read that as set in their ways) forcing some oddball paradigm on them will send you permanently to PHB land. They'll never listen to you after that. You'll be regarded as an obstacle rather than a help.

    You're herding cats - never forget that. Let them do what they want in the way they want to do it and all should be well. Just make sure they know what your expectations are.

    And if you want something Lumbergh-like from them, say so. Then do the unusual thing and say why you want it. Don't just demand status reports from them. Ask for them, tell them you need these reports "because of pressure you're getting from your supervisor about this certain customer, and if we make schedule with this project they will potentially select us for the next project, and that means more revenue for the company."

    Talk to them as equals. Explain your concerns to them. NEVER talk down to them or enforce some odd idea that the manager caste is above the programmer caste. You are all equals on a team, sink or swim together.

    Do these things, ignore the buzzwords and manager-hype, be their fellow employee and the details will solve themselves. If these guys decide they like you your job will become a thousand times easier. You will always have loyal allies, rather than disgruntled drones.

    And best of luck. Don't just be a manager - be a good one.

    --
    Weaselmancer
    rediculous.
  8. Been there, done that by corporate+zombie · · Score: 5, Insightful

    Went back to the tech side.

    But the management stint wasn't wasted. It did make me realize there is a "bigger picture" that is always mentioned. I'd say the most important thing is to get this across. Tell them there will be decisions made by you, sometimes that you have control over and sometimes not, that won't make a lot of sense at your group's level. If they're your decisions you have some hope of explaining them. If they are decisions made up the chain then give as much information as you have and point out that it made sense to someone at some point and since y'all are all getting a paycheck from the same company then those are the marching orders.

    Other than that just work to get your team the things they need. It's their work that will make you look good (or bad) so your job is to make sure they have the tools and time they need to do their jobs. If you give them that then they need to actually do their jobs and you will want to keep them accountable for that. Nothing says bad manager more than someone who ignores the slacker while everyone else is pulling their weight.

        $0.02,
        -CZ

  9. Re:Seasoned programmers... by Rinisari · · Score: 4, Insightful

    Read Hackers and Painters and Mythical Man Month, especially the latter.

    Know this: checking in on your developers via a bug tracking system is probably advisable instead of constantly walking in and saying, "What's happening." Note period instead of a question mark.

  10. Engineer Management by E.+Edward+Grey · · Score: 4, Insightful

    My area of expertise is not in programming, but rather in engineering - similar, but different too - so take this with a grain of salt.

    As a manager of technically proficient people, you have only a few major tasks in front of you: first, be sure to marginalize or fire uncooperative or difficult people (the "no-assholes rule"). You can live with lower levels of expertise, but you cannot live with drama. To paraphrase Roger Zelazny, the graveyards are full of people who thought they couldn't be replaced.

    Second, it's important to know that, aside from keeping the team asshole-free, you are not "in charge" here. They know what they are doing and they can track it better than you can. Employees of technical expertise actually need facilitators to assist them more than they need managers to direct their efforts. So be available to your team to take up the things they cannot afford to spend time doing - communicate with other departments, run interference with project managers, make sure that they get the help they need.

    In my particular field, a manager should be prepared to provide more assistance than control. I don't think programming would be that different.

    --

    ---don't make me break out my red pen.

  11. Re:Don't be a douche by sheph · · Score: 5, Insightful

    No that's not flamebait, in fact, it's excellent advice. You can't run a department of advanced programmers the same way that you run a Burger King. Well, you can but you won't have any advanced programmers left if you do. Professionals typically don't enjoy working for someone that doesn't give them the respect that they've earned. Unreasonable timelines designed to drive results for the company will cause your employees to cut corners and deliver an inferior product. When this happens your good employees will no longer feel good about the job they are doing and go find a new one. Good products take time and money. If you want it fast, and cheap it ain't gonna be worth $h!t. Good employees want to work for good companies. It's a simple equation really.

    Status reports are a bunch of non-sense. Requiring your employees to file status reports tells me three things. 1) You don't know enough about what they are doing to manage them, 2) how long it should take, and 3) you don't trust them to work as professionals to deliver a quality product. That last part causes resentment, and if you really want good people to work for you then you treat them like good people until they give you a reason to treat them differently. If you don't care about the people that are working for you then just skip the preliminaries and go straight to managing a project full of Indian developers.

    --
    I don't believe in karma, I just call it like I see it.
  12. Be a shit-umbrella by thockin · · Score: 4, Insightful

    The most inspiring thing a manager ever said to me, and a line which I always try to use when appropriate: That's my problem, let me handle that. Clear the landmines for them and let them run.

  13. Unless your project is 100% exciting to everyone by melted · · Score: 4, Insightful

    Unless your project is 100% exciting to everyone on the team, the answer is, you won't be able to manage it without adding some junior programmers. A dude with 10 years of experience and multiple death marches under his belt will simply find hard to get excited about the mundane. That's not what he's there for. He's there to take on the big challenges, design stuff that works and implement it in a way that he's not embarrased by it five years from now.

    The corollary is either/or:
    1. Most of your project must be "exciting" to developers on the team. Very few projects qualify. In this case you can spread the shitty bits around so that people are less annoyed by them.
    2. You have to have a significant contingent of junior employees who will do the shitty bits that don't matter (but don't forget to throw them a bone and let them do something interesting as well).

    Most importantly, show appreciation for the work people do, whether they're senior or junior. I've been in the industry for well over a decade, and you won't believe how much easier it is to motivate people if you just say thanks to each of them personally every now and then, and maybe slip in a perk here and there. For reasons I don't understand, a lot of managers focus a lot more on cracking the whip. Big mistake, if you want people to stick around and actually produce something decent.

  14. Re:Key Point # 1 by BLQWME · · Score: 5, Insightful

    The key to managing people is the same as anything else in life. Treat them with respect and dignity. Remember, "do unto others".

    --
    "Nobody shoots anybody in the face unless you're a hit man or a video gamer"- Jack Thompson
  15. Re:Key Point # 1 by naoursla · · Score: 5, Insightful

    I think you just described Micheal from "The Office."

  16. Re:Don't be a douche by gerrytucker · · Score: 5, Insightful

    As someone who has been a development team lead (responsible for schedules, explaining budget variances, providing cost estimates etc. to upper management) and a strong developer I would agree with some of what you are saying. However, the one item that I do have a problem with is the written status reports. I know it seems lame to the folks that really are great developers but you also have to contend with people who "think" they are really good developers. If you are having problems with individuals like that, HR and upper management cannot act on just a leads observations. They need documented evidence that either the person is or is not doing their job. Chances are, if the person really is not as good as they think and you need to get them off your team, their status reports will reflect how simple tasks are taking them extremely too long. And the best thing is, it's in their own words! The other benefit is that with the really great developers turning in status reports you have good objective evidence to show to HR types to say, "Look everyone else on the team performs exceptionally well. How can you not agree that this individual is an issue?" Just my 2 cents. Luckily I'm out of the team lead business for now and am having fun just being a dev and designer again :)

  17. programming != managing by James+McP · · Score: 4, Insightful

    Your first post was possibly funny. Now you've proven you're either a troll or a bitter, jaded individual who was probably passed over for good reason.

    It was actually a *mistake* that the only advancement path for most exceptional skilled workers was to become a manager that didn't use their exceptional skills. Project management has always been a specialized skillset. For some unknown reason, it was assumed that people who learned how to build things could also supervise other builders. I call shenanigans.

    The military figured this out years ago. Commissioned officers make plans, non-coms implement the plan, and specialists do the work. Each butterbar junior officer goes through a fairly rigorous training course to give them the concepts and then they get to actually learn the job once they get assigned to their unit where their captain and sargeant finish up the training.

    When the engineering company I used to work at introduced a "technical expert" path as well as a "project management" path I was overjoyed. Finally, the best do-ers could keep do-ing without being forced into managing. Plus, theoretically, the project managers would *finally* know how to manage.

    None of that happened, unfortunately, so I jumped ship. Last I heard they were closing offices. The place I work at now does have various technical grades that provide a pretty wide salary band and it's doing fine.

    --
    I've been on slashdot so long I'm starting to get out of touch with the cool stuff if it ain't on slashdot.
  18. Re:Don't be a douche by PitaBred · · Score: 5, Insightful

    I agree on most counts. When you're an ideal manager, your job is to shield your employees from the bullshit from above as much as possible, so they can get their work done as well as possible. That may sometimes require a status report or meeting or something so that you can report to the muckity mucks upstream on what's going on. But it shouldn't be a replacement for involvement with your employees. If you don't know what they're working on and roughly where they are in the task or what problems they're facing, you're doing it wrong.

  19. Re:Or you could make things easy on yourself... by shutdown+-p+now · · Score: 4, Insightful

    Or you could make things easy on yourself and use Agile.

    I'd be careful before giving such blanket advice. Agile is not a silver bullet, and its gurus never claimed it to be. There are many projects and environments in which it doesn't work at all, or doesn't work as well as other alternatives. It can also be pretty messy when not done correctly. Most of all, it cannot be pushed onto the unwilling team - it requires full cooperation to be successful; if programmers on the team don't "feel agile", adopting the outer layers won't help you at all, and is likely to hurt you.

    I've actually seen Agile pushed in a company by upper management with programmers and managers not properly familiar with it, not used to it, and not liking it. The results were pretty bad, in my estimation (that experiment is still ongoing, just without me).

  20. Re:Don't be a douche by mdvolm · · Score: 5, Insightful

    Of course your employees should do what is expected of them, they're being paid to do so. And you're right about the ego!

    The point, though, is that requiring silly things of your good people is a sure way to see them leave for something better.

    Do you think the quality of your company will not suffer if the highest quality employees leave?

    Then treat them with the respect they require, and they will return the favor.

    Formal status reports, by the way, definitely fall into the "silly" category, as do daily status meetings. If you want to know what someone is doing, then visit them and ask. You'll find that they're probably eager to tell you all about what they're doing.

    So while you had a nice rant there, I wouldn't want to work for you under those circumstances.

  21. Re:Don't be a douche by Gorobei · · Score: 4, Insightful

    Your point is cogent. I do not advocate the elimination of all management, just the elimination of inexpert management of professional projects.

    To take the lawyer example, the senior partner reviews the associate's draft. He's looking at the work, not a status report. For fighter pilots and traders, it just gets easier: the results are plain and status flows from them naturally.

    A good IT project runs the same way: the manager is a domain expert, and can evaluate the product as it is being created. If she can't do this, or relies on self-assessment of her reports, the product is going to suck.

  22. Re:Don't be a douche by Kent+Recal · · Score: 4, Insightful

    They aren't any different than any other employee, they can either function as a normal person or not, if not, you are probably better of firing the 'uber programmer' and hiring a half-assed programmer that will actually act like a normal human being. Its far more important for a company to have a reliable individual than it is to half a great programmer who doesn't listen or does whatever THEY want rather than what you need from them.

    There are so many wrongs in this paragraph, it hurts.
    First off, written status reports are not a part of "acting like a normal human being" or even of "being a normal employee". It's a sign of a dysfunct corporate culture where people don't talk to each other and where middle management is not even trusted with rating their own teams.

    The normal process for dealing with a problem-employee would be to talk about it. You know, stuff like: "Hey bob, what's up with your performance recently". And to closely monitor problem areas in order to find ways for improvment. Know what, it seems like that would be your actual job if you weren't all busy passing written self-assessments back and forth.

    Secondly, working with half-assed programmers is always more expensive than working with uber-programmers (aka "rockstars"). But by the way you describe your environment I strongly doubt that you'd be able to convince a rockstar to work for you anyways. I even doubt that you have ever only interviewed a rockstar that deserves this label.

    A strong indicator for a great programmer is that he indeed doesn't need to listen to you much. Not because he doesn't want to, but rather because he already understands your pesky little business problems and requirements better than you do. A great programmers explains your problems to you, not the other way round. In an environment where rockstars are involved you merely exist to serve the programmers needs, you are effectively their secretary. You schedule meetings, acquire resources for them, interface with other parts of the company and generally make sure that nothing gets in their way of getting the job done. "Written reports" are an anachronism in such a setting. Hence my conclusion that you have never worked with a rockstar and not the slightest idea how they tick.

  23. Re:Seasoned Programmers? by tomhudson · · Score: 5, Insightful

    Whatever the case, just remember that you're there to serve programmers...

    Actually, this is closer to the truth for MANY jobs than most managers would want to admit.

    In many jobs, the line employee has a better idea of what's going on, and the low-level nitty-gritty details of how to best achieve what has to be done, than the manager. Management of programmers should be about saying "these are the requirements', and NOT adding "and this is how you're going to achieve them". Rather, "These are the requirements; what do you need to make it happen, and how do you propose attacking it?"

    After all, as the article says

    Perhaps I should mention I am in my early 30s while the majority of the team constitute an older, wiser generation.

    ... also ... if you find resistance to the stated goal, maybe it's because they've "been there, done that" and your great idea isn't so hot after all.

    Too many people think "management" meand "dictate" instead of "collaborate".