views:

232

answers:

8

Putting aside potential objections to the idea of a non-programmer having to manage programmers (needs must in a small software start-up), what should the non-programmer try to learn about how to better work with the programmers? This is me.

I say 'non-programmer', but actually I have spent a few years in the industry and have tried to read and self-educate because I find the stuff interesting and I aspire to learn more. But, reality is that I cannot write code to a professional standard and I know it'll take a while to build up such knowledge, and people tell me I shouldn't even try. Perhaps the coders would rather someone like me just keeps the hell out. If not, is there a particular direction I should take in my self-study, which would make me more effective?

I've read Joel's book and he has plenty to say about, for example, giving coders good working conditions. I'm not asking here about that aspect of management - my question is really a question about whether there are some particular technical skills I should aim to acquire rather than just continuing my unstructured 'wandering' around things that interest me.

+10  A: 

If you haven't read Peopleware, you should definitely read it. It deals with your issues. In short, it explains that a manager's job is not a technical job (although of course it doesn't hurt if (s)he is knowledgeable about technical aspects of the development). The manager's main task is communication, not dealing with technology. Your main concerns are, among others:

  • hire the best software developers available,
  • give them interesting challenges,
  • keep them motivated, and
  • try to get all obstacles out of their way.

That's what you do better than them - and all of these are "people" issues, rather than technical tasks.

I don't mean that you shouldn't try to learn more about or practice coding yourself - just that it may not make you a better manager, and does not necessarily help your project succeed.

Péter Török
A: 

See this article for some ideas:

the-philosophy-of-managing-programmers

Hope it helps you ; )

SDReyes
+1  A: 

Yes, you should definitely understand inputs and outputs. Those are the essentials of programming. Whenever someone programs they have things that are available to them (inputs) and then you expect them to give you some things in return (outputs). If you can understand this and how developers need to communicate with each other and you about these inputs and outputs you will probably be in a good place.

Also, you must understand that sometimes coding can take a while and testing usually takes twice as long ... unless it's a really simple coding task.

Brian T Hannan
+1  A: 

I would just read up on the basics of whatever your team is using so you don't get snowballed by the developers you're managing. (Now I need to duck-and-cover for spilling the beans...).

Also check out Rands in Repose.

Austin Salonen
+2  A: 

I agree about Peopleware, and I'd also say Brook's The Mythical Man-Month is required reading.

James McLeod
They key stuff in the MMM is the first couple of chapters. A lot of the rest has dated fairly badly. The main thing to get out of it is to understand that throwing resource at an already late project will almost always make things worse.
Jon Hopkins
+1  A: 

My $0.02 - I think just by you posting that question on here means you are on the right track. I can only speak for myself - (I have had several non-programming managers) the ones I thought benefited the projects the most were the ones that took care of interfacing with the clients and the other managers, helping out with the documentation, keeping track of the project plans and trying to help the programmers meet deadlines by resolving non-technical obstacles encountered (new tools, hardware, personal, etc...). Encourage your programmers to be creative and work together as a team to create a product - you will be of more benefit that if you "attempted" to learn some technical things.

thedugas
+1  A: 

My suggestion for a good book that may help would be: How to Win Friends and Influence People

JB King
A: 

Our CIO has no technical background, and he prefers to use Windows (and maybe OSX) as servers! He dislikes unix/linux and the unix/linux team has been shrinking in size.

If I were you, I'll keep myself educated about the big pictures in my domain, what are the recent breakthroughs etc

portoalet
You may not like them but there are plenty of good - non-technical - reasons why Windows server are a fair call. I don't think that's something to hold against him unless you know his reasoning.
Jon Hopkins