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?"

112 of 551 comments (clear)

  1. Don't be a douche by Gothmolly · · Score: 5, Informative

    These are creative people, and will resist things like status reports and hard work schedules.

    --
    I want to delete my account but Slashdot doesn't allow it.
    1. 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.
    2. 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 :)

    3. 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.

    4. Re:Don't be a douche by Alpha830RulZ · · Score: 2, Interesting

      will resist things like status reports and hard work schedules.

      I disagree. I don't mind status reports and hard work. In fact, I immensely prefer a rational status reporting approach to an hour(s) long meeting of listening to everyone recite where -they- are with the project. JoelOnSoftware has some good thoughts on how to do this crisply. I would much rather take 10 minutes to summarize my status in a weekly email, and in fact have tried to force this discipline into my current team, against the resistance of my boss.

      I think what experienced folks resent is stupidity and make-work. Working hard because you've got a challenging project is one thing. Being asked to work over the weekend because someone promised a demo on monday without checking with the team whether this was feasible is another.

      To take care of experienced folks:

      1) treat them as equals with different roles than yours. This means asking their opinion on approaches to be taken, acting on those opinions when they make sense, and offering rational responses when you disagree.

      2) work with to communicate objectives in terms of -what- needs to be done, rather than telling them -how- to do it. The odds are good that they know how to do it.

      3) shield them from the company bureaucracy as much as you can, while making sure you don't patronize them.

      4) as much as you can, let them participate in the determination of the objectives and approaches for what your team is doing.

      5) manage the meeting load, and run efficient meetings.

      I don't think I'm any different as an employee at 50 than I was at 25, except I recognize idiocy and incompetence more quickly now. Your team will be the same. Geezer coders are still coders. We're just likely better at it.

      --
      I was taught to respect my elders. The trouble is, it's getting harder and harder to find some.
    5. Re:Don't be a douche by Alpha830RulZ · · Score: 2, Insightful

      Status reports are a bunch of non-sense.

      An efficient statusing process is necessary. You can do it with meetings, you can do it by talking to people, or you can do it with email/spreadsheets. If you have people write a concise summary of where they are on a weekly basis, they can do it when it's convenient for them. The alternative is the manager interrupting them and taking more of their developer's time than it would to update the current task list with .

      If you have a team of three, yeah, this may be overkill. If you have a dev team of 8 or more developers, walking around to figure out where everyone is at is tedious and inefficient for all concerned.

      That said, if the status report takes more than 10 minutes a week to prepare, something is probably broken.

      --
      I was taught to respect my elders. The trouble is, it's getting harder and harder to find some.
    6. Re:Don't be a douche by LaskoVortex · · Score: 2, Insightful

      However, the one item that I do have a problem with is the written status reports.

      Shit tasks like this should be the responsibility of the manager, so she can earn her advanced salary. Passing a status report onto an employee is lazy, shirks responsibility, and takes them away from work that will deliver that product on time. Don't pass off your responsibilities onto your employees.

      --
      Just callin' it like I see it.
    7. Re:Don't be a douche by Missing_dc · · Score: 2, Funny

      How Do I Manage Seasoned Programmers?

      My favorite solution is to set them on fire and launch them out a window.

      the trebuchet (http://www.trebuchet.com/)on the roof gains you extra points.

      Launch the most vocal two and the rest fall in line quite quickly.
      (funny how that works)

      --
      How amazed would you be to suddenly find that you just forgot what I wrote and you needed to reread my post.... again.
    8. Re:Don't be a douche by BitZtream · · Score: 3, Insightful

      If they can't be bothered to fill in a basic status report, you really don't want them anyway. I don't give a damn HOW good they think they are, if they can't do what they are told to do, they're next to worthless.

      This bullshit about how you let good/great programmers get by with whatever they want is just that, bullshit. 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 is a LOT more to being a 'great programmer' than the code you write, and all those people who think they are so great they don't have to do any of the management related portions of the job really aren't that great. ESPECIALLY the ego.

      Remember, big ego != (actually good || worth keeping around || worth paying || worth having to deal with)

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    9. 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.

    10. Re:Don't be a douche by Gorobei · · Score: 2, Insightful

      Periodic status reports are a tool to manage low-level white-collar workers, not skilled professionals.

      Do you really think lawyers, doctors, talent agents, sitcom writers, fighter pilots, traders, salespeople etc, fill out status reports?

      We don't, and we just say "fuck you, I'm doing my job, fire me if you're not happy with the way I'm doing it. Oh, if you have anything constructive to offer, please say it, otherwise, go away. Company policy? Great, have an admin write the status report or enter the hours worked or whatever - that's what we pay them for. Actually, what the fuck is your value-add in this deal? You explain what management want to us, and then explain what we did to management? You are a cost-center, do you earn enough a year to make it worthwhile for me to get you fired? Get the fuck out of my desk space and don't come back until you have something useful to contribute."

      It's quite simple really. In other news, Bank of America to lay off 30K "workers." Fuck em, maybe they can use their mad management skillz at Burger King.

    11. Re:Don't be a douche by MindStalker · · Score: 3, Interesting

      Anonymous status reports.. WTF.
      Was reading the other day about a development house that has the programmers fill out time sheets and status reports but that these reports are specifically not used by managers and can not be used for punishment. They are used to generate cost and time estimates, what works, what doesn't etc etc. The group that handles these reports are independent and not the managers. They know that the second reports can be used for punishment or rewards most of the data will become fake and totally usable for statistical purposes.

    12. Re:Don't be a douche by shaitand · · Score: 2, Insightful

      'In addition, my experience is that is many cases people who think they can bullshit their way through a report and look good are often detected doing that'

      Then again, nobody would know if you're wrong eh?

      Sort of like the police always catching the bad guys in crime when they are lucky to catch one in a thousand.

    13. 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.

    14. 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.

  2. Um, duh by IceCreamGuy · · Score: 4, Funny

    Microsoft Project!

    1. Re:Um, duh by Cow+Jones · · Score: 2, Funny

      Two words: business hammocks.

      There's four places:
      There's the Hammock Hut, that's on third.
      There's Hammocks-R-Us, that's on third too.
      You got Put-Your-Butt-There - that's on third.
      Swing Low, Sweet Chariot...
      Matter of fact, they're all in the same complex; it's the hammock complex on third.

      Oh, the hammock district.

      That's right.

      --

      Ah, arrogance and stupidity, all in the same package. How efficient of you. -- Londo Mollari
  3. Seasoned Programmers? by ColdWetDog · · Score: 5, Funny

    11 herbs and spices?

    Salt / Pepper / Oregeno?

    TFA doesn't really help.

    --
    Faster! Faster! Faster would be better!
    1. Re:Seasoned Programmers? by Anonymous Coward · · Score: 5, Funny

      The question was "How do I manage seasoned programmers", not "How do I season managed programmers"!

    2. Re:Seasoned Programmers? by Anonymous Coward · · Score: 5, Informative

      http://www.hp.com/retiree/history/founders/packard/11rules.html

    3. Re:Seasoned Programmers? by dubbreak · · Score: 2

      q: What's the difference between a group seasoned programmers and a bunch of salted cod?

      --
      "If you are going through hell, keep going." - Winston Churchill
    4. Re:Seasoned Programmers? by geniusj · · Score: 5, Funny

      lipstick!

    5. Re:Seasoned Programmers? by Anonymous Coward · · Score: 2, Funny

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

    6. Re:Seasoned Programmers? by Tuna_Shooter · · Score: 4, Funny

      Actually this is a Mel Gibson Joke...... when asked while filming the movie "Braveheart" what he was wearing under his kilt.... he replied nothing other than your mothers lipstick.

      --
      *--- Sometimes a majority only means that all the fools are on the same side. ---*
    7. 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".

  4. Key Point # 1 by Anonymous Coward · · Score: 2, Funny

    They must understand that you are the boss. They must answer to you, irregardless of what fancy degrees and experience they have. Without order, only chaotic code will result.

    1. Re:Key Point # 1 by Hal_Porter · · Score: 5, Funny

      Yeah, watch some documentaries about pack animals or life in prison. That should give you some ideas for ways to communicate that you are the Alpha Male.

      --
      echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
    2. Re:Key Point # 1 by Ethanol-fueled · · Score: 5, Funny

      No, just the opposite.

      The manager should come off as being "cool" and sympathetic to the programmers. The managers should let the programmers know that, since he is familiar with programming, he has a genuine interest(and is also paying attention to ensure that the programmers are doing their job right) into what exactly is going on as opposed to just walking around with a clipboard pretending to do work and pontificating about deadlines.

      Interact with the programmers and ask them questions so that you appear to care and humor them by letting them be the master, you the learner, and that will quickly dispel any "We're seasoned pros, why should we listen to that pipsqueak?"-type attitudes. Stress that you are "one of the boys" and poke fun at yourself with PHB jokes while demonstrating that you're obviously not a PHB.

    3. Re:Key Point # 1 by Anonymous Coward · · Score: 5, Funny

      You have a good point. However, you still should get modded +1 douche for using the word "irregardless".

    4. Re:Key Point # 1 by gEvil+(beta) · · Score: 5, Funny

      Yeah, watch some documentaries about pack animals or life in prison. That should give you some ideas for ways to communicate that you are the Alpha Male.

      Absolutely! Piss in the corner of their cubicles or offices. Hit on their wives/girlfriends when they come around. Make their property yours. Let those guys know who's boss!

      --
      This guy's the limit!
    5. Re:Key Point # 1 by Xoltri · · Score: 5, Funny

      Also, dry humping them is a sure fire way to express your dominance over them.

      --
      -Xoltri
    6. Re:Key Point # 1 by Bobby+Mahoney · · Score: 5, Funny

      [mutates and goes into chaotic rage upon reading the word "irregardless"]

      --
      !#&*
    7. Re:Key Point # 1 by mevets · · Score: 2, Insightful

      Shouldn't that be modded funny?

    8. 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
    9. Re:Key Point # 1 by naoursla · · Score: 5, Insightful

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

    10. Re:Key Point # 1 by __aasqbs9791 · · Score: 2, Informative

      I don't think dry humping would get you too far in prison.

    11. Re:Key Point # 1 by Microsift · · Score: 4, Interesting

      Like anyone's going to listen to someone who thinks irregardless is a word, regardless of the merit of what they said

      --
      My other sig is extremely clever...
    12. Re:Key Point # 1 by multimediavt · · Score: 4, Informative

      I will add to this as I have "been there, done that." As a manager of a group of programmers it's your job to be the bridge between them and their ideas, thoughts, feelings about the project they are working on and the company they work for, and the management that you report to, get budget from, sets goals and, ultimately, pays your paycheck. As the middle man in this scenario you have to take the arrows from both sides and figure out how to keep the team together and motivated, as well as meet you budget and deliver a product on time. These are not easy things to do with youngsters that don't know any better, but even harder to do with more mature, "seasoned" programmers.

      What you need to understand is that as a new manager your role is to learn. The company hopes you learn from the mature programmers how best to get a project out the door. The programmers hope you learn how to balance your humanity with the needs of the company so their world doesn't get turned upside-down. My suggestion: Be as hands-on as possible with the project. This means that the unit you are in charge of becomes flat from an organizational perspective; only communication in and out of the group to and from upper management is filtered through you, and being the team leader when key decisions need to be made, differentiate you from the rest of the team. I have found that my teams respect me and my skills (both inside and outside the team's competency) better and I get to build a more human rapport with those on the team. You'll be surprised at how the mocking behavior will turn into good natured ribbing that you would expect in a tightly knit team. It won't completely eliminate malicious behavior because there's always someone in every group that will disagree with something you do, but it sure does let folks know you're not an armchair quarterback blindly following directives from upstairs. You will probably hone your programming chops in the process.

      Bottom line, create an environment of mutual respect and allow the social interactions to progress at their own rate. Keep the team focused and motivated by being in the thick of things with them. Remember, it's your team and if you don't take ownership/stewardship/responsibility for them then why should they or management care what happens? They won't, because you won't be a manager for long.

    13. Re:Key Point # 1 by Jimmy+King · · Score: 4, Funny

      I'm pretty sure they throw you in jail for doing unto others what I would have them do unto me without their permission.

    14. Re:Key Point # 1 by abinkow · · Score: 3, Interesting

      This was a great comment. I would also add a couple of other things: 1) Unfortunately, as a manager you are also responsible to those outside the team as the representative of the team. This means that you really DO need the status reports, so you can honestly tell those outside the team what is going on. This is as important for the team members as for those outside; the team members WANT and NEED you to be that representative, so they can be creative, constructive, and complete their work without interference. One of my old bosses (the CIO of the company, at that time), had a great slogan: "Perception is reality". If those outside the team perceive that you have a handle on things (even if you don't), they will leave the team alone to get things done. Similarly, if the team perceives that you are shielding them from the outside pressure (even if you aren't succeeding), they will be willing to put up with a little "management intrusion" into their creative processes. 2) Sometimes, it's good to disguise things. For example, several years ago I took over a team from another project manager. This project manager had a half-hour meeting every morning, where each member of the team (15-25 people) stated what they had done yesterday, the hours spent on each task, what they planned to do today, and how many hours they had available. My upper management insisted that these meetings continue. Needless to say, they did not go over big with the team. So, I changed the meeting to a problem-solving session; someone would throw a problem on the table, and the whole team would present solutions. I facilitated, using my technical knowledge to bring the right skillsets to bear, come up with a potential solution, and assign the details of testing that solution to team members (even if they weren't the original programmer). As this problem solving went on, I gathered enough information to determine who was on and off schedule, which allowed me to manage the schedule and the budget. Quality went WAY up.

    15. Re:Key Point # 1 by nateb · · Score: 2, Insightful
      You may think it a joke, but I find that this works well in real life... Many a time I've been able to scare other males away just by my posture, distance to my most familiar mate, or simply by out maneuvering them around other people. As a strong, big, tall, $RACE male, it's been extremely nice. You cannot discount the thoughts of others in your plans.

      Ah, were I only 10 years younger with this strong mentality now! Had I known these things then I would be in a much better place. Alas, I have no son to pass this knowledge to, so I post it to Slashdot. You guys are so lucky. 8-)

      --
      -- Nate
    16. Re:Key Point # 1 by try_anything · · Score: 3, Insightful

      There's an alternative theory of human social structure, in which men naturally organize themselves into a hunting band with one leader over a group of more-or-less-equals. The leader maintains his position because the other guys like him and trust that they will be successful under his leadership. The leader usually isn't even be the roughest, toughest guy. The biggest sin in this kind of group is overvaluing yourself relative to your contribution to the group: arrogance and selfishness are punished.

      That's quite different from wolf pack model where there's a heirarchy from the strongest at the top to the weakest at the bottom. The only sin in a wolf pack is weakness: weakness is punished ruthlessly.

      In a wolf pack model, the manager would have to be the best coder, the strongest personality, or the toughest hombre. But in real life the manager is usually a poor (or washed up) coder who is allowed to play a "superior" role because the people under him believe the group will be successful under his leadership. Managers who believe they are better than their underlings face constant undermining and insubordination.

  5. Specs by Coneasfast · · Score: 5, Informative

    As a programmer, the thing I hate the most is having to redo code over again due to poor specs or bad design docs. Make sure they are organized and have the correct specifications.

    --
    Marge, get me your address book, 4 beers, and my conversation hat.
    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. Re:Specs by Hognoxious · · Score: 5, Funny

      A proper functional spec does describe the problem.

      Or so I'm told, I've never actually seen one.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    4. Re:Specs by Hassman · · Score: 2, Informative

      Noooo... No specs means no one knows what is built or why. 6 months later when something changes, there is no baseline!

      That said specs != a detailed plan on what to build, how and with what technologies / architectures. Specs = exact requirements as to what the business wants. You as the engineer get to figure out the how part.

      --
      -Mark
      Dovie'andi se tovya sagain.
    5. Re:Specs by frosty_tsm · · Score: 2, Interesting

      Kind of related to this is decision making. Don't put a decision off to make sure we know 100% the best possible solution. Usually a good-enough solution will work until more is known about the problem (especially if it contributes to the later solutions).

      I've seen near a year lost on a project because management couldn't make the decision everyone knew they would.

  6. Really, there's only one thing... by girlintraining · · Score: 5, Informative

    The big problem I see in people who are tech managers is a lack of understanding of project management. They're fine with people, if not missing some subtlety here and there, and it sounds like you've got a team that has few personnel problems. So focus on building your project management talents, which is about deadlines, coming up with objective measurements for progress, and setting realistic goals. Your team should be able to tell you where the trouble spots will be in the development cycle, how fast they expect to overcome each obstacle, and help you plot a roadmap, but only if you ask the right questions.

    --
    #fuckbeta #iamslashdot #dicemustdie
  7. 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.

    1. Re:Beer by Weegee_101 · · Score: 2, Insightful

      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.

      Extremely true. Stop looking at them as subordinates and start looking at them as team mates on the same team and morale will improve. If someone slips though, make sure that they understand that you still are in charge, and you've got the last say in any business matter.

    2. Re:Beer by Dmala · · Score: 5, Funny

      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.

      You know actually, I'd love to know what the correct response is when a programmer does this. I generally just run away.

  8. Flip every 5 minutes by Anonymous Coward · · Score: 5, Funny

    You don't want to touch them too often or they get tough and dried out.

    Oh wait, that's hamburgers. Nevermind.

  9. 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.

    1. Re:Get out of their way! by Skyshadow · · Score: 3, Interesting
      That's a great model for delivering late and over-budget.

      Developers are like creative people the world over -- you've got to keep them on track, and that means managing them properly. Again, I recommend the Scrum model.

      --
      Every year during my review, I just pray the words "slashdot.org" aren't mentioned.
    2. Re:Get out of their way! by Chirs · · Score: 3, Interesting

      I disagree, to a certain extent.

      My job is to give estimates, draw up designs/estimates, handle bugs/features as requested, and ensure that my boss is up to date on how things are tracking to the plan.

      In return, he acts as an interface with upper management, runs interference to make sure I'm not bothered by less important issues, makes sure I get appropriate lab/tester resources, handles priority calls between competing issues, and all the other stuff that I'd rather not have to deal with.

      It's a symbiotic relationship.

  10. Everything you need to know is on the simpsons by genner · · Score: 4, Funny

    All you need to do is walk in and say:

    "Are you working?"
    "yes"
    "Can you work harder?"
    "good"

    If they get tired buy them hammocks.
    It helps if your wearing a Tom Landrey hat.

    1. Re:Everything you need to know is on the simpsons by genner · · Score: 2, Funny

      There's four places. There's the Hammock Hut, that's on third. There's Hammocks-R-Us, that's on third too. You got Put-Your-Butt-There that's on third. Swing Low, Sweet Chariot... Matter of fact, they're all in the same complex; it's the hammock complex on third.in the hammock district!

  11. Listen, listen, listen by greg_barton · · Score: 5, Interesting

    Listen.

    Be open to criticism and be willing to change course in response to it.

    Make sure when you do talk technical, you know what you're talking about. Feel free to ask questions if you don't know, and be able to absorb and express abck what you've learned.

    If you need to make a decision based on "fluffy business stuff" that goes against the right theing to do on a technical issue, explain it thouroughly and be able to back it up. Geeks thrive on more information, not less.

    Give the geeks freedom to graze.

  12. 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
    1. Re:Difficult by i.r.id10t · · Score: 2, Funny

      Remeber, coders are just tools that convert caffeine and alcohol into source code...

      --
      Don't blame me, I voted for Kodos
  13. 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.
  14. Cattle prods, Electroshock therapy, and drugs by mveloso · · Score: 2, Interesting

    What does responsibility mean? Can you fire them and increase their salaries? If so, then they should be relatively motivated to at least meet your expectations.

    What can you do to make it easier? Don't be a bozo. That means (1) take the political heat for your team, and (2) try and insulate them from changes in specs. Or, (3) make sure they know what they're building/supposed to do.

    Think of them as normal employees, not programmers. Sure they may be smart, but they're still people. Possibly weird, potentially infantile, probably high maintenance, and hopefully productive people, but they're still people. So treat them like everyone else.

    Oh, and be sure to treat them like experts. They like that.

  15. Ask for their input ... and actually listen to it. by Richard+Steiner · · Score: 3, Interesting

    Seriously. People will tend to respond a lot better to you if they feel that they have legitimate input into the process, and many of those folks might be able to provide ideas and experience that you can benefit directly from.

    Of course, I'm speaking as a 46-year-old programmer who's been doing software design/development for 20 years, so my bias is from the other side. Then again, most of the folks I tend to deal with are at my experience level or higher so in many cases *I* tend to be the youngster with the radical ideas. But I've learned to defer to my elders in many cases even tho I disagree. Sometimes they actually turn out to be right! ;-)

    --
    Mainframe/UNIX Bit Twiddler and long time Windows/Linux Hobbyist.
    The Theorem Theorem: If If, Then Then.
  16. Golden Rule of Management by rlp · · Score: 2, Insightful

    Be the type of manager that YOU would want to work for.

    --
    [Insert pithy quote here]
    1. Re:Golden Rule of Management by Skyshadow · · Score: 2, Insightful
      The type of manager I want to work for gives me ridiculous annual raises, lets me expense pretty much anything without a receipt and lets me take days off whenever the weather's nice.

      I'm not sure that's a prescription for on-time product delivery or a successful career, however.

      --
      Every year during my review, I just pray the words "slashdot.org" aren't mentioned.
    2. Re:Golden Rule of Management by localman · · Score: 2

      Really? So you want a manager who runs the company into the ground at your expense?

      I guess the golden rule only works if you're not a short-sighted fool.

      Cheers.

  17. show them the business case. by timmarhy · · Score: 2, Insightful

    99% of the comments you'll get will be technical. This shows /. er's lack of undrstanding about the business world, and your programmers are likely to suffer the same blindness. I would say in general let these guys work unhindered and give them all the support you can, but in the event there is something drastic you need to change about the product explain the business case to them. When you can show that X > Y means $$$ most people will understand right away. This works both ways, in the event you get given directives that won't work on a technical level.

    --
    If you mod me down, I will become more powerful than you can imagine....
  18. A few things by david_thornley · · Score: 3, Insightful

    First, remember that they know more about what they're doing than you do. Listen to them. If they say a schedule is unrealistic, it is almost certainly unrealistic, and you need to take whatever business action is appropriate. They know better than you how to do things. Tell them what to do, not how to do it. Tell them the business reasons for doing things. They might have better ideas than you.

    Second, be honest with them. Don't be afraid to tell them things they might not want to hear, but if they catch you in substantive lies your effectiveness will nose-dive. Explain yourself.

    Third, set them up to succeed. Try to figure out what obstacles they're likely to run into, and try to remove them.

    Fourth, keep up to date on their progress. Don't let them go dark on you. Don't make them afraid to admit failure or schedule overruns, or you'll be blindsided sometime.

    These won't necessarily help you with problem employees, but most of your employees are probably interested in doing a good job.

    --
    "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    1. Re:A few things by arthurpaliden · · Score: 3, Insightful

      Five: Be sure to keep your superiors away form them. All interaction must be through you.

    2. Re:A few things by cowscows · · Score: 2, Insightful

      There's two things that my boss does that really upsets me more than anything else. The first one is that he will often promise my time to other people,be it clients/coworkers/consultants/whoever, without first checking with me to see if that time is actually available. Not only does that saddle me with significantly more work than I want to deal with, but it creates a situation where this new task takes up time that I had personally committed to helping someone else, and so I get stuck having to apologize for not keeping up my end of the bargain with them. And even though everyone that works in the office understands how that sort of situation happens, in stressful times, it just serves to create animosity between the different project leaders when one of them "steals" my time from the other. It also makes it nearly impossible for people to create accurate schedules because they have no idea what else will suddenly fall on their desk, or when their help will get randomly pulled away.

      The second thing, which in a way causes a lot of the first, is that my boss has a lot of difficulty with setting priorities. As a big boss, he's got dozens of projects under his supervision to at least some degree, and so he tends to wander from crisis to crisis as they arise across all the work in the office. And so whatever the current crisis is, that's what his priority is for that day (or sometimes hour). It's a huge drag on office efficiency, and projects that should take three weeks to get out the door end up taking 6 weeks of work, stretched out over 8 months of on and off progress.

      Overall, I'd say one of the most important things is to help your workers stay focused. Lay out the priorities, give them a clear path. I don't mind so much if the endzone is far away and there's a bunch of obstacles in the path, as long as I can see the goalposts.

      --

      One time I threw a brick at a duck.

  19. Ask them by FortKnox · · Score: 3, Interesting

    Best manager I ever worked under asked me my pain points, and what I wanted to do in the job and how I wanted to grow. He then proceeded to help me in those three areas.

    That's it. Pretty simple, eh?

    If they are seasoned, keep out of their way, help them when they are frustrated, and make sure they are doing stuff they enjoy and keep them happy. They find a new technology they want to use? You make sure they get the opportunity to use it. They want a managerial job? You make sure they get the classes/seminars/education/opportunities they need. Your job is simply to remove obstacles that get in there way...

    --
    Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
  20. easy answer by gEvil+(beta) · · Score: 3, Funny

    The answer is simple--be their best friend. And let them know repeatedly that you want to be their best friend. There's no way they won't accept you. Trust me on this one.

    --
    This guy's the limit!
  21. Simple really by Locke2005 · · Score: 2, Interesting

    How do you handle programmers? The same way you handle kindergarteners. Really, if you've ever had kids, you already have all the skills you need to manage engineers. Set clear expectations and priorities. Make sure they play nice with each other. Give them a shiny new toy when they've been good. As a manager, you filter all the information coming from above. Good managers filter out the pressure and bullshit and only on passes on information that gives the programmers a good idea of what their goals and priorities should be. Bad managers just pass on the shitting on they get from their managers along to their underlings, sometimes even amplifying it.

    --
    I've abandoned my search for truth; now I'm just looking for some useful delusions.
    1. Re:Simple really by homesnatch · · Score: 2, Funny
      >The same way you handle kindergarteners.

      Oh this should be good... I like comparison posts...

      > Really, if you've ever had kids, you already have all the skills you need to manage engineers. Set clear expectations and priorities. Make sure they play nice with each other.

      Good point... Yes programmers and kids both need to play nice together.

      > Give them a shiny new toy when they've been good.

      Yes! Kids like toys and programmers like toys/electronics.

      >Good managers filter out the pressure and bullshit and only on passes on information that gives the programmers a good idea of what their goals and priorities should be. Bad managers just pass on the shitting on they get from their managers along to their underlings, sometimes even amplifying it.

      Wait.. what Kindergarten is this? I thought the managers were teachers and there were kindergarten students... and who is shitting on them?

      Please everyone, do not shit on kindergarten teachers or students!

  22. Hmmm ... by Chyeld · · Score: 3, Funny

    First thing you need to do is establish yourself as the alpha geek. Walk into the room and fire the first one to make eye contact. Then expound for two hours on how crappy Java is and how all you really need is a copy of Ruby on Rails and a Red Bull to be able to cover everything they do.

    The next day, show up with a box of Dilbert comics and pass them out, demand each team member identify five 'wrong thoughts' express by Dilbert and his coworkers and indicate how they actually should have acted in regards to their PHB. Emphasize that the PHB a highly paid executive and deserves their attention and respect. Dilbert's job is to make his bosses' ideas successful, not to mock him.

    The next day, first the second person who makes eye contact with you. Encourage your team to ridicule them as they make the walk of shame from your office to the exit.

    The day after that, ask them to participate in a team building session where everyone is armed with a nerf weapon and is allowed to act out their aggression. Bring your own baseball bat.

    The day after that mention that you expect the team to put in manditory overtime. You forgot to mention to them that they have a milestone deadline coming up tomorrow and you are still working with marketing to finialize the specs.

    On the day after that, enjoy the peace and quiet you've earned yourself. You'll need it as you now no longer have a team to worry about.

  23. It's good for the programmers, too. by khasim · · Score: 2, Insightful

    Project management is not only for the managers. Grab some basic books on the subject (hopefully based around software development) and have the coders read them.

    If nothing else, it gives everyone a shared vocabulary for the situations and approaches that they'll face.

    If nothing else, read a website on it.
    http://www.stevemcconnell.com/rdenum.htm
    or
    http://www.stevemcconnell.com/rdmistak.htm

  24. 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.
    1. Re:Oh for crying out loud by Hognoxious · · Score: 4, Funny

      You're herding cats

      Up a waterfall, with a rolled up tissue.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    2. Re:Oh for crying out loud by Weaselmancer · · Score: 2, Insightful

      Thanks. =)

      It's my opinion that a good manager understands their actual job function. Which can be summed up in one word - HELP.

      It is their job to help. Two parts to that.

      First part: Help the company get what it needs out of engineering. If sales promises a customer something, it is the managers job to help the sales staff get what it needs out of engineering. If manufacturing needs that new rom by Friday, it is the manager's job to help them get it from engineering.

      Second part: Help engineering meet those requirements. Do they want to be an Agile shop? Set it up. Do they not want it? Don't force it on them. Do they need new equipment? Move heaven and earth to try to get it.

      Sometimes these will conflict. Engineering might want a 4000 dollar logic analyzer. Accounting will say it's not in the budget. The solution? Tell engineering what the budget is, and let them choose. "We are allocated 1500 a quarter for engineering supplies. If we skip the planned PC upgrades you can have that probe in the third quarter of next year. I'll leave it up to you guys to decide which is more important."

      If you can phrase the problems the company has in such a way as to make them personal, engineers will see them as their problems and not the company's problems. They'll become personal problems and they'll begin to solve them.

      Really, it all just boils down to being honest, open, communicative and not elitist. The best managers have these traits, and the worst ones lack them entirely.

      --
      Weaselmancer
      rediculous.
  25. 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

  26. 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.

  27. confidence by br00tus · · Score: 2, Insightful

    There's only one quality I generally rate managers by, and you could call it confidence, ability, cool-headedness or whatever. It all tends to boil down to the same thing. A manager who is incompetent, an example of the Peter Principle, afraid he is going to lose his job if it's discovered he is unqualified is someone who says yes to his boss and other business units all of the time, and makes ridiculous demands on those under him. If things go wrong he panics and flips out. A confident, able boss knows his stuff, can deal firmly with his manager or other business units when need be, doesn't flip out when something goes wrong and so on.

  28. Very Simple by LibertineR · · Score: 5, Interesting
    As their manager, they will expect and respect ONE thing above all else.

    Bullshit stops at YOUR door. Whether coming down from your management, or headed up from one of your primadonna coders.

    Your job is to provide the environment that best lets your people do what they do best. You are insulation, you are the sponge, you are the glue. All superfluous shit must be sandwiched and eaten by you.

    Don't try to be technical, admit what you don't know and ask for explanations. Realize that coders consider their code as a mother does her children. If you criticize, you better be right, or you will be hated forever. If the baby is truly ugly, KNIFE it, don't adapt to crap.

    NEVER turn down a legitimate request for tools considered necessary for their jobs. NEVER. Find the money, find the stomach to fight your management for the funds, and YOU make the arguments on your people's behalf.

    This is how you get coders on your side. (that and free food and drink.)

    You have to be the cog in the wheel.

    1. Re:Very Simple by tsstahl · · Score: 2, Interesting

      I've mod points, but parent is already at 5.

      Most advice so far concentrates on the obvious.

      I will stay with the darker side that nobody likes to talk about.

      Do not subordinate your will. You may be younger, but you have the authority. They owe you their duty, it us up to you to earn their loyalty. Let's say that again: it is up to you to earn their loyalty. Seasoned professionals respect strength and competence. We can smell incompetence and fear like a jackal. If you show strength, your team will actually help you achieve competence.

      You are overtly asking for tactical advice, I believe you are actually seeking insight into the world and culture of your team. Don't just observe, become part of it and mold it as is your duty as manager.

      Finally, avoid the mistake I have seen way too many young managers make: do not put them in your shoes. They have life experience you can only read about; you need to live in their shoes. Eventually you will find that we all wear the same shoes. Hmm, ok, that took the metaphor too far, but hey, I can't stay all dark and gloomy in this post.

  29. Re:As a seasoned programmer I can easily answer th by frank_adrian314159 · · Score: 2, Insightful

    You don't have to. You are redundant.

    There is a lot of truth in this.

    Assuming that you have a good team (not one where they trapped all of the old malcontents together so they'd be easy to herd), they'll know what to do. In general, your job is going to be making sure that the goals for your project are clear, that you have enough resources to do the job that is scoped, negotiating about limiting the scope when you don't have the resources, making sure that you have a detailed enough plan for the short term so you can see if people are achieving short term goals, re-assigning resources in case issues come up, renegotiating with superiors about more resources and scope reduction when you fall behind, etc. Very little of your time should be spent telling them what to do. You should tell them the goals and then let them decide how they're going to get meet them. Of course, if they tell you that they need hookers and blow first, you might ask them how that's going to help their productivity (for the hookers, at least).

    --
    That is all.
  30. glower at them in the hallway by circletimessquare · · Score: 3, Funny

    focus on a pointless statement in an offhand conversation, and keep repeating it over and over, getting louder all the time, the whole week, with a huge grin on your face, like its a hilarious joke

    ask them to come in your office and sit down, ask them to close the door in a very soft whisper, and then stand up, displaying an obvious erection in your pants

    in the company restroom, stand next to them while they are urinating, even if there are ten open urinals, and make sure to pee a little on their shoes, making emotionless blank eye contact while doing so

    sit silently in a meeting for the longest time, with a slightly pained expression, then excuse yourself, and, outside of the room but within earshot/ plain view, starting crying loudly and hysterically like a wounded child

    in no time you will be deriving the respect and affection you deserve

    --
    intellectual property law is philosophically incoherent. it is your moral duty to ignore it or sabotage it
  31. Re:It's a lot like herding cats by vil3nr0b · · Score: 2, Interesting

    HSPLTA - Hire Smart People Leave Them Alone...simple yet never achieved by anyone I've ever worked for.

  32. don't let the inmates run the asylum... by Foolicious · · Score: 3, Insightful

    You need to let the programmers do what they do best...while remembering programmers' tendencies to do things like pick resume-padding technologies instead of the right technologies and freaking out over small changes instead of rolling with the punches. Easier said than done, but it's the truth.

    Also, whatever you do, do NOT, as some people have erroneously suggested, "be the manager that you would want to work for" because there's a good chance you don't share the same values as some of your programmers. The best rule for managers is to treat others like they want you to treat them.

    For example, I'm not particularly driven by money. Don't get me wrong, I wouldn't work for free and I like financial security, but when I line up priorities, thingslike freedom of time and thought are a lot more important to me than if a bonus is paid at 150% or something like that. My favorite managers have understood this, even if they don't understand how I'm wired, and they tend to leave me alone and not over-manage, unless absolutely necessary. And I've worked quite hard for them.

    So as much as you can (while maintaining consistency and keeping expectations well-known), adapt to each individual instead of implementing some across-the-board strategy. One guy may be driven by money. Another may be going through a divorce and always one the edge.

    Programmers are people and there's plenty of good and bad that comes with that. Some of them are just going to be jerks. And some aren't. Some will even be tremendous people. There's nothing you can do about this, but don't let yourself get pushed around or too worked up about it.

    Finally, always set clear expectations and never ever raise your voice or roll your eyes (neither of those work...).

    --
    Please don't use "umm" or "err" or "erm".
  33. Lead by Example, amongst others... by sco_robinso · · Score: 3, Insightful

    These I learned in the military... Probably one of, if not the biggest things to do - Lead by Example. There's no better way to shred your credibility and reputation for barking at someone for coming in a bit late, if you come in late all the time.

    Secondly, always check up on your people. It's amazingly simple to do, but it's almost a bygone in the modern corporate world. No matter how busy your month, take a good 5 or 10 minutes with each member of your team as ask them how everything's going, what some of there frustrations are, what are some things they may need. It's amazing how good a roadmap you get when you just sit an listen.

    Communicate - both ways. Encourge input from your team, but dont be afraid to send some the other way. If someone's doing something you like, or not doing something, say so. Probably my biggest personal pet peeve is non-confrontational managers who basically shotgun-blast you with their little annoyances once a year at your performance review. Your team doesn't necessarily have to know where your at every second of every day, but it's always good to provide some high-level status updates. Take a few minutes out of your schedule to update the team.

    Recognize good performance, but don't be overly cheesy about it. Taking a minute to walk into an office and say 'I really appreciate the effort you put in last week to meet the deadline, Jim' will often mean a lot. It means even more in person, rather than email.

    I could go on, but really a lot of it is pretty straight forward. You people should want to work hard for you and want to impress you, and good leadership shows when they do. Treat you team members as professionals with respect and how you would like to be treated.

  34. 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.

  35. Help them be productive by Tomster · · Score: 2, Informative

    What you're responsible for is what they produce, not the people. If your team is composed of professionals, they will be self-motivated already. So focus on helping them produce. This means looking for what's hampering them and working to minimize/eliminate it, and looking for what could make them more productive and working to provide that. If you don't know -- ask. Talk to them, as a group or one-on-one, and find out what their "pain points" are or what they want to see done.

    Never forget they are people, not "human resources", and treating them with respect and consideration will earn you major props.

    Thomas

  36. Or you could make things easy on yourself... by Brain-Fu · · Score: 4, Interesting

    ...and use Agile. Here is the best book in the world: Agile estimation and planning

    To micro-manage them is to underutilize them (and to frustrate them). Your job is to understand the business problems and communicate them as business problems, and let the team figure out the technical solutions...they should give you some alternatives, and let you pick the right ones. After that, your job is to ensure that nothing obstructs their development, and to take action whenever they tell you that they are blocked.

    If you must be hard on deadlines, then you must be soft on requirements. Or vice versa. Being hard on both will always guarantee failure to deliver, and talent walking out the door. Usually being hard on deadlines is the choice of the day.....so being soft on requirements must be done, but *intelligently.* Some requirements are core to the usefulness of the app. Some are gold-plating. Move the gold-plating to the bottom of the priority heap. Each iteration will then represent the maximum possible business value that can be developed within the allotted time.

    You also spend a lot less time trying to stick stuff end-to-end in making a project plan and having to spend more time changing it all around after things don't go as planned halfway through the project. Micro-managers tend to hate agile, despite the fact that it is a much more realistic addressing of the realities of software development than traditional, waterfall, winds up being.

    1. 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).

    2. Re:Or you could make things easy on yourself... by ClosedSource · · Score: 4, Funny

      "Agile is not a silver bullet, and its gurus never claimed it to be"

      Gurus never claim that their way is a silver bullet, they just claim it will bring down a werewolf or vampire with a single shot.

  37. 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.

  38. Re:Seasoned programmers... by Gothmolly · · Score: 2, Insightful

    But did you actually produce anything?

    --
    I want to delete my account but Slashdot doesn't allow it.
  39. Give them space to do their jobs by nut · · Score: 2, Informative

    I've just spent 2 years managing programmers who although not older, were generally much smarter than me, so I speak from relevant experience.

    First of all you have one huge advantage; Software developers want to do great work. Coders are generally passionate and proud about what they do.

    Your job is to make sure they have the environment they need to do that.

    Programmers tend to be task-focussed people. Their faults are typically that they don't communicate unless asked, and they forget deadlines unless they are constantly made aware of them. Obviously I'm generalising here, but the balance of your team will probably tend this way.

    So what you need to give them is clearly defined tasks, regular meetings where they talk to you and each other, and no excuse for not being aware of their targets/deadlines.

    Most people, and geeks more than most, don't like to be ordered around and will be more invested in decisions they made themselves. Therefore when you make decisions about the development process, do it in a meeting. Say something like, "We need a more structured process for development." (Programmers will generally agree, they like order and structure, that's why they're programmers.) "We could use [insert favoured methodology here], what does the team think?"

    If they have no stronger opinions, people will generally choose the one choice given to them and consider it to be their own idea from then on. If they /have/ got stronger opinions, they might well be worth listening to.

    So in short;

    Define the team methodology in as democratic manner as you can.

    Get them to sign up to the methodology and make it theirs.

    From then on enforce discipline with reference to the methodology. Your authority then proceeds from the team itself, as well as your position.

    A couple of other piece of advice; be a hard-ass about defining requirements with your clients (internal or external) and even more so about changing them. Learn everything you can about software estimation. Most projects that fall over at the end make their mistakes at the beginning.

    --
    Never trust a man in a blue trench coat, Never drive a car when you're dead
  40. 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.

  41. Be a friend first. Informal meetings, free food. by Khopesh · · Score: 5, Informative

    Assuming you're all in the same office...

    One-on-one meetings in a comfortable and somewhat informal manner. Make it regular (twice a week or so?) and find some way to give them advanced notice indirectly, like doing it at the same time every week or passing by their office/cubes a few minutes before jumping in to ask for the informal report. If you startle them, leave and come back in a few minutes (really!). Their desks should be oriented in a manner that makes it hard to sneak up on them; if that's not the case, buy a mirror for their monitor.

    Group meetings at a less often interval (weekly or every other week) where everybody talks about what they're doing, and you reveal the long-term strategies, etc. Doing this over a free lunch or end-of-day beers (5:30p is "beer thirty" on "frosty friday" or "thirsty thursday," etc.) is always a winner. You already know most of the answers, so this is actually all for their benefit; this is when you report to them and they report to each other. This helps emphasize the philosophy that when co-workers are all friends, more work gets done with less apparent effort.

    Never criticize them for something you also fail at. Instead, announce that you're looking to improve that aspect in yourself and they'll get the message.

    You read Slashdot, so you're probably very IT-savvy ... older software engineers are a bit removed from that, so be careful about introducing new services (e.g. software services for bug tracking, wiki, source control, project management, social networking). When you do such introductions, make sure they are walked through, and the installation process is trivialized (all the above examples are web-based to eliminate client-side installation).

    Finally, pick up a book on agile development practice and consider migrating the team to a scrum cycle. Even if you decide it's not the right idea (or if you're already doing it), it will give you some management insight.

    --
    Use my userscript to add story images to Slashdot. There's no going back.
  42. 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.
    1. Re:programming != managing by binarylarry · · Score: 2, Insightful

      Sorry Jamie, not the case here.

      You make a false assumption with your title. Programmers aren't necessarily managers, but to manage a programming project, the manager HAS to be a programmer and a manager. This is a common mistake many people make, it's a popular meme that "with the right management skills, you can manage anything." But it's simply not the case. Look at Big 3 as a great example. They've been run by accountants/manager types for years and look where they've gotten.

      Look at any company that got rid of the product guys and replaced them with management guys. It almost guarantees poor products, leading to decline sales and bankruptcy.

      Ever heard of Apple? Look what happened when a pure manager took over there.... they tanked until Steve Jobs took over. Or hey, what about Microsoft? Oh right, since Steve Ballmer took over, Microsoft's marketshare has eroded to less than 90%.

      I could go on, but I think you've realized your mistake already.

      The worlds need geeks. Not management tools.

      --
      Mod me down, my New Earth Global Warmingist friends!
  43. Loop them in. by Dogun · · Score: 2, Insightful

    Don't leave your developers out of your design discussions and brainstorming.

  44. What I saw as good by Alioth · · Score: 2, Insightful

    On my last project for an extremely large customer (with an equally huge project), the good line managers were our (the developers) advocates, they took the bullshit so we didn't have to, and determined the "big picture". They didn't manage who was doing which particular piece of code - that was down to the developers to organize themselves. Managing the development team was less about managing the people in it (the developers could organize themselves) but being an advocate for the team, and making sure that the people who knew how to do the stuff were fully involved in decisions affecting them. Developers were not merely involved but critical to things such as sizing parts of the project, so that unrealistic schedules were not set. The line manager's job was in this case often to tell upper management "this is why it's going to take this long" in terms they could understand, and persuade upper management not to cause a disaster by compressing schedules or adding more work.

    It resulted in a productive development team which did not have to do unpaid overtime, and delivered a quality product to the customer - earning a very large sum of money for the company.

  45. Try talking to them. by zullnero · · Score: 3, Insightful

    Seriously, it sounds obvious, but it's a start. Figure out what their interests are, where their passions are in regards to their work, and determine if this is a person that you can put in charge of a piece of your project, or if this is someone who is only working for a paycheck. I've had my best results (and I picked this up from working in successful teams like this) by giving those who had stronger interests a degree of responsibility over a particular section of code, and had the "paycheck" guys work on all the other tasks that needed to get done.

    This approach works fine for both Agile and Waterfall, if you really "get" both methodologies. When you're working with seasoned developers, you're probably working with guys and ladies who've developed strong interests in particular niches by this point in their careers. If you can find a section of your project that jibes with those interests, you'll probably get fantastic results out of those folks. People who tell you that it's better to stay super generalized and constantly switch tasks without respecting those interests don't understand that if you're not passionate about something in your job, you'll most likely start looking for another job.

    And hey, if you have some seasoned guys who don't care either way, and just like that paycheck, those guys come in handy, too. They're like handymen, you can assign all the other tasks to them and they'll probably do them well enough. Saves you some time from trying to find contractors to do the work.

  46. Re:As a seasoned programmer I can easily answer th by JaredOfEuropa · · Score: 2, Insightful

    You don't have to. You are redundant.

    I've found that seasoned programmers, even so-called "agile" ones, often miss the big picture when it comes to changing business needs, shifting priorities, budget cuts, politics, etc. Some programmers exhibit the same attitude as Dante Hicks in "Clerks": "You know, this job would be great if it wasn't for the fucking customers". Others listen to the customer too much, when it should be clear that the customer doesn't really know (yet) what he wants. Programmers may not have the aptitude, remit or time to deal with all this, or (more often than not) they simply aren't interested.

    And that is fine: that's where the team lead or project manager comes in. If some manager is being an arse about requirements or timelines, make sure he talks to you instead of your team. And also make sure that you know how to handle that manager. Can you convince him he's wrong, can you find someone who can, or can you discuss this with the project's steering committee or sponsor? Many, many incorrect decisions and false assumptions will be made. As a techie with a bit of business experience, you stand a fair chance of spotting these. And as a project lead, it is your job to steer the ship away from disaster and back on course. That's where your added value lies.

    In my opinion the Parent's statement quoted above is only half right. If you have a team of seasoned and competent programmers, your challenges will indeed not arise from your team, but from the business side. Which means you are anything but redundant.

    --
    If construction was anything like programming, an incorrectly fitted lock would bring down the entire building...
  47. You don't herd cats - you just put them.... by glamb · · Score: 2, Insightful

    You don't herd cats, you just put them near the mice and they turn into a ruthless and efficient killing machine!

  48. Easy by pvera · · Score: 2, Insightful

    I totally feel your pain, I served a tour as a lead programmer, then technical manager, then director, then back to lead. Here's some of the things that I learned that weren't the most obvious to my fellow managers in other departments:

    1. Protect them. Put a programmer in a position in which he reports to just ONE boss and he'll follow you into hell. If the manager does his job, his programmers can actually spend the time programming instead of getting sucked into a reporting system where they have 8 bosses.

    2. Don't waste their time. Corporate is always adding stupid crap that all it ends up doing is slowing down the personnel that are actually producing. Try to cut down on redundant and/or useless reports, non-project/deliverable meetings, etc. Your goal here is to have your people spend as much time as possible billing to a project instead of burning overhead.

    3. Detach yourself a little bit. You are not their friend, you are their boss. You don't have to be an ass about it, but you can't hang out with them unless you take out the whole team for food, drinks, whatever. If you want to hang out with people in the same company, find other managers.

    4. You can rule with an iron hand, but try not to humiliate people in public. If one of your guys screws up, pull him aside and deal with it in private. Just because you have to adjust the employee doesn't mean you have to add humiliation to the mix. I know too many managers that simply can't understand how crucial this is.

    5. Don't obsess over the minutiae that is out of your control. The whole idea of having these senior guys is to have them do the heavy lifting for you, while you steer them in a general direction. Don't bother catching up to whatever technology they are dealing with. You do need to understand its capabilities and its limitations, but you don't need to know how to type the damn code yourself. Again, I know plenty of managers that refuse to let go and end up as horrible micromanagers.

    The best way to handle senior people is to tell them what you expect them to deliver, with broad guidance, plus whatever constraints are in place and out of your control. Let them do the work, try not to stand on their way and protect them from people that won't hesitate to make them waste their time.

    --
    Pedro
    ----
    The Insomniac Coder
  49. Bologna. by Weaselmancer · · Score: 2, Interesting

    And you treat your kids like they're your friends rather than your kids?

    A poor metaphor. You and your children are not equals. Not in any way. Not legally, not in terms of experience, nada. They need stern guidance. Most grown-ups (meaning both engineers and managers) do not. If they do, they need fired, not managed.

    That being said, I do my best to be a friend to my son. 99% of the time a kind word works as well (or better) than punishment. I won't hold back though if punishment is called for though. I'm not soft. Just thoughtful.

    Your statement about status reports would come across as BSing to me.

    If you're incapable of responding to adult conversation and honest communication, that's your problem not mine.

    Status reports help engineers focus their minds and keep their attention on track of what they need or have agreed to do.

    Maybe if you have ADD it does. I know what my tasks are without having to explain them to someone every other day.

    For the managers they help reassure them that they've understood that the engineers understand the requirements and direction

    Only if the engineers you've hired are morons who have to have things explained to them over and over and over. If that is the case, go to careerbuilder and hire yourself a new batch of engineers. What you've got there aren't engineers, they're idiots.

    They still have to talk to each other between reports though.

    If you have motivated adult workers, this is certainly enough. Reports gathered from engineers who don't respect you won't add up to jack. I know this for a fact.

    I once had a job where - for reasons too complicated to get into - the head of engineering had me working on a secret project. It was something we were working on, his boss said to stop it, but he told me to keep going on it. That meant I had to falsify status reports every week.

    Yes, I was paid to lie. And from that experience, I learned two things.

    1) You can lie your ass off on status reports. Either nobody reads them, or nobody understands them. My boss eventually admitted it was the first case. Too much work to babysit everyone. It's a psychological trick to make you work harder because you think you're being watched. Odds are, you aren't.

    2) Because nobody is getting anything of value from them, they are generally useless.

    I'm sure there are exceptions to this, and there may be a manager out there who actually reads his team's status reports. Probably as rare as hen's teeth, and I've never met one, but it's not impossible.

    --
    Weaselmancer
    rediculous.
  50. More suggested reading material by DaveAtFraud · · Score: 2, Insightful

    I'll also recommend Peopleware and follow the advice in the "Oh for crying out loud" post that this reply is under. I was going to post essentially the same advice.

    I once managed a software development group that had several Ph.Ds, some people with Masters degrees (I have an M.Sc. in Math) and most of the rest with B.Sc.s in computer science. We were developing software for a radar project and most of the Ph.Ds had degrees that were applicable in fields like high energy physics and atmospheric physics, etc. They all came to the same conclusion that they couldn't do what I did which was serve as the communications channel between my group and upper management. All I had to do was make sure thet they knew that I knew that they had the answers. They even had to help me with the questions some times.

    The key was that I didn't have a problem with this situation. It would have been a problem if I had pretended to know or had ignored the fact that they knew more about the subject than me. Instead, we became a team that solved the problem (almost on time and very close to within budget on a cost plus contract).

    The people working for you (hopefully) want to solve the problems you bring to them. Work with them to understand the problem and keep the part that they are trying to solve within the realm of technology. Do your best to keep company politics from disrupting them. Likewise, learn to spot when someone is trying to have your team create a technical fix to what is essentially a political problem. That's usually a recipe for disaster. The better you are able to keep your team focused on technical issues, the happier, more successful and more productive they will be.

    One last thing to remember. You mentioned that your team is older than you. Keep in mind that most if not all of them made a conscious decision NOT to go into management at some point in their career. They don't want to deal with management/company politics stuff. That's your job and they will be happy to let you do it so long as they can keep coding.

    Cheers,
    Dave

    --
    They that can give up essential liberty to obtain a little temporary safety deserve neither safety nor liberty.
    Ben
  51. Re:Be a friend first. Informal meetings, free food by Fred_A · · Score: 2, Funny

    One-on-one meetings in a comfortable and somewhat informal manner. Make it regular (twice a week or so?) and find some way to give them advanced notice indirectly, like doing it at the same time every week or passing by their office/cubes a few minutes before jumping in to ask for the informal report. If you startle them, leave and come back in a few minutes (really!). Their desks should be oriented in a manner that makes it hard to sneak up on them; if that's not the case, buy a mirror for their monitor.

    Wait, is this still about the glowing red ass thing ?

    --

    May contain traces of nut.
    Made from the freshest electrons.