20

Sometimes I can't stand it when project managers ask me to estimate time to complete for various tasks. An estimate is a guess, and guesses can be wrong. Generally, bad requirements and documentation will lead to bad guesses.

So I often wonder if the project managers were ever in my shoes trying to guess at how long task X and Y will take, and how difficult it is to assign a number to it based on what little is known and collected from the client.

My question then is: Do good project managers need to have a programming background?

Or maybe the question should be, do good project managers need to have been a good programmer before? Is there any correlation?

2

19 Answers 19

22

Managing IT projects is definitely not the same as managing other types of projects. I once heard of a project manager with no IT experience. He ended up frustrating the programmers and basically scaring them away.

On the other hand, a programmer that becomes a Project Manager may become a control freak, thinking he can fix things if (s)he can't get the programmers to do it properly (that has been my problem in similar situations)

10
  • 4
    +1 for your second point. An average programmer makes the worst manager.
    – Rahul
    Sep 20, 2010 at 8:19
  • 2
    "definately not the same as managing other types of projects" I would say yes it is. Sep 20, 2010 at 8:29
  • 2
    "I once heard of a project manager with no IT experience." I'm married to one, delivered at least two large projects on time and budget and has people wanting to join the team from other teams. Sep 20, 2010 at 8:31
  • 1
    Then (s)he can't be the project manager I heard of! ;) Sep 20, 2010 at 8:40
  • 1
    @NimChimpsky so you say you don't need software engineering skills, understand the personality of IT personel (the introvertness, geekyness), understanding that adding people to a late project makes it later, and so on? I'm not talking about "being able to program" here, but about knowing what's involved when developing software. Sep 20, 2010 at 8:47
20

A manager with a strong technical background usually understands better how their team "think". It's always better to have a manager that understands you, isn't it?

1
  • 1
    To some extent, I suppose that's right. On the other hand, I think we as programmers need to do a better job at communicating and learning how to think like a non-technical person would think. I think it's a natural part of one's maturation as a professional. Not only that, it's a hell of a lot easier to change yourself than it is to change somebody else :p
    – H.Y.
    Oct 19, 2010 at 18:48
7

No. Two completely different skills. A bad project manager is not necessarily someone who doesn't understand IT, and vice versa.

Being reasonable, rational, organised, understanding the project goals and associated business, and a good motivator are not at all dependent on being able to program.

2
  • Can't agree with this.
    – Budda
    Oct 26, 2015 at 21:03
  • @Budda well thats a well thought out and indepth analysis of the issue raised. Thanks for your input. Oct 27, 2015 at 8:13
7

Everything else being equal, i'd prefer a project manager with strong, up-to-date technical experience. However in the real world, programmers who graduate into full-time project management are more likely to allow their skill-set to become stale and outdated, which isn't a lot better than them having no technical background.

I've worked with good project managers and some terrible ones, and I can honestly say that i've seen little correlation between their management ability and their technical background. The most important factor is not technical background, but how much experience they have managing software projects. If you have two people managing their first project, the programmer graduating into project management is going to be just as bad as the project manager with no IT background. Both are going to go through a steep learning process.

The argument over the ability of project managers without a technical background reminds me a little of this:

alt text

3

I honestly think the answer is no. There is a whole baggage of competences required to be a good project manager and being a programmer is not one of them. A good project manager could manage any project of any type given that there are good people on the project team who know what they are doing. The main quality a project manager should have is communication skills. A project manager's job is to coordinate the project's tasks and keep the communications flowing between the customer, project teams and any other stakeholders. He/she should know at all times the progress of the team and if they are experiencing roadblocks, but doesn't need to know what the problem is or what you need to fix it, unless it implicates another person on the team whose time will need to be adjusted to help fix the problem.

