10 Things your manager should do for you if you are a coder

A friend of mine has been working for a while now as a coder without a manager. Not having a manager seems like fun but really I dont think it is. By not having one you miss out on alot of things they should do for you.

First some context. Much of what’s below applies just to the “typical” situation where you are on a team of more than just 2 or 3 coders and you work for a company which is big enough to include not just coders. In this situation I think you are better off with a boss than not having one.

At least that’s true if your manager is doing the things they should be doing. What are those things?

Here’s 10 for starters:

1) Say No for you – If upper managment/sales etc wants feature X by friday and you don’t think that can happen then your manager should discuss it with you and then say no for you to the outside request. You should not be forced to say no and feel like you are letting people down for telling the truth.

2) Make sure you have what you need – When people don’t have the tools they need then the company is mostly just wasting money. Good programmers are expensive ( althought bad ones can cost even more (see )). Spending money on decent equipment and software for developers is much cheaper than finding more good developers. Its also true that sometimes tools can go too far. Just like some people are woodworkers and others are collectors of woodworking tools, the same kind of thing can show up with programmers. Always chasing after the next development tool or new process idea can be a sign of someone who is looking for ways to avoid the work, rather than make it more efficient. A good manager should be able to tell the difference.
3) Get rid of the losers you work with – One of the most damaging things you can do to a development team is to have people on it that aren’t competent. I don’t mean that everyone needs to be a rock star. I have worked with great teams which included Senior Aces and some Juniors who still had a lot to learn. The key is that you have to have people who are either awesome or improving. Some people believe that while a mediocre coder might not add much they add something so they are worth keeping. I have not found that to be the case. Bad team members are more likely to make everyone worse.

4) Keep the crap out of your way – Its your manager’s job to make sure you have as little as possible to worry about beyond the coding tasks you have.
5) Provide Processes which make you better – A good team needs processes and a good process is one that the team believes in and understands its value. The processes should exist FOR the coders to make the project work more effective. If the managment has put in place good SCM, Build, and Test procedures your job will be easier and more productive. Most processes that exist for management simply sap productivity.
6) Make you talk to the other coders on the team – By whatever method works (meetings, email, wiki, im, etc) its the manager’s job to make sure there’s the right amount communication going on in the team. This almost always means getting people to communicate more. 95% of personal issues on progamming teams can be improved by getting people to talk to each other. Sometimes the best thing a manager can do is to sit down with 2 coders who are in dispute and act as a mediator to let each of them air thier issues.
7) Help you become better/Teach you something – If your manager doesn’t do anything to help make you better or isn’t able to teach you anything then its time to consider freelance. There’s not much point in working for The Man (or The Woman) unless The Man has something to offer besides a paycheck. While its often the case that the coder is smarter than the manager (I know its been that way for me in both roles at different times) there should still be something to be learned from the manager’s experience or point of view.

8) Ask Your Opinion – If you don’t know better than anyone what is going on with the code you are working on then you should be fired. If some issue comes up relative to your code and your manager isn’t smart enough to ask your opinion then they should be fired.

9) Help you stay on schedule – Its your job to get your work done but a good manager can help you. It might be annoying to have them ask you how its going all the time, but they should be able to provide enough positive to compensate. You manager should be able to do much more than to just ask you to work the weekend to get you back on track. If you are stuck on a hard problem he should be able to suggest solutions, places, or people help you find an answer. Sometimes they can help you redefine the task into something more easily completed in the available time.They should also just know when to just leave you alone…

10) Make sure you understand your tasks – Being able to clearly define what is needed is one of the most important things your manager can do. This should be a two way conversation ideally where you are participating in the definition and not simply coding up some set of written requirements. Written requirements can be great but they are rarely sufficient on thier own.

11) Respect your work and encourage others to do the same – Even the the company probably owns all the work produced by the team and so In that sense there is no code that is “yours” as the coder, its still important that your manager show respect for what you have done. If you have done a good job on some system your manager should be cheerleading for you to people outside the group and even within the group as appropriate. Situations where only one person can touch certain parts of the code are to be avoided but if changes are up for a section of the project you worked on, your manager should show you the courtesy and respect of consulting with you on how these updates should best be accomplished.

12) Your manager should never lie about the number of items in a list.


Posted

in

by

Tags:

Comments

5 responses to “10 Things your manager should do for you if you are a coder”

  1. Pokie Avatar
    Pokie

    Am I the only one who reads this blog, or the only one who comments?

    Two comments:

    1) This is a good list, and not really coder specific. You could apply it to virtually any job (or any that requires a team) in any organization.

    2) The best coder manager I’ve known was a woman. Watch your assumptions, or at least your pronouns.

  2. Toria Avatar

    I read it too! I’m not in the software business but do find it interesting to read your blog. Because, yes, as the comment above me says, this could be applied to many other jobs as well. Think secretary, which I was for a few years, and unrealistic tasks, as well.

    Happy 4th of July to all my American friends. Happy Canada Day to any fellow Canucks.

  3. Nikto Avatar
    Nikto

    Yeah. Sorry about the pronouns. I’m mostly just lazy not sexist. Maybe Ill fix it.

  4. Gabe Avatar
    Gabe

    Brice,

    A good list. As a developer I’ve seen both sides of the coin.

    What I’ve always observed is that shops with weak management and poor communication fracture into cliques with different agendas and levels of respect for management. The result is a “you stab my back, I’ll stab yours” reality, vaguely masked by ‘safe’ gripes about authority figures. It’s even worse when the manager doesn’t really want to be managing.

    I think the sad reality is that if management doesn’t function in many of the ways you’ve laid out above, employee focus becomes staying out of the way of whichever clique is on the rampage this week, instead of getting work done. It really is up to management to set the bar. There is nothing like clear communication and clear goals to get good people rolling – and nothing like a leadership vacuum to rob a team of direction.

    I’ve been the super-productive, happy, and creative developer before; likewise, I’ve been the stay-in-office, do-the-minimum-for-my-cheque kind of ’employee’. The difference has always been management. I’m not denying culpability for my own past behaviour, just making a link. “Losers” are usually not deficient people – they are products of the work environment that management is responsible for developing, and they’ve lost hope. You can’t be a team player if there’s no team.

    So,

    13. If you aren’t happy with an employee’s performance, first take a look at your own in light of the above points. Room for improvement? Go talk to the employee. Lay out the things *you* could do better, and the steps you’ll be taking to improve. Mention that the work environment needs to change for the better, and that you want it to start with you. Then follow through, and make it impossible for the employee to ignore. That’s called leading by example, and by doing so, you’ll earn the kind of respect that can’t be conferred by Official Title alone.

  5. […] There’s alot of talk on the internet and even on this blog about how to be a better manager. There’s also alot of talk about how to be a better parent. […]

Leave a Reply

Your email address will not be published. Required fields are marked *