Managers Views Of Developers

There are a lot of opinions in the wiki about the shortcomings and widespread incompetence of software development managers. Managers are portrayed as uneducated, technically clueless meddlers who do nothing but restrict talented developers from getting anything done.

Having spent some time with managers (and pretending to be one myself), I thought I'd share some of the opinions that managers have of developers. Rest assured that they are as unimpressed with developers' abilities as developers are of theirs.

Developers may be interested in knowing these opinions, and in thinking about to what extent these views may contain some truth.


Sounds about right.


That's because "percent complete" of a task is a ridiculous progress metric. Tasks have only three states: not started, started but not finished, and finished. It is reasonable to ask for an estimate of the remaining (uninterrupted) time to complete a task (i.e., ETC - see Completion Headroom in http://c2.com/ppr/episodes.html), but a much better progress metric is percentage of use cases / scenarios that pass acceptance tests. Use case scenarios are either implemented, or they are not. (For more discussion on this, see PercentCompletedMyth)

Any developer who presents that attitude is not showing TrueProfessionalism, and doesn't deserve to be part of your team.

This, sadly, is a characteristic of professionally immature developers. Hire professionally mature ones.

Technology serves business. Period. RealValue is defined by the customer, not the developer. Inside of that, developers can take pride in their SoftwareCraftsmanship - that is what motivates them, as AlistairCockburn insightfully describes in AgileSoftwareDevelopment.

Developers take pride in contribution to business success. Change nullifies contribution-in-progress.

That's too broad a brush. Experienced developers know that technology serves business.

It is the job of LeaderShip (management, if you must) to establish and uphold the culture of an organization or community. Good citizenship should be expected of everyone.

BTW, I really like KenMcKelvey's comments on GoodItManager. --RandyStafford (a developer-turned-manager-turned-developer-turned-TechnicalLead, who tries to see both sides)


Technology serves business. Period. RealValue is defined by the customer, not the developer. Inside of that, developers can take pride in their SoftwareCraftsmanship - that is what motivates them, as AlistairCockburn insightfully describes in AgileSoftwareDevelopment.

You are truly naive if you think we work for customers. We work for ourselves and customers mostly get in the way. --AnonymousDonor

Speak for yourself, AnonymousDonor. I beg to differ. "Ourselves" don't remunerate us for our work - our customers/employers do. We participate in an economy. It is possible to work for your customers/employers, and for the software development profession, and for yourself / your family, all at the same time. --RS

You said the customer is the only definer of RealValue and we are left with just admiring our craftmanship. This strikes me as a SlaveMentality?. I agree completely with the rest of your statement. I just don't see UsWorkers? as being passive WorkerBees?. Until development is reduced to mass production, this will be the case. --AnonymousDonor

True. I brought my own baggage viz. RealValue. I guess I'd forgotten about the dream of doing something artistic :) Best Regards, --RS

The problem is developers who spend too much time admiring their craftmanship. The original statement is correct, software is a tool to be used by others to provide value. Developers need to take pride in helping others accomplish something. That is not slavery, but rather the nature of software development.


Pretty much "right on target" with all the complaints.

But I'll comment anyway.

True, that last 20% can take 80% of the time. And unexpected things occur. Sometimes people lie to you, to get a low estimate. Then, in reality, things don't turn out that way.

I said it would take two weeks of full time effort, without distractions. Six weeks later, after 5 "fire drills," several panics, and plenty of distractions brought on by the people who extracted the two week estimate from me, I get blamed for the things they did to me. And people wonder why I have such a "bad attitude."

A manager's response to this would be that any estimate that assumes no distractions nor interruptions is not a realistic estimate. If there is a significant atypical interruption, then make a note of it when they try to blame you. But the standard level of chaos should be assumed whenever making estimates, and enough padding should be included to offset any minor atypical distractions. --KrisJohnson

Absolutely correct, Kris. As they say, however, the devil is in the details. I've seen managers assign wishful levels of time commitment to developers on the basis of "Well, those three months during the time when <previous project> had just gone in and it required a lot of support, but it won't be such a drain now". I've seen developers commit to too much because they don't really know how much time they really spend on other tasks. Then there's the case of being committed to multiple efforts but not being realistic about the inefficiency of task switching. If someone is assigned to two projects and is given a third, that doesn't mean it's possible to divide up X hours by three instead of two -- there must be some awareness of the decreased efficiency of that. The disagreements over how much time "padding" should be allowed are because there is a great deal of subjectivity. One nice thing about ProjectVelocity and short iterations is that it makes is possible to get real, usable information about how long it takes to do something. --StevenNewton