As for giving estimates, that's a reality of life in any job. You could never get a house built on time if the electrician couldn't tell you how long it will take him to do the wiring - when would you know to book your walls guy? I agree though that it's really hard in IT to give estimates because of the high number of imponderables. Customers don't always know what they want and they tend to forget to tell you a bunch of things. What I used to do is estimate roughly how long I thought it would take, then multiply it by 2! And a good program manager shouldn't crucify you when your estimate proves wrong, it will cause him some headaches to re-organize the schedule, talk to the customer, explain to the bosses that it's going to cost more, etc... But that's part of their job - again, good communication skills are mostly what's required.

And I would even say that not having any programming skills is even better - an ex-programmer might attempt to do the estimating on their own or second guess your estimates. And we all know that IT skills get outdated really fast. You need to start asking questions when your project manager is more interested on how you are going to do a task than on how long it might take and when you'll be done. They could ask you to evaluate alternatives and let you hash out the details but the main point is to know how you're going to affect the project's schedule.

Finally, I'm not saying that no IT skills are necessary to manage an IT project - IT people being the type who just cannot seem to be able to vulgarize what they are saying for the common folk (!), it helps to know the basic jargon to be able to communicate with them! Also knowing the basic steps is crucial - you need to setup a server before running a website on it. I couldn't manage a construction project if I didn't know that the electrician has to finish the wiring before I close the walls!!

2
  • I think this sounds incredibly good and ideal, but I've never met a IT project manager that was decent at managing unless they had some programming and tech experience. Otherwise, it just feels like they don't know what they're talking about.
    – spong
    Sep 21, 2010 at 4:54
  • Sorry to comment that your main point is really hard to follow after I read.
    – Nam G VU
    Jul 6, 2016 at 5:41
3

A PM really needs to know what the project will do, which likely requires some technical background but not developing.

Other than that, it's a matter of having respect for the field and the developers, more than actual knowledge. A PM needs to take the developers seriously, what they need, what they can do, what they can't, how much time will take. A PM who has some idea what he or she doesn't know can be very effective. A PM who thinks he or she has all the answers is bad. This can be an ex-developer who believes he or she knows everything and doesn't, or one who never developed and doesn't think he or she needs any special technical knowledge to manage.

1
  • +1 for your idea A PM who has some idea what he or she doesn't know can be very effective
    – Nam G VU
    Jul 6, 2016 at 5:44
2

I dont think a project manager of an IT project requires an IT background. But he/she has to definitely understand IT, and should know how IT projects work.

Though IT background is an added advantage, lack of it does not make one a not-so-good IT project manager. Also having a IT background is not the deciding factor.

I have worked with both types, and each had their unique set of qualities and problems.

With IT backround:
- Would understand when we say performance error because the code is not multi threaded
- But, in some situations, would say "hey come on, it is just adding 4 lines of code, you can do it in 10 days"

Without IT background:
- Would be very comfortable to negotiate for changing a deadline comfortable
- For an project without any requirements (at all, yet), would sometimes say "can we give a rough estimate of 100 days and mention a 30% buffer.

1
  • Love the way you give details on your experiences with the two types.
    – Nam G VU
    Jul 6, 2016 at 6:00
2

I believe they do need some programming background. If not then they will always be pressuring the programmers t d their tasks quick and expect it to be done within a few hours when actually the task requires lots of thinking and dedication. These qualities are known and well versed with programmers so if the project manager has programming background then he/she will understand how long a specific task will take and there will no arguments within the department and thus in the end a good project will evolve.

1

@NimChimpsky I agree.

It's a matter of what, not how (Active Listening is a nice tool).

Estimation works for small technical tasks, but for planning you need to work together to see the whole complexity. And you are no rivals.

1

It would definitely help especially if their not a good project manager. For a good project manager it does really matter.

1

No.

A good project manager is someone who can empathize and understand what his team's needs, preferences, and capabilities are, whether it be at the construction site, the manufacturing floor, or the software development house.

A good or bad project manager can have any sort of background:

Bad managers with technical backgrounds could've been ace programmers who do not appreciate the difficulty novices face when dealing with mundane, "easy" concepts like pointers.

