Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm currently a one person development team. My employer is looking at hiring a manager. They do this because, for the more complicated projects, I tend to take a "this is how much I've got done - this is how much there is to go" approach rather than "this is when it will be done" and they think it's going to magically change if a manager comes on board.

Would I be correct that second developer is more efficient?

Could I maybe cite the advent of pair programming as evidence, or is that really a specialized thing?

share|improve this question
8  
Managing and programming are two separate things. It's like asking My employers is looking at hiring a sales guy. Would a second developer be more efficient instead? Definitely depends on your company's needs. –  Joonas Pulakka Apr 18 '12 at 17:10
    
I added more detail - did that help? –  Aaron Anodide Apr 18 '12 at 17:13
1  
Are they looking to hire a project manager, or a manager of you? If either, the question you asked in the title isn't really what you're describing in the body (the question in the title I would consider OT here, but the one in the body, not so much.) –  jcmeloni Apr 18 '12 at 17:17
2  
One manager for one programmer? That's insane. –  JeffO Apr 18 '12 at 17:38
2  
@AaronAnodide Your employer is not concerned with hiring a developer right now because your ability to do the job is not in question. What they do not know and you are not communicating to them is important "meta" information about what your project. How much effort (unbiased) are you putting in? What tasks and estimates are remaining? How much longer on the remaining tasks? If we add these features how does that affect the project timeline? These are important questions for accurate leadership decisions to be made. –  maple_shaft Apr 18 '12 at 18:11

3 Answers 3

up vote 5 down vote accepted

This reminds me of The Mythical Man Month article:

"He had added more programmers to a project falling behind schedule, a decision that he would later counter-intuitively conclude to have delayed the project even further"

http://en.wikipedia.org/wiki/The_Mythical_Man-Month

be careful about throwing more devs at it.. I would say a project manager.. or better yet, putting a person between you and the stakeholders will be better for you and for them..

It's nice of you to take on this yourself, but the "manager" / "stakeholder" or "person who cares about timeliness" shouldn't be speaking to you directly. At least ideally. for one, you dont want to deal with their pressure and their reactions to your honest answers..

they ask "can it be done in a week" you want to say "no way in H*LL", but because they're a manager / boss / important person... you say "yes", and in your head you mean.. "yes, if i dont sleep"...

so it's good if you can get someone between you and the person asking.. that way they hopefully wont shoot the messenger (if they do messengers are cheap!! lol).. and you can be honest and not stress over timelines that are being set without the input of a dev..

Also, getting someone in there to line item what needs to be done will allow you to estimate what each item will take to get done.. then the stakeholder can choose what to include and will have reasonable expections as to when they can expect the tasks to be done, as well as the entire project..

And then make sure to pad your hours to make sure you either meet them, or come in under the estimate.. I always tell anyone who asks me for a timeline to multiply it by three to be safe, even if i'm very convincing about it.. because i usually include a fair amount of "hope" in my estimates and am overly optimistic

UPDATE: As far as Paired Programming (LINK).. I would say this could be a good idea. For one, it'll give you some company, also, someday, they could end up with 2 programmers attacking the project eventually increasing productivity, but that wouldn't happen until the other programmer is fully up to speed..

I'm not sure they would need to hire a new full time project manager.. maybe someone already in the company might have some extra time to do some light "task management" and be able to be the liaison between you and the person asking about timelines, that way they could get you some help (another dev) AND get a buffer between the dev and the stakeholder.. the danger of having a project manager whose only job is to bang on you could backfire and become just as annoying as the current situation..

share|improve this answer
    
thanks you give me some hope that having a project mangager could make things better - you're bit about 'in the back of you head you think yes, if i don't sleep' - that is absolutely true for me - it happens all the time. –  Aaron Anodide Apr 18 '12 at 17:46

I wouldn't argue that pair-programming is a good example, unless you're genuinely planning on doing that properly. ie. Two programmers, one computer, one drives, one navigates.

The first thing you need to understand is what your employer thinks he will gain from having a manager in place.

Will this manager be managing more than just you (eg. hardware people or BAs)? Or is it because he doesn't understand development? Or is it because he's rarely available and doesn't want to deal with two people rushing in with problems?

Find out what the problem is he's trying to solve and solve it for him another way. Let him have one developer that he is comfortable talking to (essentially a team leader without authority). Or give him more visibility of the development process. Or show how you can work with other people more effectively.

Or, maybe, when you understand the problem he's trying to solve, you'll see the benefit of a manager.

share|improve this answer
    
the problem they are trying to solve is definately that when they ask me how long something non-trival takes, i always give them ball park figures and they want to view it in exact terms that translate to cost-benefit analysis –  Aaron Anodide Apr 18 '12 at 17:23
    
to make it more concrete: they say "build a client portal - how long will it take you?" - i know that I have the ability to do it, but I've not built 10 of them in the past so I honestly don't know ALL the challenges and thus my first estimate of the amount of work is broad stroke ball-park guess-ti-mate. –  Aaron Anodide Apr 18 '12 at 17:26
4  
Well, yeah. This is the eternal problem with software development. It's not an exact science. We don't like to make promises, in case we fail to keep them. But the business does need to know if it's worth doing something. Is your relationship with him good enough to sit down and talk about how to find a compromise? To explain that if he brings in a yes-man, all he will get is estimates wrapped as promises? –  pdr Apr 18 '12 at 17:27
    
I like your last sentence there - that's the angle I was trying to verbalize - thank you! –  Aaron Anodide Apr 18 '12 at 17:28

They do this because, for the more complicated projects, I tend to take a "this is how much I've got done - this is how much there is to go" approach rather than "this is when it will be done" and they think it's going to magically change if a manger comes on board.

Ha-ha, I guess some of us have experienced that :-)

The furious four to balance is:

  • Quality (this is always number one)
  • Time (should be done yesterday)
  • Scope (must have more features than competitors)
  • Budget (in your case, one or two developers)

So, essentially, your employer could either double your budget (hire another developer), or hire a manager to focus on balancing the furious four. The manager wouldn't have much degrees of freedom. If quality and budget are fixed, then the only thing the manager has left is juggling with time vs. scope. He may be able to make you get the project "done" faster by cutting down the scope, but is this what your employer really wants? (If yes, you could as well do that yourself.)

The lowest-level work - constructing the software - is the most important in the end, because it's the only activity that is guaranteed to be done when the software project is done. Everything else is optional. Something to think about, when wondering whether to hire an extra manager or extra developer.

The only thing I can think of that might support having a manager for a 1-man team is: are you currently doing lots of managerial stuff yourself - spending half of your time answering e-mails, sitting in meetings, etc.? If the manager could take that burden, that would allow you to concentrate on the actual work.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.