There are real problems here. But none of them will actually be fixed until we all grow up and stop looking for a scape goat to blame. It is possible to make software development more predictable. But it's not easy. And it's a cooperative effort: No one person can accomplish it, no matter how much you blame them.

We are! ;-> -- Wile E. Coyote Supra-Genius


Developers don't take their commitments seriously. As deadlines slip, features get cut, bugs are found, and money is lost, developers just laugh. Developers accept no responsibility for such events.

Counterpoint - I have been given a set of requirements, and we have estimated the time, and the manager has developed a schedule, and I start work. Halfway through, I am told that I am needed to work on a critical customer problem, which ends up consuming a week of my time - does the schedule get pushed out? No!

Another example - I was part of a project that had a schedule. When 2/3s of the staff on that project left, was the schedule adjusted? No!

Don't tell me that developers aren't living up to their end - they've been burned too many times to blindly trust management. --PeteHardie, being quite the cynic.

I can relate. When a deadline becomes, through various means, unrealistic - I mean even working 80 hours per week unrealistic - and it gets to the point where I have to seriously reduce the quality of my work to meet a deadline, those are the times when I question my choice of profession, start thinking of going back to school, etc. That's my primary signal nowadays to get out.

That's aside from the fact that developers often bring such deadline crunches on themselves by not pushing back with a united front. When the chips are down, most managers I know are very good at dividing and conquering, usually along the lines of the implied are-you-a-team-player tactic (sure I am, except when it comes to suicide pacts).

Those people on the team who are scared to lose their jobs cave (people with kids and house payments, in my experience), and the others on the team who have spines don't want to let down the ones who caved. So the scared spineless engineering team works 80 hour weeks and then the code is crap and after the deadline people start leaving. Repeat repeat repeat.

Oh, yeah? If you can't stand up to a PHB's face and say, "CountTheHands," you're sunk. Period. A-Double-Plus for contracting consultant types, since we get paid based on results.

Unfortunately not all of life is as clear cut as this (hey, I wish it were). Sometimes you have friends on the team you'd rather not sell out when they assent to working 80-hour weeks. Sometimes the management is good enough at PrisonersDilemma tactics that you don't realize what's happening until too late. This is where experience comes in - you steer the thing early on by either taking a hand in helping out if your management is reasonable, or having the foresight to get out if they're not. In any case, the real victory when you head off a problem like this before it happens, not in being dramatic and confrontational when it comes to a head. Most of the time that backs management into a corner where from now on they want you all out, or you're just left hung out to dry. Lose-lose.

Contracting is one solution, especially for the engineer. When I'm paid by the hour I could really care less how screwed up an organization is. And you get paid indirectly based on results - you get paid directly based on how many hours you work, sometimes there's a big difference between those two things.

Hourly rates are all well and good, but don't take into account things such as completion bonuses (which can be a significant part of the overall value of a contract), customer satisfaction (which can seriously affect repeat business), and even the survival of the project (thusly negating all other considerations). A consultant is not an employee and can't think or act like one. Our responsibility to the client extends to telling him the real nature of the problems he has either generated for himself or slipped into by inaction.


If a manager is unsatisfied with the maturity level and professionalism of his developers, then perhaps he needs to hire more mature and professional developers. (?)

Of course, they are much more expensive than the younger ones. Ah! But that's the rub then, eh? YouGetWhatYouPayFor! - BillZimmerly

Another option is to train the developers in maturity and professionalism. A revolving door of hirings and firings is merely a naive belief that "the grass is always greener on the other side of the fence"; that the next programming hire will some how be better than the last.


I've seen a lot of reference here to "Mature Programmer", not to be confused with "Manure Programmer". What is the definition of a MatureProgrammer?

One that has a strong smell?


I like this, but I can't prevent myself from getting prickly about some of them. This is slightly silly, so don't take it too seriously:


See GoodItManager, HelpYourManager, EstimationWoes


CategoryEmployment


EditText of this page (last edited October 15, 2005) or FindPage with title or text search