A good manager could be that average programmer who wasn't as brilliant or as clever as his colleagues but had a deep understanding of project structure, requirements, and understood the lessons of The Mythical Man Month by heart because he lived bad coding days himself and got chewed on for not finishing his deliverables on time.

A good manager could be that software sales guy who found out that his coder friends couldn't go out with him on weekends because of unrealistic promises he himself had given to the client.

Technical knowledge do not predetermine a programmer's qualifications as a manager, because the skillsets required in both jobs are utterly different. So no.

1

I've never seen a project manager with no IT experience who could manage a non-trivial software development project worth a damn. I've seen very few project managers with IT experience who could do that either, but they seemed to screw it up less.

2
  • The take-away there being project managers with IT experience knew better than to trust their developers' estimates. Oct 16, 2010 at 0:06
  • It's a much larger issue than that. Even if someone's more or less accurate when you ask him "how long will it take you to do X?", if you don't know that he'll also need to do Y and Z before the project's done your plan's going to be pretty severely lacking. And that's a matter of knowing what questions to ask. Oct 16, 2010 at 18:19
1

In my experience, management is about effective communication and decision-making. With that in mind, it makes sense that someone who understands the crafts (at least the core concepts and terminology) utilized by the people they manage, is better suited to be a manager than someone who has less of an understanding, but there is definitely no correlation. I've seen managers with programming experience succeed and fail, just as often as managers without programming experience.

Either extreme is bad, in my opinion; People with too little programming experience can blindly trust their programmers (Shepard following the sheep); People with too much experience can continually question their team's efforts (micro managing).

Personally, I think someone who has a good grasp of the core programming concepts, but realizes that they aren't a "hot shot," is the ideal kind of manager.

0

Definitely.

I have to be careful with this one cause it is based on true stories but I will try to explain my pain.

I'm working as a software engineer and we have a project manager with whom I'm working a lot lately. He has no technical background and it seems that it doesn't interest him at all but that's not the problem (everyone has there own interests). If you don't like to have technical know-how cause it's kinda "freakish" than it's yours BUT if it is your job to talk with the customer on a technical level it is essential to have technical know-have which he doesn't have.

Anyway there is this guy he doesn't understand anything about how a server works, how a web page works, how programming works and so on. Sometimes I feel like he doesn't know ANYTHING. So Every time I'm trying to make him clear what we have to do now or what the problem is what we have at the moment he doesn't understand anything. AND he is not that kind of a guy who would say "Hang on a second. Can you repeat that I really don't quite understand it.". No, he is that kind of guy who don't want to show that he didn't understand anything in the whole conversation.

But it doesn't ends here cause he then calls the customer and talks something that's basically not true. And it's ends up that we have to call the customer together to make it clear again.

That's why I say it really is ESSENTIAL to have some basic technical background and technical know-how. He shouldn't be able to write code but he should be able to understand what is going on and what processes have to be done.

BTW since I'm working with him my job is no fun anymore.

3
  • I would say it is more essential to have an understanding of the business the project is delivering to. So if you creating software for medicine/construction/social work ... whatever; that is much more important. I have experience with excellent pm's with no programming bg. Don't let a couple of bad experiences prejudice you. Sep 20, 2010 at 8:48
  • 2
    This just sounds like the person in question doesn't have a personality suited for PM. I don't think them having a technical background would change that.
    – richeym
    Sep 20, 2010 at 8:55
  • @NimChimpsky yeah basically you right but it is also a question about what this guy has to do in a company. If he has to talk to customers on a technical level a technical background is essential IMO. However I don't want to say that there are no PM's who are good and have no or minimal technical background.
    – OemerA
    Sep 20, 2010 at 9:49
0

I would say yes, he should have some programming background. If the manager doesn't have a clue as to what is it like to program, then he'll end up with unrealistic estimates for development and bug fixing. Also, he wouldn't understand any technical problem well enough to make a decision. Programmers in the team could lie to him and he may not realize, also programmers could tell him a problem and he may think that they're bullshitting around

0

Technical skills don't make a good manager, good management skills do. It can be helpful if a manager has done their time in the "trenches" as they can have an appreciation of the process that laymen can't have. However, it can also result in a kind of control freakery that even control freak layman managers don't have. They may try to do all the work themselves or scrutinize yours in an extremely uncomfortable way.

In my personal experience, the best manager I ever had was fairly clueless about technology, but he knew that the people working under him knew their stuff, and he knew how to earn the loyalty and respect of his team. I worked under him for four years, and only left the company because he'd left and been replaced by a manager who wasn't as good.

One of the worst managers I've had is versed in coding (if not software design) and does so much of the work himself that he leaves the rest of us with little more than scraps, bug fixing or the projects he doesn't want to do himself.

0

There seems to be some confusion:

The PM is not the boss of the developers. The person responsible for the dev team (Team Leader, Manager) and does the hiring and evaluations should decide if you're working hard enough.

Estimations are not perfect. I think the PM understands this more than you think. Do you seriously expect no one to ever ask you how long it will take to do something? Everyboy wants to know when it's done and it's the PM's job to track it.

You can be a PM is you: A) understand how to manage projects B) understand the development process. Neither of these requires coding knowledge, but it can help.

Determining if the programmers are getting enough done is not the PM's job unless he doubles as the team leader. To know whether or not anyone is "blowing smoke" about the time to complete a task, a manager will always have an advantage if he understands what is involved.

Estimates get better with experienced programmers who have a history of working on a particular type of project. No one expects them to be perfect, but they do expect you do come close and get better over time.

3
  • I not agree. Team leader often to be PM; and if not, often refer to PM to evaluate a coder.
    – Nam G VU
    Jul 9, 2016 at 11:16
  • A PM can evaluate the end result of what a programmer is doing in the areas of timelines and the user evaluation of code quality, but nothing specific about day to day practices of the development team.
    – JeffO
    Jul 18, 2016 at 3:01
  • Timeline decide every thing there then.
    – Nam G VU
    Jul 18, 2016 at 3:07
0

I'm reminded of the old saying: "you don't have to be crazy to work here, but it helps".

The short answer is that hands-on coding experience isn't a requisite of a good software PM, but it is usually preferred. What is critical to being an able PM is understanding the development process (whatever methodology is used), and trusting that the developers are willing and able to do their job. The development experience gives hands-on knowledge of that process, therefore it helps. PMs who work their way up the ladder in a company additionally know the corporate culture (and the codebase), and have a rapport with the other long-serving members of the dev team, which is why IMO the best PMs are promoted from within instead of being brought in from outside. If someone outside the company can manage the team better than someone from inside can, things are VERY wrong.

One thing I mentioned is a rapport between the PM and dev team. This is both at an interpersonal and a technical level. The key here is communication; the devs must feel they can bring issues, both technical and interpersonal, to the PM, and the PM must understand the dev team members when they describe a problem.

As to the specific nature of your question, an estimate is exactly that; an educated guess as to a quantity (as opposed to a hypothesis, which is a more general prediction of the outcome of a future event). The manager will usually either mathematically or intuitively apply some modifier, based on your recent estimates versus actual timelines. Agile builds this into the estimation process; the client intuitively estimates the complexity of the requirements, then the devs do the same, and then the devs actually go out and develop the solution, giving the manager data points to calculate a ratio of requirements points to dev points, and dev points to man-hour requirements.

In short, a manager will only take your estimate at face value in one of three scenarios:

  • You've been pretty accurate with your estimates of similar tasks in the past.
  • He's under pressure to deliver, and your estimate is better than he thought.
  • He's looking for a reason to fire you.

If it's that last situation, there will be many other clues around the workplace that maybe you should get the hell out.

-1

I have no idea but my manger do need some technical knowledge. It is impossible to explain him sometimes.

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