Slashdot Mirror


Project Management For Programmers?

welshdave asks: "I'm a senior web developer in a medium sized company where the project managers have no programming experience of any sort. I'm of the opinion that project managers should understand the projects that they're managing and want to move into project management myself. I'm aware that I may meet resistance from the current project managers - many of them have been hired with no previous experience of anything. Previous suggestions to senior management that myself and other developers would feel better with a technical person running projects have been dismissed. As a result we are routinely told to skip testing or to implement the impossible, with an emphasis on how things look rather than how well things actually work. Has anyone else found the barrier to project management is their technical knowledge. How did you get past it?"

150 of 445 comments (clear)

  1. Don't want to discourage you, but... by Anonymous Coward · · Score: 4, Interesting

    I think that a certain lack of detailed knowledge about what is possible and what is not might be the key to successful project management. Yes, an impossible task assignment is probably going to cause a little confusion among the techs, but it can also be eye-opening in the sense that it teaches them about what people want. Techs commonly have a certain close-mindedness about how things should be done which can be very unhealty to a project.

    1. Re:Don't want to discourage you, but... by lennart78 · · Score: 3, Insightful

      I think you're right in this. A project manager should, in my opinion, be responsible for planning and control, and not for any tech-stuff.
      In my company, there is a group of persons that discusses with the customers about what they want, and what is possible. THAT's a point where tech-expertise is needen. When the specs are settled, it is handed over to a PM to make sure it gets implemented.

    2. Re:Don't want to discourage you, but... by anshil · · Score: 3, Insightful

      I think you should add some examples....

      I think one popular issue are colors in emails. Really? Why are colors bad in email? (Tell people not to use HTML mail because it's bad?), or even worse RTF?.

      From a technical standpoint I understand very well that emails are text only, no colors, no underline, no bold. But now step backward from your techy knowledge and think about it from a pure users perspective. Now why can't I put colors in my email??? Whats really so bad or difficult about them?

      --

      --
      Karma 50, and all I got was this lousy T-Shirt.
    3. Re:Don't want to discourage you, but... by Dilbert_ · · Score: 2

      I think it is always a handicap to have a lack of knowledge. Not a deadly one, mind you. The killer combination is a lack of knowledge and a refusal to acknowledge it. Good managers listen to what their skilled subordinates tell them about their field of expertise, take into account other things like scheduling and customer demands, and then decide. Not listening to the techies can kill a project stone dead.

      --
      superblog.org: all your favourite blogs on o
    4. Re:Don't want to discourage you, but... by DNS-and-BIND · · Score: 5, Interesting
      Ha! The company I was recently laid off from (they just had a round of layoffs, does that tell anyone how well they're doing) had the clueless project managers spoken of above. We ran a custom mail server on big Solaris boxes, and these project managers didn't know so much as "ls -l". Time and time again, we were tasked with impossible projects, which could absolutely not be implemented in the time allowed. As a result, we cut corners on testing, reliability, and system updates, with predictable results. We would get a machine into the field, and it would crash when some user would try to do something "unexpected", like our agents crashing due to buffer overflow when the "Subject:" line of an email exceeded 256 characters (The PM solution to this? Fix the overflow? Nah, they just had the programmers raise the limit to 2000!). Critical operating system patches were never implemented, due to "we'll have to test it, and we don't have time". The result? Hacked and vandalized boxes, and massive time wasted doing pricey reinstalls and customer apologies. Implement a real mail delivery system? Nah, just hack something together whereby sendmail invokes a brand-new shell process which runs an SQL script to inject the email into the database. Two expensive processes for every single incoming email! This particular problem was not fixed until some months after a spammer sent us 14,000 emails in a single hour and the system load rocketed to over 100 (on a beefy Sun Enterprise 4500, no less), and basically DOS'd the system. Expensive crash, humiliating customer apologies, the responsible PM being fired, etc.

      It wasn't that the techies were doing poor work, or slacking off on the job. Far from it - we worked our asses off. But a lack of knowledge about what was and wasn't possible resulted *directly* in impossible task assignment, with the entirely predictable consequent frequent outages and customer dissatisfaction.

      Oh, and remember how I said we had layoffs? All the project managers were laid off save one. The surviving PM was universally held as being technically competent and a gem among mud.

      --
      Shutting down free speech with violence isn't fighting fascism. It IS fascism!
    5. Re:Don't want to discourage you, but... by sql*kitten · · Score: 4, Informative

      I think you're right in this. A project manager should, in my opinion, be responsible for planning and control, and not for any tech-stuff. In my company, there is a group of persons that discusses with the customers about what they want, and what is possible. THAT's a point where tech-expertise is needen. When the specs are settled, it is handed over to a PM to make sure it gets implemented.

      A project manager has a set of skills that are distinct from by complementary to the skills of an engineer. A project manager who starts their career as a project manager often has great skills for, budgeting, say, and understands the administrative details as a role. The reason that these people fail is that, lacking an engineering background, when creating plans they are unable to accurately estimate time and resource requirement, and even worse they are unable to identify critical paths, dependencies and opportunites for parallelism.

      The ideal structure is to have a project manager to take care of the details, and a system architect to see the "big picture" and have overall responsibility for planning and executing the project. If the project manager is in charge, then that individual should have at leat 5 years experience "in the trenches" on similar projects, and should have the authority to set priorities and trim the feature set if necessary.

    6. Re:Don't want to discourage you, but... by Shynedog · · Score: 2, Interesting

      Yes, an impossible task assignment is probably going to cause a little confusion among the techs, but it can also be eye-opening in the sense that it teaches them about what people want.

      I agree with that statement, to a point. Receiving a ridiculous assignment from a group of non-technical managers is frustrating for the developers, but usually not the end of the world. However, I draw the line when said managers also stick their noses into choosing the tools for the development of the project.

      I worked as developer for a small software company not too long ago. Our project manager was an idiot with no technical experience whatsoever. Ditto for the owner of the company. When we began development of a new web-based version of the company's flagship desktop product, management insisted on choosing what language would be used for development. They also decided that we would use some fledgling object-oriented database instead of Oracle or some other well-established DB. (Only after a week of protest from the horrified developers did they finally concede on that point.)

      So to answer the original poster's question:
      Has anyone else found the barrier to project management is their technical knowledge. How did you get past it?"

      Do what I did. Quit instantly and find a new job.

    7. Re:Don't want to discourage you, but... by Lobsang · · Score: 4, Interesting

      Allow me to respectfully disagree...

      What you're asking for is a ship captain that doesn't know how the ship works! Most project managers have no idea about the inner working of their projects. The end result: flawed deadlines, angry programmers, impossible tasks, annoyed bosses and/or clients.

    8. Re:Don't want to discourage you, but... by twinpot · · Score: 3, Interesting

      I'd tend agree as well. Many techs make very poor PMs, and can get distracted with the technical issues at the expense of the overall project. (yes, there are exceptions, but in 20 years I have seen very few good techs that make good PMs).

      What can be useful is to have a "Technical PM", who is responsible more for the technical aspects of the project - assigning and selecting staff, approving estimates etc. This person then works very closely with the non-techy PM.

    9. Re:Don't want to discourage you, but... by bay43270 · · Score: 2

      If the project manager is in charge, then that individual should have at leat 5 years experience "in the trenches" on similar projects, and should have the authority to set priorities and trim the feature set if necessary. I think this would be great in an ideal situation. Hoverver, given the choice between having a leader with project managment experience OR programming experience, I would pick a good project manager, hands down. In my last two jobs, all of my supervisors are current or ex-programmers. Not only did they not have any formal project managment experience, they refused to believe there was any pattern or defined rules to becoming a good project lead. They believed project management is simply a series of "gut calls", and that good project management was simply an instinct. If given the choice, I would rather work with a project manager with both programming skills and project management knowledge... but right now, I'd settle for someone with a f%#@! MIS degree!

    10. Re:Don't want to discourage you, but... by James+Youngman · · Score: 5, Interesting
      A more common term for what you refer to as a "Technical PM" is "System Architect". This sounds nice to technical ears and is (rightly) percieved as a senior technical position. We also have Functional Architects on some projects, whose skills favour the business process analysis side of things.

      The other benefit of this is that the other guy doesn't get called a "Non-technical PM", which you have to admit isn't a very good job title.

      In the (quite large, 12k staff) company I work for, the pinnacles of career (at least for most people's career paths) are

      • Programme Manager - these are the guys the Project Managers work for
      • System Architect - career progression here is measured in terms of the criticality or size of the project you run/work on
      • Principal Consultant - your job here is to be your organisation's main expert on some specific thing (deep skills rather than the wider skillset which is more usual for a system architect)
      We do have some career positions above those, but they're mainly line-of-business and divisional management, Managing Directors of various business units, and so on. We have a dozen or so members of technical staff who are more senior than the System Architects for large programmes and the principal consultantts, but they don't really have specific job titles (as you might expect at that level, people know them by their name and reputation alone).

      We have a group Technical Director (used to be the deputy Technical Director of the BBC), but he doesn't sit on the executive comittee - that may be something it would be best to change.

    11. Re:Don't want to discourage you, but... by e40 · · Score: 2

      I think you're confusing the project manager with the visionary of the project (who could be anyone). Project managers are rarely visionaries, because the skills for both are very different (and I would posit that the skills are opposites and will rarely be found in the same person).

      I agree that a good vision that pushes that boundary of what is possible (in the minds of the implementors) and is a really good thing. It is important, however, not to get too far out there, because that will have a negative effect on the people doing the work. It will either cause them to fail or distrust management (and the visionary).

    12. Re:Don't want to discourage you, but... by pizza_milkshake · · Score: 2, Funny

      I disagree. How well can one manage a project if they don't understand the steps or the relative complexity of the steps involved? It reminds me of a Dilbert cartoon where PHB assigns Dilbert the task of designing a global client/server infrastructure. Time alotted: 6 minutes.

    13. Re:Don't want to discourage you, but... by shayne321 · · Score: 3, Insightful

      What you're asking for is a ship captain that doesn't know how the ship works!

      No, what he's asking for is a ship captain that doesn't neccessarily understand how the ship's engine works. The captain should understand how to manage the workers in the engine room to get the most productivity out of them while keeping them happy, while interfacing with the passengers of the ship who keep yelling for the ship to go faster or slower so that the workers in the engine room don't have to deal with them. The ship captain should understand how to manage, run, and guide the ship - not tear it apart and reassemble it.

      Shayne

      --
      Today I didn't even have to use my AK; I got to say it was a good day -- Icecube
    14. Re:Don't want to discourage you, but... by Hector73 · · Score: 3, Insightful

      What you're asking for is a ship captain that doesn't know how the ship works! Most project managers have no idea about the inner working of their projects. The end result: flawed deadlines, angry programmers, impossible tasks, annoyed bosses and/or clients.

      About 2 years ago, I would have agreed with you. But now, I would say your Project Manager (whether technical or non-technical) is the problem. A non-technical project manager can do a great job of leading/planning a project AS LONG AS that individual does not make technical decisions for their engineers. The PM must listen to his/her senior engineers/architects to accomplish good schedule planning. Give the engineer a good set of requirements and get a resource and time estimate from the engineer. The PM must trust the engineer here. If the engineer conistently produces bad estimates (not from changing requirements, etc), then find another engineer to do estimates. The PM can then use these estimates to make decisions on what features to drop, priorities, etc. That avoids flawed deadlines, angry programmers (hey, they or another engineer made the estimate), etc. I've found this actually works out quite well at my current job. Never been happier.

    15. Re:Don't want to discourage you, but... by chris_mahan · · Score: 2, Insightful

      How much you want to bet that ship captains don't know how engines work? It's like asking whether truck drivers know how a diesel engine works. Of course they know.

      And I bet the ship captain knows too. There would be something funny about a freighter captain not knowing how the engine works as his/her ship battles a typhoon in the middle of the night 600 miles from the coast of China.

      Now, he may not know how to tear it apart and reassemble it, but he will know how it works, how much to ask out of it, how long it needs to warm up, how much fuel it takes at what speed, how much maintenance it needs, and so on.

      Likewise the product manager and/or planner may not know how to compile C++ code, but he/she should understand what headers are, what OO is, what procedure calls, COM, and that sort of things are. He/she should also know how much work is involved, and how to allocate the right amount of personnel resources, hardware resources, software resources, adequate office space, adequate working environment, adequate communication channels between workers, and so on and so forth. This sort of knowledge does not come in easy, and if the Board Of Director in their Wise and Excellent Counsel fail to realize that a marketing VP cannot lead a team of programmer, then the future is grim, and maybe the typhoon will take that company down to great unchartered depths.

      --

      "Piter, too, is dead."

    16. Re:Don't want to discourage you, but... by Beliskner · · Score: 2
      Actually why are i.e. ANSI emails not possible? Wouldn't this be something cool?
      Dude, be quiet. Let Micro$oft collapse under its own weight when its lawyers try to lobby China to stop the selling of unlicensed copies, then suddenly the Chinese premiere says, "Microsoft is trying to screw us, just like Falum Gong". Then that's it.

      Now who would actually implement this? Currently instead of going to the w3c which Microsoft will just ignore (think Frontpage extensions), you'll have to convince Micro$oft to get Outlook to support ANSI emails. The linux people will b*tch about Micro$oft changing standards for a few weeks until the latest version of Eudoro supports it, then they'll shut up. It's so sad that Micro$oft has to pioneer new tech, otherwise it'll end up as just another pre-alpha on sourceforge. Catch-22, why use ANSI in email when nobody can read it, why get an ANSI email reader when nobody's going to send you any.

      --
      A caveman dreams of being us, the incalculable power and riches. We dream of being Q, then what?
    17. Re:Don't want to discourage you, but... by calarts_nutmeg · · Score: 2

      Well, there's a balance, because more often than not these are the rotten guys who drive us to work weekend after weekend while our sig-o's leave us after feeling negelected, while these "project managers" are off playing with their girlfriend on a wave runner, y'know. Every good Project Manager I've worked with had done some programming, they weren't necessarily a great or even professional programmer, but all had played with programming, or at least tried to take classes to see what is technically possible, as there is a difference between what's visionary and what's ridiculous, what if steve jobs had demanded that the mac os have full multitasking back in '83, forget it! Jobs is a great visionary because he knows what is both possible and what things could be done, but just aren't. The mac didn't come about because it changed the laws of physics, it just took a new approach to computing that was possible, but just never had enough backing to make it out of the lab.

      --
      Check my site out for ogg vorbis music produced with linux.
    18. Re:Don't want to discourage you, but... by DNS-and-BIND · · Score: 2
      Uhh...hey, Mr. Arrogance, it *was* transmitted to the appropriate people that we were setting ourselves up for disappointment. As my parent poster implied, though, there was a "we can do anything" attitude meshed with a general cluelessness that ultimately proved fatal.

      Plus, I was just a cog in the system. Why did I go along with the assignments? Mostly because the people around me had to do them, I successfully avoided entrapment in all but one or two of the fiascos, complaining I was too busy implementing our HP/Openview ITO solution.

      --
      Shutting down free speech with violence isn't fighting fascism. It IS fascism!
    19. Re:Don't want to discourage you, but... by kubrick · · Score: 2

      And why isn't it upgradeable with backward compability?

      Politics and cost -- because enough mail-handling programs out there were written to a spec that doesn't really allow it.

      There's no 'wrong' or 'right', but there is 'way too much money spent re-engineering for a feature of dubious value'. Why not start a new mail format, add features up the wazoo, call it something else and stay off port 25 and out of the territory of RFC 821/822?

      --
      deus does not exist but if he does
  2. help your PM help ypu by chongo · · Score: 5, Insightful

    I found that it was easier to sit down with my PM and asked then the one thing they needed to make their job easier. If it was half way reasonable I went out of my way to give that to them ... in turn they seemed more willing to listen to reason and help form a project timeline that was 1/2-way based on reality.

    --
    chongo (was here) /\oo/\
    1. Re:help your PM help ypu by fallacy · · Score: 2, Funny

      "in turn they seemed more willing to listen to reason and help form a project timeline that was 1/2-way based on reality."
      ...
      ...
      "suffering from being up to late working on a project :-("

      Sounds like you might need to butter up your Project Manager a bit more...

      ;-)

  3. Stop whining, start doing. by smoon · · Score: 5, Insightful

    As a developer I've found that most management-types don't give a hoot about technical details, or much of anything else that a heads-down developer might care about.

    What will get attention is an understanding of business need, an attention to detail in terms of reporting progress and delivering systems that work, and positive attitude.

    As a manager I get very tired of hearing about the programmers, sysadmins, etc. complaining that such-and-such can't be done, or otherwise blocking progress. Much more often than not things that "can't be done" just require a re-statement of the problem and some creative application of simple ideas.

    My recommendation would be to make a friend or at least the aquaintance of one of the project manager's bosses, and just talk. Don't attack the current project managers style -- that would make their boss look bad. Don't complain about the impossibility of whatever. Mention that you have an idea of how to accomplish some objective. Show that you have some clue as to what the managers are interested in. Show that you have some interest in the companies performance. Be prepared to give out some 'write ups' that show a very clear train of thought and that make a clear recommendation up front, with backup material and dialogue exploring alternatives explaining why the recommendation makes sense.

    If that doesn't work, then get a job with a company that has a clue. They're out there.

    --
    "But actually trying to use m4 as a general-purpose langage would be deeply perverse" --ESR
    1. Re:Stop whining, start doing. by ThePilgrim · · Score: 4, Insightful
      As a manager I get very tired of hearing about the programmers, sysadmins, etc. complaining that such-and-such can't be done, or otherwise blocking progress. Much more often than not things that "can't be done" just require a re-statement of the problem and some creative application of simple ideas


      When a techie says it can't be done. 9 times out of 10 (s)he means it can't be done under the current constraints. Thease break down into time/features/money.


      If you can vary the constraints then you will find that most objections will dissapier.

      --
      Wouldn't it be nice if schools got all the money they wanted and the army had to hold jumble sales for guns
    2. Re:Stop whining, start doing. by pschops · · Score: 2, Interesting

      This is part of the problem with PM's not being technical (and most management of tech areas). The wrong question for a PM to ask is, "Can XYZ be done". The wonderful thing about technology is that the same goal can be approached many ways, and technologies combined in unique ways. While lots of things are possible, how many are worth the money and man hours it would take, both in development and support?

      "Can it be done?" should be replaced by "Should it be done?". When the work is done and we step back and start supporting, living with and working with the result of the effort, will be truly get what we say we want?

      More things can be done than should be done. This is where not having fundamental tech knowledge on the part of a PM leads to trouble.

    3. Re:Stop whining, start doing. by Fnkmaster · · Score: 3, Insightful
      This should be modded up. When we layer on constraints to a development project, eventually you will ALWAYS hit the point where the project becomes impossible UNLESS you are willing to relax some of the constraints.


      I have fought both sides of this battle as a technologist and manager, and I agree massively that a technologically competent manager does make a huge difference, because they can map out the business needs communicated to them and make constraint/trade-off decisions informed by a better understanding of the possibilities and real technological effort involved in implementation.


      Of course, the problem is that there is often somebody above the technically-astute manager who still doesn't know what the fuck is going on, and then the battles just ensue another level up. Unless the company happens to be organized like a _real_ software development shop, which is pretty rare these days.

    4. Re:Stop whining, start doing. by JordanH · · Score: 2
        • As a manager I get very tired of hearing about the programmers, sysadmins, etc. complaining that such-and-such can't be done, or otherwise blocking progress. Much more often than not things that "can't be done" just require a re-statement of the problem and some creative application of simple ideas.

        When a techie says it can't be done. 9 times out of 10 (s)he means it can't be done under the current constraints. Thease break down into time/features/money.

        If you can vary the constraints then you will find that most objections will dissapier.

      I can see both views here. Too often, people have a kneejerk reaction to change. It's so much easier to analyze things negatively, shooting holes in a plan rather than putting out suggestions on how to get around the obstacles. You sometimes get in an environment where people are afraid to make positive suggestions for fear of being attacked.

      On the other hand, a lot of clever ideas to implement something often lead to a hodgepodge mess that's unsupportable and only approximately works part of the time.

      The real problem, I think are managers who think like as reported here:

      As a developer I've found that most management-types don't give a hoot about technical details, or much of anything else that a heads-down developer might care about.

      Management types who don't care at all about technical details are one of the biggest problems technical people face. They proliferate systems and arrangements that just aren't technically sensible. They shop around, finding someone who says "well, yes, what you are asking can be done... but <good technical reason why that's a bad idea>" and give not a hoot why it shouldn't be done.

      Managers of technical people need to "give a hoot" about technical details. They don't have to have a deep understanding like an expert, but they should care that there are tradeoffs and potential problems.

      Can you imagine if this statement could be applied to the Accounting Department? "Most Managers don't give a hoot about money and numbers, just as long as you can make them fit into the management's objectives, that's all that's important." That attitude would be criminally actionable. I think it's similarly criminal for technical management not to care about technical details.

    5. Re:Stop whining, start doing. by Tablizer · · Score: 2

      (* Be prepared to give out some 'write ups' that show a very clear train of thought and that make a clear recommendation up front, with backup material and dialogue exploring alternatives explaining why the recommendation makes sense. *)

      What I find is that many managers just don't want to read nor think. I can justify an idea on paper down to every hair, but that means diddly if the manager does not want to think nor read it.

      That is the biggest difference between a true nerd and a PHB. Real geeks *like* to think and explore ideas and approaches and compare and debate.

      PHB's just want to somehow use their well-honed social skills to get around having to think. They want to (try to) use people skills to solve technical problems, and it often does not result in the best approach.

      If you don't want to think, compare, and ponder, then get the fuck out of the way of those who do. Otherwise, you will just frustrate us into grey hairs and create un-needed tension.

      Geeks hate pretenders.

    6. Re:Stop whining, start doing. by The+Cat · · Score: 2

      In other words, be a super-programmer, work three times as hard and have a big smile, BIG SMILE...

      ...so the management will look good.

      Then everyone was laid off. Sounds great.

  4. They told you no because you knew *too much*? by ObviousGuy · · Score: 2, Insightful

    Have you demonstrated leadership ability through mentoring or project leading?

    Do you communicate with customers well?

    Do you appear as someone who would be a Santa Claus manager?

    Is your upper management (not your immediate superiors) a bunch of clueless morons? Do they have strong points that make them suited for the leadership positions that they hold?

    If you are looking to be in a leadership/management position, it would be better to stay where you are and learn the ropes, IMO. So many managers come straight out of development at one company and louse everything up at their new company as inexperienced PMs. Unless it's been made clear to you that the only way you're going to move into management is by killing a current manager, stay put and look for opportunities where you can.

    Talk with the boss, if the company is not so big that you are completely alienated from the upper management then you have the chance to befriend those people and politick your way into an authority position.

    Yes, we all know that leadership positions should be based on knowledge and track record and all those other good things, but in reality, you'll never get the positions you want unless you can make the right people understand exactly what you want.

    --
    I have been pwned because my /. password was too easy to guess.
  5. Don't mix management and architecture by rsmah · · Score: 5, Insightful
    The problem your firm seems to be facing is that you are mixing project management with system design/architecture. What's the difference you ask? Project management is the process of resource allocation, scheduling, budgeting and task tracking. System design/architecture is the process of figuring out what should be built and how it should be structured internally.

    Good project managers need a different set of skills than system architects. Project managers think in terms of timelines, tasks and dollars. Architects think in terms of system components, their interactions, user requirements and technology. While there are some people who can do both well, they are quite rare as they require fairly different ways of thinking.

    Anyway, I'll bet dollars to donuts that the resistance you face from upper management has more to deal with the fact that you put the system before the company. They want project managers that put the company (or client) first. Big suprise, eh? If you want to lead projects, explain how you (or rather, people like you) can help the company make more money or make the client happier while spending the same amount of money (which, should lead to more money for the company). It's pretty much as simple as that. Cheers

  6. Tom DeMarco books by soegoe · · Score: 2, Insightful
    Give your managers a copy of Tom DeMarco's Peopleware. And include his novel The Deadline for a bit of light reading. :-)

    Some books on Extreme Programming might help, too. Even if you do not plan to use it, they show how to share responsibilities between management and programmers. It all boils down to:

    • Management decides what will be done (business value blah blah).
    • The programmers decide how long it's gonna take
    • Management sets the priorities.
    This helps to avoid impossible deadlines and to keep up with high quality.
    1. Re:Tom DeMarco books by richieb · · Score: 2
      DeMarco's new book Slack should help too and maybe Steve McConnell's Software Project Survival Guide.

      --
      ...richie - It is a good day to code.
    2. Re:Tom DeMarco books by DNS-and-BIND · · Score: 2

      Oh, yeah...instead of your project managers making you implement the latest buzzwords, turn the tables on them and make them mouth *your* favorite buzzwords instead!

      --
      Shutting down free speech with violence isn't fighting fascism. It IS fascism!
    3. Re:Tom DeMarco books by T.E.D. · · Score: 2
      Give your managers a copy of Tom DeMarco's Peopleware.


      While you are at it, read the book yourself. You will find that there is nothing in there about being good technically. That has nothing to do with a project manager's job.

      I'm not saying you wouldn't be a good project manager. But if you are, it has nothing to do with how technically astute you are.

      Most people who are good technically would actually not like being managers, because their awesome technical skills would be completely wasted in that role. How much fun does a day completely filled with playing with MS Project and Powerpoint, and attending meetings, prying resources from other groups, and walking around talking with your staff sound to you? If your interpersonal skills, listening skills, and leadership skills aren't up to snuff, it would be even less fun for you.

      Of course, just because your managers aren't technical doesn't mean they are any good at this stuff either. :-)
  7. Get certified and go to the local PMI meetings by bons · · Score: 4, Informative

    PMI has all you need to know about certification and there are PMI meetings just about everywhere". Attend a few of those and you'll either be networked enough to improve things or fins a better job.

  8. In a nutshell. by Fross · · Score: 5, Insightful

    One thing both you and the project manager need to understand is:

    The project manager deals with the business side of things.
    The technical lead deals with the technical side of things.

    So while he may be setting (or have forced upon him) aspects such as deadlines, you need to control scope, methodology and quality. Communicate with him constantly. Imply (if not state explicitly) that you need to work on resource allocation, something he may be trying to plan for you right now. to have everything stated down on paper is best for both of you, you can at least then agree or disagree and sort things out.

    It may also help to implement a proper development strategy you can agree on - if he won't listen, just escalate the issue. One that is tried and tested is a good bet, whether it's Extreme programming (a good suggestion) or something coming from the business side of things.

    Whichever it is, the problem here seems to arise from a lack of definability of responsibility and roles, and that's what needs to be set and agreed upon so you can both do your job properly! He's probably as exasperated at you at the moment ;)

    Fross

    (a technical architect working as a project manager!)

    1. Re:In a nutshell. by Fnkmaster · · Score: 2

      You either need a person trained and experienced in both roles managing a project, OR you need two people with equal status in the company who can work closely together without killing each other.
      I've seen lots of structures for doing this. Some work, many don't. Also "project management" at some organizations corresponds to annoying schedule keepers rather than decision makers who recognize and decide on trade-offs, and requirements come from a different group entirely. These are some of the most broken organizations on earth.

  9. Only bad managers demand the impossible by Skapare · · Score: 5, Insightful

    I've had managers before that varied from well experienced, technically, to not at all. Rarely was I asked to perform the impossible. And in those cases where it was impossible, it really was impossible. I simply pointed this out to the manager ... and I explained in detail why that was the case. In all cases things got corrected. Maybe I'm not so closed-minded as some techies out there, and I know most everything is possible. The better managers I found came to me with the ideas of what they were considering doing, and asked me to prepare a report on the feasibility and costs (mostly in hours of work) of doing it. I usually included an impact analysis as well. But you can be sure that if I tell my manager that it is impossible, then it really is impossible. Usually the truth is "it'll cost ya". Maybe techies need to learn to say that more often.

    --
    now we need to go OSS in diesel cars
    1. Re:Only bad managers demand the impossible by Surak · · Score: 5, Insightful

      But you can be sure that if I tell my manager that it is impossible, then it really is impossible. Usually the truth is "it'll cost ya". Maybe techies need to learn to say that more often.

      There's the key to successful project management right there.

      As programmers, we know that you can optimize on three things: delivery time, peformance (speed), and features. Pick any two. :) Everything is a tradeoff. If you want me to deliver this program quickly and have a lot features, then I'm going to have to write major bloat code to give it to you, AKA The Microsoft Way. If you want features and optimum performance, this is going to take some time (one reason why so many Open Source projects seem to lag behind schedule.)

      Knowing that is the key...and being able to explain that to upper management is the other key.

      "Oh, you want XYZ feature? That's going to take us another three weeks to deliver and we'll need a budget increase of ."

      And a project manager that doesn't know that will have to work closely with the programmers on the project to determine these constraints. A project manager who's done programming, OTOH will already know the difference, and she will have to be the one that learns to say "It'll cost ya." The project manager is the link between management and the technical team. And that person needs to be able to speak BOTH languages.

    2. Re:Only bad managers demand the impossible by calibanDNS · · Score: 3, Informative

      You've had a much better experience with this than I have. I've only had one instance so far where I've had to tell the PM that it was impossible but the problem was that he didn't believe me. His reply was "So, you don't know how to do this?" so I gave him a mathematical proof as to why it was possible. This PM has a Masters in Strcutural Engineering from a well-respected university, so I thought that should be enough, however he simply crumpled it up and told me that he would write the code since I obviously didn't understand what he wanted. A couple of months later he raises the issue with me again and tells me that he is having trouble implementing it. Knowing that he is going to ignore my proof if I show it to him again I came up with the most basic and realistic data set that I could that would be unsolvable. I then asked him to try solving this data set by hand. Two days later when he came to me and told me that he didn't think it was possible I had to fight very hard to hold back the "I told you so" because I was hoping that this incident would convince him that in the future if I say "impossible" then he should consider the possibility of something really being impossible. Unfortunately nothing has changed and I am now looking to change jobs.

      Anyone know a company that doesn't treat its developers like morons and that is hiring?

    3. Re:Only bad managers demand the impossible by Aceticon · · Score: 4, Insightful

      You're assuming that you actually have a project manager that's smart/experienced enough.

      Some project managers when confronted with the "there's a trade-off here" explanation will either:
      - Not trust you at all, because they think you are trying to make time for yourself (ie they think you're lazy).
      - Not trust your judgement and think you are overestimating the time it will take to do it (ie the "this looks so simple" syndrom - also common with users)
      - Try to get you to work long hours in the (mislead) belief that if you work more hours a day the change can be made in a smaller number of days (it works for maybe 1-2 weeks, then your productivity starts declining)
      - Insist that somehow (nobody knows exactly how) the whole change must be made within a certain (shorter than you think is needed) timeframe (usually they've already promised it to upper management and/or the costummer)
      - Get you to choose what trade-off should be made (this is my personal favorite - the manager is in practice asking you to manage. Just shows how usefull some managers are)
      - Any combination of the above

      Unfortunatly and contrary (or maybe not) to popular belief, those sort of managers don't actually get fired. Usually they tend to stay forever in a lower management position (ie directly managing the developers)

      <SELF-COMMAND RANT-MODE="OFF"/>

    4. Re:Only bad managers demand the impossible by Fulcrum+of+Evil · · Score: 2

      Ahh, cruel, bitter, irony...

      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
    5. Re:Only bad managers demand the impossible by gallen1234 · · Score: 2, Insightful

      Rarely am I asked to do something that's truly impossible. I've always taken the position that it's not my job to say "no" to my manager. Rather, it's my job to say, "Yes, and this is what it will cost you."

    6. Re:Only bad managers demand the impossible by Beliskner · · Score: 3, Insightful
      Two days later when he came to me and told me that he didn't think it was possible I had to fight very hard to hold back the "I told you so" because I was hoping that this incident would convince him that in the future if I say "impossible" then he should consider the possibility of something really being impossible. Unfortunately nothing has changed and I am now looking to change jobs.
      If you're going to leave the company, shout at the manager first, I mean SHOUT. You should have said "I told you so, you've wasted 3 months of project time, the customer is gonna be very unhappy. I'm reporting this incident to upper management." Take your crumpled up proof with you. You can always go over peoples' heads, if upper management likes you nobody is gonna let you go and your manager will get fired. These CEOs don't get paid > $millions for sitting on their asses.

      Best case: Take him out. Take a counteroffer from another employer to your CEO and get a pay rise for yourself
      Intermediate case: Take him out, he pulls strings and takes you with him (you're gonna leave anyway so you've got nothing to lose, plus you get the satisfaction of ruining his life)
      Worst case: You get taken out (you're gonna leave anyway so you've got nothing to lose)

      --
      A caveman dreams of being us, the incalculable power and riches. We dream of being Q, then what?
    7. Re:Only bad managers demand the impossible by Grab · · Score: 4, Insightful

      Make sure everyone knows what estimates you gave. Or if you can't make the higher-ups aware, make sure your estimate and your disapproval of your boss's new estimate are recorded in an email to your boss. Then you take as long as it takes, and when it overruns and fingers are pointed at you, you say "I told you so" and point them to the evidence. And if you get fired/downgraded for that, there's a nice little sum waiting for you at the industrial tribunal when you bring that "constructive dismissal" case. ;-)

      Re the trade-off thing, again you need to get written down what the results will be, and send it to your boss. Preferably also CC it to his boss. If the trade-off will mean more bugs, then write it down. Then when there are bugs, you have some comeback by saying "I was forced to release this code without having tested it, even though I said what the consequences were".

      BTW, don't forget to check the "notify on read" and "notify on receipt" boxes when you send the email, then you actually have proof that (a) it got there, and (b) he read it. If he later claims ignorance, or says "Outlook must have eaten it", you've got evidence otherwise. Emails are your evidence when the shit hits the fan!

      There are some bad managers out there. If you get one, don't be afraid to go over his head and talk to his boss, or to your personnel manager. You have a right to do that if you have a complaint about him.

      And if all else fails, find another job. Seriously. If the management at your place doesn't value you, get the hell out.

      Grab.

    8. Re:Only bad managers demand the impossible by Anonymous Coward · · Score: 2, Interesting

      As programmers, we know that you can optimize on three things: delivery time, peformance (speed), and features. Pick any two. :) Everything is a tradeoff.


      When my current manager informed me, a month before the project deadline, that oh-by-the-way, the program would have to be distributed on separate systems *on segregated networks*, and I took a deep breath and tried to meet him half way, he put held up his finger to silence me. He turned to the whiteboard and wrote the word NEGOTIATION on it. Then he turned back to me and said, "This is NOT THAT. I am the manager. I do not negotiate."


      That's why, with a week to the deadline, I've been on slashdot all day. Treat me like shit when I'm trying to help you out? Fine, OK, you don't respect me, I won't respect you, and guess what? You're not going to really motivate me to do my best work. And if you obsessively time my daily arrival/departure times TO THE MINUTE, I don't think I'm going to be volunteering to work many more unpaid weekends of overtime.

      Anyone looking for a Perl/Linux/security geek in the London area?

    9. Re:Only bad managers demand the impossible by snow+leopard · · Score: 2, Funny

      Worst case: You get taken out (you're gonna leave anyway so you've got nothing to lose)

      Actually, worst case would be: you get taken out, he quits, gets a giant severance package and follows you to your new job.

    10. Re:Only bad managers demand the impossible by TedCheshireAcad · · Score: 2

      As programmers, we know that you can optimize on three things: delivery time, peformance (speed), and features. Pick any two. :) Everything is a tradeoff.

      Client: When can you have this project done? How much will it cost? Will it work?
      Developer: You have 3 options: good, quick, and cheap. Pick two.

    11. Re:Only bad managers demand the impossible by Surak · · Score: 5, Insightful

      When my current manager informed me, a month before the project deadline, that oh-by-the-way, the program would have to be distributed on separate systems *on segregated networks*, and I took a deep breath and tried to meet him half way, he put held up his finger to silence me. He turned to the whiteboard and wrote the word NEGOTIATION on it. Then he turned back to me and said, "This is NOT THAT. I am the manager. I do not negotiate."

      This guy doesn't know what he's doing. Any third year CS/CIS student can tell you that the only way you can be sure to get a systems development project done on time and on budget is to get ALL the requirements down before anyone writes the spec document, and well before anyone writes a SINGLE line of code. Otherwise, your project is most assuredly going to be wildly off schedule and cost way more than the budget.

      If I told you to write a quick- & dirty ANSI C compiler for some platform that needed one (and you couldn't use gcc for licensing reasons) for some reason, and then one month before the deadline I told you that oh, BTW, it has to compile C++, C#, and Objective C code too, you'd probably tell me that you had to rewrite at least half the code.

      That's because you started with the basic assumption that you were writing only an ANSI C compiler, and therefore didn't plan on any other languages in the interests of getting the thing done as quickly as possible.

      You know this, I know this, but it's clear your boss doesn't have a clue, and therefore shouldn't be managing professional software developers. I think you don't need to be a programmer to manage programmers, but you DO have to have a grounding the basic concept of programming.

    12. Re:Only bad managers demand the impossible by Grab · · Score: 3, Interesting

      That's the thing - we don't have to suffer. We should know the technology well enough to ensure we can keep our asses covered.

      Of course, there's no need to be defensive unless your management really are a bunch of unscrupulous weasels! :-) If your managers are good (as mine are at my current job) then there's no need.

      My current place is pretty much a classic *good* example. Medium-size company (200-250 employees), flat management structure. You can trust the managers, right up to board level, not to stiff the employees - many of them have worked up from engineering positions so they know the score, and if you say "the customer's wrong, it'll actually take this long" then they'll fight your corner as far as it takes. And it gets real loyalty and real benefits for the company - we'll work longer hours and put ourselves out to meet a release (up to a limit, of course! ;-) bcos we take pride in what we do. I know I could move to a job 20 miles down the road for 5-10K more, but frankly I don't want to.

      Grab.

    13. Re:Only bad managers demand the impossible by MrResistor · · Score: 3

      I think you don't need to be a programmer to manage programmers, but you DO have to have a grounding the basic concept of programming.

      A grounding in the basic concepts of management would suffice here. This guy isn't a manager, he's a control freak whose only concern is his authority, and who doesn't give a rats ass about the actual project.

      --
      Under capitalism man exploits man. Under communism it's the other way around.
    14. Re:Only bad managers demand the impossible by mikemulvaney · · Score: 2

      You definately have something to lose: a recommendation. What happens when you get fired and need to get a new job?

      Interviewer: "You have been working at XXX for the last 3 years? Can I call someone there for a recommendtaion?"

      A: "No, my manager was an asshole and I burned all my bridges back there."

      Interviewer: "We'll be in touch."

      It might be really fun to go out in a blaze of glory, but most of the time it is not worth it. Now if you work at a smaller place, or have a lot of equity and actually care about the company, then it might make sense to go over your manager's head and try to get him fired. But most of the time it is easier to just find a new company, says I.

      -Mike

    15. Re:Only bad managers demand the impossible by Skapare · · Score: 2

      From a technical point of view, reaching the moon was not an impossible task at all. But it did require resources that the techies of the day would not have been able to get on their own, had some manager given them that directive. That was definitely a project that required not just gung-ho management, but also gung-ho politicians and gung-ho citizens.

      Now if only we could get President Bush to issue the special message that we need to have a national last-mile infrastructure to get 1.5 mbps to 99% of urban and 49% of rural locations by 2007, and 100 mbps to 95% of urban locations by 2012. Those are not unrealistic goals at all. And the best part is not only is this not impossible from a techie point of view, but the technology already exists. The issue is the commitment to deployment.

      --
      now we need to go OSS in diesel cars
  10. Re:Personality Check by mccalli · · Score: 2
    (b) Outdated technical experience.
    ...Category (b) project managers tend to be dangerous because they have a superficial understanding of what you're doing and (1) can't understand why it could be hard, or (2) can't understand why you need to use all these new-fangled techniques like object-oriented programming and refactoring.

    Have you considered that you might not actually need to use all these 'new-fangled techniques'? And that your out-dated project manager might know that, since they have experience of doing similar tasks without the need for those techniques?

    Beware the CV-driven project (or resume-driven project, to use the American form). It has every wonderful technique under the sun attached to it, with the latest and most exciting tools.

    Almost always fails. Almost always ends up being rewritten at the last minute, dropping lots of the high-flying ideas and going back to more tried-and-trusted techniques. Worse, it normally has the older techniques shoved in under a superficial wrapper which is used to say that they're actually implemented with the wonderfully new techniques.

    Don't write off experience. Many project managers are rubbish, many have outdated field knowledge, but outdated field knowledge does not necessarily equate with rubbish project management.

    Cheers,
    Ian

  11. Eject, eject, eject by vinsci · · Score: 4, Informative

    You're on what's called a death march project. (See AntiPatterns, chapter 7, Software Project Management AntiPatterns).

    Never work with a project manager who hasn't been a developer himself. Find a better employer - there's no way you can really succeed where you are now. Your projects will fail, be late, overrun budget, be of sub-standard quality, all of which are things that will ultimately reflect on your CV's. Naturally, any smart people in your projects all know this and work morale will erode.

    Suggested reading

    • AntiPatterns. Refactoring Software, Architectures, and Projects in Crisis. William J Brown et al. Wiley 1998. ISBN 0-471-19713-0.
    • The Mythical Man-Month. Anniverary edition with four new chapters. Frederick P Brooks, Jr. Addison-Wesley 1995. ISBN 0-201-83595-9.
    • Software Project Survival Guide. Steve McConnell. Microsoft Press 1998. ISBN 1-57231-621-7

    Me? Got 20 years in this business. Lot's of projects.

    If you can't find a better employer, become a project manager yourself, it's not rocket science. Read up, take a PM course, do it the way it should be done.

    --

    Trusted Computing FAQ | Free Dawit Isaak!
    1. Re:Eject, eject, eject by robathome · · Score: 2, Insightful

      Never work with a project manager who hasn't been a developer himself.

      If one were to follow that advice, one would be in a constant search for employment in today's world. The fact is that the vast majority of Project Managers are business grads who have little, if any, technical knowledge. Their responsibilities are to develop the business cases and ensure that the product meets their needs.

      The problem arises when one of two situations occurs: the project manager wants to make technical decisions, or the developer refuses to take the business case into account. As a systems engineer and product developer, I see both of these frequently, and the key to resolving them is tact. In a development role, I always try to keep technical scope and specifications under control. I also consult with the PM to ensure that I understand the business need, so that I may prioritize development efforts. Too often, developers feel the need to do what they consider the "Right Way" or "elegant", and completely miss the mark on what the end user wants.

      become a project manager yourself, it's not rocket science.

      Yes, sometimes you do need to think like a manager. There will be times when expectations are totally unrealistic. Then, your own management skills must kick in. Negotiate priorities, flex timelines, get more resources allocated. If the parameters are completely bogus, you need to be able to not just point out what won't work, but to offer workable alternatives in order to achieve the desired end result. If there's no budging on any of these criteria, then perhaps you're in a bad situation. However, to dismiss every PM out-of-hand because they haven't been in the trenches as a coder or engineer only sets one up for failure.

      --

      At 3 A.M. you can see people's auras; at five you can see their contrails...
    2. Re:Eject, eject, eject by WNight · · Score: 3, Informative

      Yes. Managers don't need to be experts in the things they're managing but they really need some experience in it.

      A building manager who'd never hammered a nail or hung gyprock wouldn't understand the consequences of their decisions on the people who have to do it. They can bluff their way through by having a nose for bullshit - trying to guess if they're getting the full truth or not, but this is just guesswork.

      In a programming example. Many companies have a policy that all programming must be done in one language, usually C or C++. If your manager has never programmed he won't know how much savings you'll get from writing a text parsing tool in Perl or Python over C, for instance. So they're unlikely to relax the rule. A manager who'd programmed would understand that every language has its strengths and that by letting one technical violation slip, they're saving a ton of time.

      This is where trying to read the employees fits in. You try to guess if the programmer is serious, or if they just like language X more than language Y and are trying to let you program in the language of the week or are serious that it'll pay off.

    3. Re:Eject, eject, eject by Xtifr · · Score: 2

      Never work with a project manager who hasn't been a developer himself.

      I've got 20+ years in the biz too, and I have to STRONGLY disagree with this! The WORST project managers I've worked with have all been former (or even current) developers. The best have been about half-and-half. Being a good project manager involves (among other things) social skills, something many techies lack. A good project manager can always get good technical advice from her team (assuming she's got a halfway decent team). A bad manager may well force everyone to write device drivers in COBOL, simply because he has 20 years of experience with COBOL.

      Techies often get promoted/moved to management because of their technical skills, and they may or may not prove to have management skills once there. Non-techies in technical management are more likely to have to have to shown other skills -- sometimes including actual management skills -- in order to get that technical management job. Thus, in my experience and opinion, your odds of getting a good manager are slightly higher if your manager is not a techie. Unfortunately, this is only a slight tendency; about as far from a reliable guide as you can find. The world is indeed full of PHB's.

      I will say that if I'm going to have bad management, I'd rather have it be technically knowledgeable bad management. That way, it's a little more likely that the project will eventually limp along to something resembling success. But I've seen amazing results from good management, and I'd much rather have that. Unfortunately, good management is all-too rare.

    4. Re:Eject, eject, eject by Xtifr · · Score: 2

      No, no, By "half-and-half" I meant that about half of them (the best) have had a technical background, and about half have not.

  12. Managers Manage by Zapdos · · Score: 2

    Supervisors supervise. Most companies are currently deploying the managed type of internal structure, with the theory that a manager can manage anything. Fewer companies are using the supervised type of internal structure. Both methods have their pro and cons. But in the long run a supervised company will have fewer employees with higher salaries, but it will cost less to operate.

  13. Project Managers don't need to be techies... by PinglePongle · · Score: 5, Insightful

    Until recently, I was the development manager at a fairly large internet company; we had project managers who knew very little about software development, database design or how to run software projects. Do you know why ? because that was my job.

    Whatever you may think, technology is not the most important part of the project - delivering what the business wants and making the right trade-offs to get that done is what matters. The intellectual purity of our great code is wonderful, but who cares if it gets delivered 6 months after it's needed ?

    The project manager's job is to work out what needs to get built and by when; they need to get all the external dependencies sorted out, ensure the requirements are either known or the person(s) who controls those requirements is available when required, get the money and resources sorted out, and work with a techie on how to get the deliverables built in time.

    I was that techie - and it worked pretty well. The project manager asks for stuff by a certain date, I work with the rest of the team to see what we'd need to do to make that happen, I negotiate with the PM on what is and is not in scope, and get the techies to start with whatever needs to happen to get the project done.

    Every couple of days, I sit down with the Project Manager to agree out where we are, re-negotiate dates/resources etc. if required, assess new requirements, maybe work out in more detail what the plan for the next phase looks like. If we have to cut corners - and this does happen, coz we don't live in a perfect world - I work with the developers to see what we can cut that will have the least effect on the quality - the PM doesn't make that call, I do.

    Project Management requires skills I don't have - I don't understand the commercial pressures on the company, I don't understand the legal framework we're working in, I don't have the patience to build and update Gantt charts, I don't enjoy endless meetings or chasing people for every little detail of their deliverabes. The project managers know this - they don't think any less of me, just as I respect the fact they couldn't design a database schema to save their lives.

    So, I would suggest trying to form a good working relationship with your project manager by trying to understand what they do for a living, understand that there is more to a project than the technical deliverables, learn to speak their language, and offer alternatives when they ask for the impossible.

    The attitude of most of the posts in this subject has been "huh, we're 200 times smarter than those idiots running the project, they're so stupid they couldn't blah blah blah". Hey, if you're so smart, it's your job to use that intellgence to move the project forward, not whine about how what a bad job everyone else is doing.

    --
    It's all very well in practice, but it will never work in theory.
    1. Re:Project Managers don't need to be techies... by @madeus · · Score: 2

      Asserting that business requirements are more important over technical merits get's you sub standard solutions that people will hate to use and will waste thousands of man hours being unhappy and being unproductive when the technology could be making their lives easier.

      New methodologies are not invented for fun. They are invented be cause they make things better, for developers, users and business.

      Yes, you can sell poor quality software or technology products for a short period of time and make money, but so will selling drugs, doesn't make it ethical or help make the world a better place. Discounting new technologies and methodlogies is also foolish and bad business sense if a PM has no idea why they are being used in the first place.

      The successful way to make good products that you can feel proud of, people will like and that you can sell is by have a wider world view point that does not revolve around money or technology but people and society (and how you can improve their lives *through* business and technology).

      Clearly business is not more important than technology, unless business is your goal. Which is worrying, because it should revolve around people. Business is a way to encorage development in society and technology, it is not a goal in itself.

      It's possible to make money from good products and good practice, a good example would be OmniGroup who have been doing this for many years. They are small but sucessful and make both some free and some commercial software of very high quality and by and large everybody really likes them. I have a couple of peices of software from them, and it's the only commercial software I use day to day.

    2. Re:Project Managers don't need to be techies... by @madeus · · Score: 2

      Your description of business is better suited to a communist society than a capitalist one.

      Unlike the US my society (UK / Europe) is a socialist one, and that doesn't just reflect our currently elected poltical parties. By American political standards about 80-90% of all Europeans are socialists.

      I consider myself a left leaning liberal, but our right wing parties (the UK's Conservative Party or France's RPR headed by Jacques Chirac) are quite far left of even left wing mainstream parties in the states.

      In Europe as whole, like free heathcare, free higher education, and we don't mind paying significantly higher taxes than US citizens in order to pay for public services, in fact people vote explicitly to retain these things.

      So yes, my society is more socialist, and we like it that way and putting people before business is just common sense to us.

    3. Re:Project Managers don't need to be techies... by Cederic · · Score: 2


      >> Project Management requires skills I don't have - I don't understand the commercial pressures on the company, I don't understand the legal framework we're working in, I don't have the patience to build and update Gantt charts, I don't enjoy endless meetings or chasing people for every little detail of their deliverabes.

      I'm a techie, and I disagree with you on these points.

      I consider it important to know the commercial pressures on the company - providing an IT perspective on the business initiative behind the project can help the business clarify their needs, suggest a simpler solution, and ensure the delivered system does what is needed.

      It is essential to know the legal framework we work in - I've refused to implement code that would be illegal; after consulting with the legal department the customer changed their requirements

      I accept that meetings with customers are necessary to understand what they want (rather than what they ask for). Communication is a cornerstone of good software engineering.

      Although I don't chase people for every piece of their deliverables, I do talk to the customers to understand what the deliverables they expect are, and talk to the other developers to understand what they are intending to deliver. By doing this I achieve many things
      - any requirements gaps are spotted
      - any activities not on the project plan can be communicated to the project manager (who can then resource and cost the project appropriately)
      - I can be certain the developers know what they are doing, or work with them and the customer if they are suffering uncertainty or lack of communication

      All of these things could be done by a project manager, but don't have to be. As a technical person I can bring a perspective to each of these things that a project manager (with their different skillset) may not. And if the project manager is highly technical and is doing these things anyway, my life becomes easier and I focus more strongly on creating my own deliverables, rather than helping the rest of the team with theirs.

      ~Cederic

  14. It's not as easy as it looks by James+Youngman · · Score: 5, Informative
    There's much more to successful project management than there appears, particularly when the PM is also managing the relationship with an external client. It's the PM's job to make the client happy and (usually) deliver a profit. In a software context, this normally means delivering some software that works (see the Properly Testing Your Code thread).

    As a technical person, skills that you will need to gain in order to be a successful PM will include

    • Understanding the business context and business drivers
    • Managing client relationships (even for internal clients)
    • Estimating and planning skills
    • Tracking progress against plan - and taking appropriate action (pay attention to this one!)
    • An understanding of what timescales are realistic. For example, is it realistic to estimate design:code:test in the ratio 3:2:1? (answer: no).
    • Understand that you need to make it possible for the client to change their mind half-way through
    • Delegation skills (you can't do it all yourself, you know!) and motivational skills (i.e. understand the kinds of things you can / can't ask of people).
    • Risk analysis/mitigation
    • Personal organisation and time management
    • (In some shops) Project accounting skills
    Also, don't underestimate how much work this is. If you are team leading (i.e. working for a PM) then you can expect to lead a team of up to 8 and have the interaction with those staff and the PM take up 100% of your time (i.e. no time left for coding anything yourself). If you are a PM, you won't be able to directly supervise that many staff, because you have the added responsibility of steering the ship. Techies-turned-PMs are frequently tempted to take on the odd technical task - but resign yourself to the fact that you will have to delegate it to one of your staff in order for it to get done on time.

    If you are having difficulty communicating the impossibility of a task, consider making a weekly/monthly report document that shows progress against plan and the outstanding issues and risks. Many of these will not change from week to week, but putting them there provides one place where (s)he can refer to them.

    If something is impossible, then demonstrate in the report why it is impossible, and suggest an alternative. When presenting a problem, your many many times more likely to be successful in getting things changed if you also suggest a workable and realistic solution.

    1. Re:It's not as easy as it looks by TopShelf · · Score: 2
      Understand that you need to make it possible for the client to change their mind half-way through

      That's a fantastic point - all too often when a Project Manager rises from the technical ranks, they don't understand the changing needs of business. After all, the whole point of a project is to meet a business need, not just deliver exactly what was specified at the beginning of the venture. I'm currently dealing with a PM who is a former programmer, and she looks at the project plan as a rigid structure (i.e., if one tasks slips by a day, the whole project slips by a day). The best project managers combine an in-depth understanding of the business with rock-solid organizational skills, and a heap o' "people skills" to boot, which is required to bring a variety of interests together to accomplish a larger goal.

      --
      Stop by my site where I write about ERP systems & more
  15. Who writes the specifications? by geoswan · · Score: 5, Interesting
    "...the project managers have no programming experience of any sort. I'm of the opinion that project managers should understand the projects... As a result we are routinely told to skip testing or to implement the impossible, with an emphasis on how things look rather than how well things actually work. Has anyone else found the barrier to project management is their technical knowledge. How did you get past it?"

    If your "managers" have no technical experience who writes the specifications that you aim to implement?

    If they present you with some kind of brief, insufficient description of the project, you need to write out something more specific, that you can actually work too. You learned, as I learned, in cs 101, that you shouldn't start working on a problem until it has been clearly defined. You learned, as I learned, that if you start programming without a clear goal in mind, you won't know when you "finished".

    So you write this description. Get your fellow team members, if you have any, on side. Then take it to your manager, and get them to read it, and sign off on it. If their original design has some impossible "feature" in it, maybe this is where you explain, in writing, where it is impossible. If it isn't really impossible, just very difficult, and in your technical opinion, of marginal utility, this is where you present your bosses with an honest prediction of the cost of their pet feature. If you explain to them that their pet feature will make the project take twice as long, or three times as long, will they really still want you to do it? Or will they say, "Oh shit, well in that case forget it."

    If they really don't know what they are doing, then they will probably fear a paper trail that documents that you warned them the pet feature would double the time to implement.

    If your boss is an asshole, and says something like, "If you can't do it I will get someone who can!" Or, "If you can't do it within this time constraint I will get someone who can!" Call his or her bluff. If their pet feature really is impossible to implement, they won't find anyone else who can do it.

    Revise your document to reflect the choices they made. Then work to this document. If they wanted you to implement their pet feature, even though you explained it would double the time to implement, you have protected yourself against the complaint that you are behind schedule. Document your work. Each time you complete one of the milestones in your original memo, refer back to your memo.

    So, are you doing tasks which are really the job of the technical manager? Without getting a corresponding raise? Well, yes. But you did, after all, want to move into management, didn't you?

    If you do a good job implementing what you promised in your memo will they reward you with a promotion, a raise?

    I don't know. But you have acted with integrity.

    If it comes time for your annual performance review, is this the time to explain that you have already been shouldering responsibilities that are really management responsibilities?

    1. Re:Who writes the specifications? by deblau · · Score: 3, Informative
      If you explain to them that their pet feature will make the project take twice as long, or three times as long, will they really still want you to do it? Or will they say, "Oh shit, well in that case forget it."
      They'll say, "Find a way to make it work, on time and within budget, and laws of physics be damned". This is the primary problem with most bad PMs; they don't listen. OTOH, this is also the primary problem with most bad (i.e., non-business-knowledgable) coders. In my experience, the proper action is to communicate with the PM, find out why the feature is so important, ask if it's OK that 5 other features won't get done for this one, etc. It may be that the PM isn't clearly communicating, or it may be that the coder doesn't want to do boring work. Which do you think is the case?
      If they really don't know what they are doing, then they will probably fear a paper trail that documents that you warned them the pet feature would double the time to implement.
      You assume they care about the product, and that they have ethics. No, what'll probably happen is they'll either bury the report or play politics. Remember, like everthing else, shit flows downhill.
      If your boss is an asshole, and says something like, "If you can't do it I will get someone who can!" Or, "If you can't do it within this time constraint I will get someone who can!" Call his or her bluff.
      Yeah, that'll make you real popular. Let's play dick-swinging, chest-beating games with our boss. They'll love you after you prove them an idiot to everyone in the office and shove it in their face! Heaven forbid, maybe your boss is having a family crisis, find out what is going on before jumping to conclusions. If they're being unreasonable, then there are things you can do (talk to HR, let them know you're having problems working, see if there's an ombuds, use an employee feedback mechanism...)
      --
      This post expresses my opinion, not that of my employer. And yes, IAAL.
  16. Been there, done that... by Zocalo · · Score: 2
    You say you want to move into project management, so if you haven't done so already, get yourself onto a project management course or three. Apply what you are taught where appropriate, whenever it's appropriate so you have evidence that you know what you are doing.

    Then, the next time you are in one of those post mortems because your useless PM fscked up, tear his/her project apart in front of some senior managers. Point out the flaws. Suggest how things could have been done better and how to get things back on track. Have purdy gant and pert charts and so on to back it all up. Know the facts and figures. Don't directly blame the PM, but leave the implication hanging. For bonus points walk the walk after talking the talk and deliver what you suggested.

    Do it right and you'll get a fat bonus, pay rise, satisifaction of an incompetent leaving your life and kudos from your colleagues.

    --
    UNIX? They're not even circumcised! Savages!
  17. In one word: don't. by johnjaydk · · Score: 2, Interesting

    Based on my experience I can't understand why anybody would want to become a project manager. It's a rotten thankless job and you've got zero job security. You're basically being squeezed between management, who hands you an impossible job and to few resources to do it and the techies who cant deliver the goods fast enough. While this goes on you have to do a lot of political infighting to steal more resources for your project, prevent other projects from stealing your resource's and competing with the other project managers to look good in order to still have a job in six months. Being a technical lead is a better job by far (been there) but only if you work with a pm who is actually listening to you otherwise you are a perfect candidate for a scapegoat... The real trick is to focus very hard on requirements even if this means that analysis drags on for ever and the pm is pesting you to get it over with. Make a document that can stand up in court and don't accept any changes without extra resources or a reduction in other functionality. Make a formal procedure for these changes (they will happen). And when the shit hits the fan: ALWAYS SIDE WITH THE TECHIES. The techies are mostly honest and rarely play political games. The pm's are always up to something and ready so sacrifice you in a heartbeat if it helps them in their games.

    --
    TCAP-Abort
  18. ... And the wisdom to know the difference by debrain · · Score: 2

    Unless you own the company, let them make their mistakes. Put in your advice, and if they take it and benefit, so be it, but otherwise, you can - and under certain circumstances should - move on at their loss. It's not your company to run, and if the company fails, it's not your fault. Constructively critise, but don't undermine the managers opinions.

    Don't blame the mangers, either - someone put them there, and I have seen poor management come from resentment towards techies as much as incompetence. They are people, get to know them, and you may find that they agree with you in assessing their own shortcomings. From that admission you have options - management need not imply dictation.

    Do your personal due diligence, but if the owners don't ask for your help, don't go out of your way to offer it. Save your energy for bigger stakes, IMHO. ("Owners" is vague, I know, but this is slashdot, and I'm being sweepingly vague ;) )

  19. ACHTUNG! Developers - BE WARNED!!! by heretic108 · · Score: 4, Interesting

    I worked for the Australian subsidiary of Wang Labs, at the time when Wang was the #2 computer company in Australia.

    Their R&D department was surging from strength to strength, until the Director made the decision to recruit staff from the sales support team to work as project managers.

    Never in my whole computing career was I immersed into such a political cesspit. These posturing pretenders sold out us R&D engineers to the most ridiculously stupid deadlines and functional requirements, skipping testing, fudging demos, and crafting a clever spin which transferred the perceived blame to the engineers for failure to deliver.

    After months of being unable to focus on a project, due to constantly moving goalposts and political bitching, I resigned. One week later, most R&D staff were laid off, and a couple of years later, Wang Labs went Chapter 11.

    In my 2 jobs following, the project managers were veteran engineers, who played an active and respected part in all aspects of the projects, from design through to maintenance. Any non-technical project managers were routinely beaten into submission by technical management. Took me ages to get over the shock. But these companies were notorious in the industry for being able to deliver more, faster, better and cheaper than their bloated, suit-driven rivals.

    For any developer going through interviews, I advise you to ask for some time with one or more project managers, get into technical conversation and see what they know. If they start bullshitting and bluffing - decline the job politely and look forward to the interview with the next company.

    Otherwise, your career may suffer unrecoverable damage. Every month you spend in the industry - you are accountable for that time, and hsve to justify it when seeking your next job. Don't be seduced by slightly higher pay packets with the suit-driven outfits - it'll cost you in the long run.

    --
    -- In the beginning was the WORD, and the WORD was UNSIGNED, and the main(){} was without form and void...
  20. corporate culture by devonbowen · · Score: 2, Interesting

    I think the biggest challenge you face is changing the corporate culture. I was in a similiar situation a while back and moved into project management. And, you know, it just didn't matter much because the requests for the impossible still kept coming from above. The only difference was that I was responsible for delivering them. A company needs to have a culture of being realistic and that has to come from the top. Without that, I think it's unlikely you're going to change much in that respect.

    On the other hand, the one thing you can change by becoming a project manager is making the lives of the people under you better. You can deflect the blame a bit more and give people the breaks and recognition they deserve. And that is certainly worth something.

    Devon

  21. From the trenches... by StudMuffin · · Score: 2

    Has anyone else found the barrier to project management is their technical knowledge?

    I might counter that you have this backwards. As a long-time project manager with a technical background, my feeling is that the barrier to technical knowledge is project management. :-) I really WANT to code or design, but status meetings and budget reviews keep getting in the way. Sigh.

    In all seriousness, though, work with your current project manager. If they are not technical, then they are glossing over things because they don't understand the importance. Testing is a wee bit critical, and unless they are pulling delivery dates completely out of their backsides with no input from you it is partially your fault for the schedules being pushed so hard. Your job is, quite frankly, to manage your project manager. "Manage up". Tell him/her how things are going, exactly, and make delivery scedules completely clear. DO NOT HIDE ANYTHING! The secret to a good relationship with a project manager is information flow. The more s/he knows about exactly what is going on, the more likely you are to be in agreement with schedules. Your PM is getting pressure from upper management to delivery products on time and under budget, and unless s/he knows about schedule slips way ahead of time, or problems with the design, etc, the less time s/he will have to prepare the executives for a change. You are not working in a vaccuum! Your PM is your best (and often ONLY) advocate to the executives, and you need to make them work for you. Believe it or not, I prefer it when I know all the good AND bad things going on so I can protect my team from unreasonable pressure from above and get them the resources they need to finish the work. If I don't know, I can't prepare the groundwork.

    If you want to move into project management, take on more and more of the role yourself. Gather status reports ahead of time and consolidate them into a summary for your PM. Ask to assist in budget preparations or schedule creation. Make it clear that you are there to help, not to hinder, and make it clear that you want to move into that role. Show the merit of a technical person acting in a PM capacity.

    Good luck. And think seriously about it - if you love technical work, you might want to consider staying there, as PM work is NOT technical and you might feel that you have made a big mistake at some point.

    --
    Weaseling out of things is important to learn. It's what separates us from the animals... except the weasel. -
  22. Nope by AppyPappy · · Score: 4, Insightful

    Programming skills and management skills are mutually-exclusive. I've always found project managers to be hired as programmers who were later found to be lousy programmers. I remember working with one guy who was hired because of a great resume. His first words when he came in the door were "I'm really not technical". He became a project manager because, although he wasn't technical, he gave great face.

    A project manager is basically a eunuch acting as a catcher in a shitball game.

    --

    If you aren't part of the solution, there is good money to be made prolonging the problem

    1. Re:Nope by Fross · · Score: 3, Funny

      He became a project manager because, although he wasn't technical, he gave great face.

      Is this some euphenism for oral sex I'm not familiar with?

    2. Re:Nope by the+eric+conspiracy · · Score: 3, Insightful

      Programming skills and management skills are mutually-exclusive.

      I don't agree with that at all - I think rather that the skill sets are nearly independent - you can be a perfectly good project manager with no programming skills, however being a good programmer doesn't mean that you would be a bad manager.

      There are plenty of examples in industry of good programmers who also have turned out to be excellent managers. Bill Gates is the most famous case.

    3. Re:Nope by AppyPappy · · Score: 2

      He looked pretty and knew how to smile at the right people. He was at the office late and on weekends doing nothing but being there. He was a "fluffy". All fluff and no substance. A management plush toy.

      When we got called in for problems, he would insist on coming in and patting our hands while we worked. Boy howdy, that was sure helpful. But he could always say he was there.

      He's a headhunter now. Perfect!

      --

      If you aren't part of the solution, there is good money to be made prolonging the problem

  23. thank god for my boss by hrieke · · Score: 2

    He was a developer in a former life, so he understands what I have to do to get the job done and supports me 100%. Hell, he's kept the heat off of me when a project went over the time frame.

    As your boss this question:
    Would they rather have the correct answer in a day or the wrong answer right now? Of course they want the correct answer, and that's how you then sell them on getting a technical manager. Tell them that while you test as best as you can, you are focusing on the wrong issues which could allow for bugs which will lead to problems and wrong answers. Of course your next question to /. is how to interview a technical manager.

    --
    III.IIVIVIXIIVIVIIIVVIIIIXVIIIXIIIIIIIIVIIIIVVIIIV IIVIIIIIIVIII...
  24. The key lies elsewhere in your organisation by Orangecutter · · Score: 2, Interesting

    I understand your frustration that you see things going badly and want to do a better job, but knowing the details of developers' work is not the answer.

    The best project manager I ever worked with knew nothing about the details. It was in the early days of the Web, building a very complex Web site for a client, and he barely knew how to write HTML. But here's why he was a great PM: He trusted his team, including the technical lead, he understood the people and knew how to get them to work well together, and he knew the importance of high level issues like testing, clear specifications and change control. He was a good *manager*.

    And here's another key to success: strong sales people. Good sales people will get the right cost estimates from the developers/consultants, and then won't buckle under pressure when they present those to the client. Then you actually have time to do the testing which was factored into the proposal.

    I was a very technical project manager, not quite a developer, but I like to think I understood the tech details very well and got on well with my various teams. But I would regularly get bogged down in the details simply because I enjoyed them, and as a result would spend less time on the strategic issues like persuading the client that they should reconsider their latest idea. I think I did well, but I know I could have done better.

    My advice to you is this: talk to your project managers and sales people, and get them to understand the importance of the various stages of work. Show them that a slip early on can lead to more costly slips later. Advise them, and get them to trust you, so that when you say "We need to spend two weeks testing" they make sure you get that two weeks and don't think "Oh, but I'm sure we can get away with a couple of days".

    As for progress in your career, project management is a lot about people and little about knowing obscure technical details. If it's people you want to focus on, then great. Otherwise perhaps you should aim for being a senior architect. And then your company can charge more for your time, and they'll have even more budget to spend on testing!

  25. Sounds reasonable... by JaredOfEuropa · · Score: 2

    In my experience project managers like to have a technical team member whom they can trust. A sparring partner (might as well stick with PM lingo) who can be trusted to see beyond the technical side of the project and understands the importance of budgets, client needs and so on. Project managers are like most professionals; they don't necessarily want an easy job, but they want to be succesful.

    Don't reject your PMs bollocksy timelines out of hand, but work with him to show what the result of following that timeline would bring. If your PM thinks to skip testing of the product, it's best not to act like the haughty technical prima donna who refuses to release anything untested. Instead, talk about risks and alternatives. If you know of any past famous projects that failed for poor planning, show him what he is getting into.

    Do this well, and PMs will start to know you for someone who helps them rather than someone who'll dig his heels in. Perhaps at some point you'll be asked to be technical manager for alarger project. That's the perfect job for those who are thinking about a management position but not ready to give up on technology.

    --
    If construction was anything like programming, an incorrectly fitted lock would bring down the entire building...
  26. Those who can do, those who cannot (should) ask by beswicks · · Score: 2, Interesting

    I used to work for a IT company with a creative vent, as a result they hired project managers with ZERO understanding of the tech side, and knew more about making things purty.

    We got by because the project managers knew that they didn't know anything, so they would ask about everything, but that did put a major strain on the tech department as we ended up being consulted about EVERYTHING.

    I am a strong believer that project managers should understand the area that the project is in, they don't have to be a guru but it makes sense that they should at least understand whats going on.

    However I also know that a project manager needs to understand more than 'joe programmer', as business(tm) (as in harvard business school) comes more into there jobs. And of corse they should be able to buffer the programmers from the clients, I know a lot of hackers who cannot comunicate with each other, let alone a suit.

    c.

  27. How to NOT be a manager by standards · · Score: 4, Insightful

    > I may meet resistance from the current project
    > managers - many of them have been hired with no
    > previous experience of anything.

    Really? Wow, you work in an organization where they hire managers without experience, but they also hire quality programmers? Hum, sounds fishy.

    > Previous suggestions to senior management
    > that myself and other developers would feel
    > better with a technical person running projects
    > have been dismissed.

    As someone who hasn't actually managed a project, you're in no position to assess the situation.

    Clearly you can't see or understand your colleauges' contributions or experience. Therefore, you are likely in no position to be a project manager.

    You get to be a project manager by proving yourself, not by telling your management that you're better than others.

    > Has anyone else found the barrier to project
    > management is their technical knowledge.
    > How did you get past it?

    No, the barrier is being an egotistical programmers who thinks that they're better than non-technical people. That's the real barrier.

    I'm technical. But I appreciate quality management, and I understand that they have critical value to the projects we pursue.

    I think that's a start. But I also think you're many years away from being a good project manager. Given your attitude, I'd hate to work with you.

    1. Re:How to NOT be a manager by Cederic · · Score: 2

      Disregarding your aggressive personal attack, some points you maybe haven't considered :

      Many technical people (myself included) have had to take on various elements of project management on various projects, and/or managed entire projects themselves.

      They also quite often turn down 'opportunities' to become project managers, as they enjoy their current role, or wish to follow a technical career path.

      So just because they are technical it would be foolish to assume they lack project management skills.

      On all my projects for the past three years, I have guided my project managers, giving them feedback, prompting them to do the things that they should be doing, ensuring that things they overlook don't get forgotten, and going straight to a customer if the project manager is either incapable or too busy to give me the responses I need.

      I'm not suggesting the project managers are incompetant - just that I am able to do half their job for them, and usually do. However, I am still a technical person and I'll still refuse any project management role offered to me.

      Suggesting that people like me are 'egotistical programmers who thinks [sic] that they're better than non-technical people' is demeaning and inaccurate. I have a skillset that complements that of a good project manager, and although I perhaps lack certain project management skills I don't lack the ability to identify them in others.

      ~Cederic

    2. Re:How to NOT be a manager by clearcache · · Score: 2

      I agree. The real barrier to working with non-technical people as project managers is the lack of communication - not their lack of technical understanding. And, I'm sorry guys, but the burden for effective communication falls equally on all members of a project. As technical people, we need to know how to translate our knowledge and experience into statements that our project managers can grasp.

      I, too, work for a medium sized company with non-technical people as project directors. We have had tremendous success with this arrangement...and we have had tremendous failures. Communication has almost always been the cause of success or failure. You need to learn how to manage your project managers' expectations of the technology, its implementation, and your time. The only way to do this is through effective communication.

      I do feel that on very LARGE projects, a technical project manager working hand-in-hand with a non-technical project manager is a necessity...but those two people perform two completely different tasks. On smaller projects, that person would be overkill...and would likely be doing much of what you - as a programmer - should be doing.

    3. Re:How to NOT be a manager by PapaZit · · Score: 2

      Amen.

      I used to have a job where management was incredibly clueless. We'd joke about trading our boss for the PHB from Dilbert because it'd be a step up. Eventually, this frustrated me enough that I left and found a job elsewhere.

      At the new job, I had a new manager. He was a decent manager, and I accomplished a lot more than I had before. Clearly, I was vindicated: without the clueless manager, I was able to do more.

      Then, due to a reorganization, I ended up working for a truly amazing manager. The guy really wanted to be sure that I was doing work that I found important and interesting. He's constantly asking around for ways that he can improve. I learned something pretty quickly: I wasn't the amazing employee that I thought I was. I was just better than some of my clueless coworkers. I learned that because this guy was constantly asking about my goals and what I wanted to get out of the project and the organization. I realized that I really did have a poor understanding of the organizations larger goals. Because of him, I really do feel like I've become more productive and I've gained insight into the big picture. Ironically, thanks to better management, I'm approaching the level of skill that I (incorrectly) thought that I had before.

      --
      Forward, retransmit, or republish anything I say here. Just don't misquote me.
    4. Re:How to NOT be a manager by Vortran · · Score: 2

      I appreciate quality management too. That's why I prefer to be managed by someone who has been in the trenches with the rank and file. The worst managers I have had have been ones who did not understand the work of the people they were managing.

      However, you bring a valid point to the discussion. It's a two-way street. If you cannot explain to a manager (who has the ABILITY to understand) in English what they need to know to make decisions, you can't expect to be managed well. You need to be able to "manage the manager". On the other hand, if your manager is technically inept, no amount of explanation (or pain killers) is going to help.

      Technical people who even WANT to be managers are few and far between. Even rarer, the person who is an adept programmer AND an adept business administrator.

      Programmers tend to be arrogant. That's the nature of the beast. To the extent that Cliff can learn to stifle his arrogance and learn to appreciate the talents and abilities of non-technical people, he'll be a real asset to our industry.

      Vortran (technical guy who does NOT want to be a manager!) out

      --
      Knowledge is like ignorance.. too much can be just as bad as not enough.
    5. Re:How to NOT be a manager by clearcache · · Score: 2

      Well...if the product isn't what the customer wanted, then the blame can fall one of two ways:

      a) Either the customer didn't communicate what they wanted correctly...in which case the programmer bears very little responsibility for the problems. The burden for getting a clear picture of what the client wants rests upon the client and the internal client-liason...generally the sales staff and the project staff. (If the programmer is a client-liason, then they do bear some of the responsibility here.)

      - or -

      b) The client communicated it effectively but the big picture was never fully realized by the TEAM. In this case, the fault lies both in the project manager and the programmer...probably the result of poor communication.

      The problem with the statement "then I have someone to blame if my programming takes longer than I thought, or the product isn't what the customer wanted" is that it sets up a naturally adversarial relationship between project managers and programmers. Everyone needs to take part of the blame when projects fail. The non-technical project manager should be involved in a project deeply enough to understand what stages of development the product is in, understand the implementation of the feature set, and help to plan an appropriate testing/staged release schedule with the programming staff.

      If that's happening, and the project manager and programming staff have a clear idea of what the client needs, then what excuse is there to have a project fail? If the project fails at this point, it's usually a breakdown in the TEAM. What is gained by trying to point a finger at some single person or group...at that point???

      The further problem is...if this isn't realized and communicated at some level by the company...in a "post mortem" dissection of the project's successes and failures...it means the company does not have the necessary mentality required to learn from its mistakes and take steps to prevent history from repeating itself. ...not an environment I would keep myself in for very long.

      Some of the most professionally valuable projects I have been involved in have been ones where we completely dropped the ball...for one reason or another...and then had a constructive meeting after the fact to implement change in process flow. It takes a project that may have lost $ for the company and turns that loss into an experience that should help us make more $ in the future...by streamlining project process flow.

  28. People Skills by Retard+Sevant · · Score: 2, Insightful

    The main reason highly technical people do not get PM jobs, or any high management job for that matter, is becuase people generally do not speak in binary.

    If you can not sell an idea or explain a problem to business management, they are not going to hire you to lead up there technical crew. How would they then understand what the group is doing? EVEN if the PM is a ditz, they at least THINK that they have a handle on the situation. Most technical people I know have people skills that end with video conferencing with their "clan" of Magic players.

    Image is everything in upper management.

  29. Get a new job by Pedrito · · Score: 2

    Sounds to me, from your description, that your company has a bad attitude towards software development. If they're not willing to listen to the developers (and again, from your description, it sounds like this goes above just the project managers), then it's going to be really tough to change the tide.

    I've worked in places where non-technical people were the project managers, and invariably, they were bad project managers. I'm not saying there aren't good ones out there that aren't technical. I just haven't met any of them.

    Not all developers make good project managers, by the same token. I found I wasn't particularly good at it. I'm just not organized enough, and personally, I prefer the development aspect. The one advantage I did have though, was that I listened to the developers, and I understood the issues. I knew what was possible and what wasn't. I knew when developers were being realistic and when they were unrealistic, same for management. Fortunately, I was able to bridge the gap between upper management and the developers pretty well, and I was able to manage the expectations of upper management.

    If your current company is unwilling to bridge that gap, then your situation is probably hopeless, and you may be better served at a company that knows how to develop software properly.

  30. Not Quite by BoBaBrain · · Score: 5, Insightful

    Has anyone else found the barrier to project management is their technical knowledge. How did you get past it?

    Absolutely not. Although I have suffered the problems you mention.
    I have found that these are more often due to poor communication between PM and coder. It's the PM's job to direct the project to a successful completion while keeping an eye on resource allocation. It is the techie's job *clearly* explain the technical restrictions and options.

    If you are relying on one team member to have *all* the necessary skills, then you do not have a real "team".

    --
    I am a Karma Library.
  31. Engineers are NOT Project Managers by Thunderheart · · Score: 3, Insightful

    Whether its IT, Municipal drafting Electrical or whatever, Engineers (regardless of how long they have "managed" projects) are NOT Project Managers. You frustrate the hell out of me. I've been a Professional Project Manager for years and an Amateur computer geek. The thing that always stuck in my craw is the assumption that just because a person knows an Engineering Discipline that they automatically know how to manage projects. Project Management is a complex discipline and to manage projects well takes a solid educational background in that arena. It is a skill set unto itself. Document Controls, managing Gaant charts and schedules and (especially) managing the "people" end of things takes a great deal of effort to excel at. But NOOOOOO, Engineers always assume that because they can conceive a project, they MUST be able to manage it, and it always ends up as a grand jitterbug called, "Crisis Management". Now, don't get me wrong. Its not like I hate engineers. Many of my friends are engineers. I have spent most of my life working in and around engineers. Engineers are not Project Managers. Project Managers are Project Managers Engineers have to concern themselves with managing details. Project Managers have to manage the "big picture". In the end, if a correct perspective was given to the Project Management Profession was given more respect (or even an open minded consideration) a LOT more projects would complete more successfully.

    1. Re:Engineers are NOT Project Managers by markmoss · · Score: 2

      There is one skill that good engineers and good managers share - that's communication. I wonder if part of Welshdave's problem is that he can't explain anything about his work to non-techies. At least, that seems a bit more likely than that no one in management is listening... If you can't explain the technical issues to non-techies, you'd better pray you never get into anything resembling management, because a manager's first job is keeping his superiors informed. And stay away from small companies, or you will have the CEO walking into your cubicle and asking you what the hell is going on - I've spent 15 years in small companies, and being able to answer that in a way even an MBA can understand is absolutely vital unless you're buried in a big enough organization that someone else will answer...

      I'm a hell of a good engineer, I can explain technical issues to non-techies, I understand management issues more than many engineers, and I'm still a terrible manageer. I learned that back in the Air Force, where they kept trying to promote me out of fixing the radars to managing the technicians... I'm so bad at it, that if I was forced into a project management position on a critical project, I'd sell all my company stock before that became "insider trading". ;-)

      Some of Thunderhearts examples are bogus: Gannt charts are just a different sort of flowchart, the biggest challenge isn't handling the chart but understanding the stuff you are entering. An engineer ought to be better at creating the Gannt chart than a technically-challenged manager. But with only the average engineer's people-handling skills, you aren't going to get the resources that chart shows you need from other departments...

      PM's have to understand the way things look from upper management's perspective. Without that, you can neither communicate with them or appreciate their main concerns. Example: we were having problems with the motherboards for a touch-screen voting system. A straight engineering decision would be to shut down the line except for test quantities until everything is perfect. A management decision is to consider that, considering all the other steps after the boards are built (assembling into systems, delivering the systems, training election workers), the first Tuesday in November is already close. Also, we have 50 people working on that line - lay them off, and we won't have half of them when we're ready to start again. So we scrambled to fix the production process as fast as possible, and now we're going back and fixing the earlier production while continuing to crank out the new boards. It costs, but anything else would have crashed critical deadlines.

      PM's have to handle being pulled a dozen different ways at the same time. The customer is calling and needs to be reassured, your boss is calling (ditto), some engineers need a sign-off right now, and others are running off in the wrong direction. I work best when I do one job and get it finished before starting the next one. With the shit my boss has to handle, I'd have a dozen things half done and forget where I was in every one of them...

      OTOH, the theory that a manager only needs to know how to manage is wrong, wrong, wrong. I've been exposed to the pure form of it just once, when I was just starting out as a technician in the air force. SSGT X was a former B-52 tail-gunner who had been grounded for a little heart murmur. So they retrained him as a tech. We were in tech school together, and since I was the closest to him in age and the only other student with children we became friends. Then we arrived at our first duty assignment, and they were short of NCO's. So while I was still in on-the-job training (finding out that 90% of what they taught in tech school was wrong) and officially not supposed to do anything without a trainer watching, SSGT X became my supervisor. He spouted that "You just have to know how to manage" line and proceeded to get into trouble. To his credit, he kept his problems from impacting the workers - but he got so overstressed he totally lost it at home. His wife showed up on our doorstep blubbering something about him going crazy and kicking the cat to death - I'm not sure which of them was crazier by that time, but I called up the chaplain to get me out of the middle immediately!

      If you don't know what you are managing, you are going to screw it up big-time. The PM doesn't have to be an engineer, but does have to understand how engineers work and the requirements and time needed. The two-man management team (PM & technical lead) might be the best choice in many cases.

  32. Read XP Explained by foo(foo(foo(bar))) · · Score: 2, Insightful

    Pick up a copy of Kent Becks' book Extreme Programming Explained: embrace change.
    Where I work, we are in the same situation, both our project managers and sometimes our staff managers have no technical experience.
    I can tell you that technical folk managing projects doesn't work. What this did to us is cause the project managers to do very little, other than sit around and mandadate scope and delivery dates to the technical lead, who has to then force their developers to produce crappy software.
    So, while I don't have a solution, the XP book at least give me hope that there is a better way...

  33. Nothing beats a good PM by hagbard5235 · · Score: 5, Insightful
    I know that there are a lot of rotten PMs out there, but if you ever have the good fortune to work on a project with a good PM you will never willingly work on a project without one again.

    I miss my PM. Her job was basically:

    • Beat up other people to get us the resources we needed to succeed
    • Block outside people from bothering us about things so we could work on the project
    • Keep track of the pedestrian details of the project so that we were free to actually get the work done

    When prototypes for the project were running late, I didn't have to spend endless hours chasing people down and tracking the issues delaying them. My PM did that.

    When the project had slipped 6 weeks, I wasn't the one on the calls getting yelled at and yelling back about the fact that more than 50% of the TYPES of prototypes we needed hadn't even been delivered yet. My PM did that. I was down in the lab working.

    When I had to attend technical calls ( like bug scrubs ) I didn't have to go dig up the bugs being covered so I could review them for the meeting. My PM always met with us 30 minutes prior and went over the list so that we could get things clearly in mind going into the call.

    And when the shit hit the fan, and we were death marching till 2am for weeks on end, my PM was there making sure we got fed ( on the company dime ), and staying late to make sure we did eventually go home and sleep.

    None of this really requires much technical skill on the part of the PM. All it requires is a respect for the team and an understanding that the most effective way to get your project in on time is to support the team. By the middle of the project we ( the technical guys ) where willing to kill ourselves to meet the project objectives for this PM.

  34. I couldn't disagree more... by gustar · · Score: 4, Insightful


    As someone with both extensive technical background and solid leadership and project management skills I can state for a fact that my ability to successfully envision, flesh out (e.g. requirements and design documents), estimate and plan (e.g. develop project schedules and resource estimates which I then translate into MS-project) a project or development effort is inextricably linked to my understanding of that project and its technical underpinnings.

    Over the course of my career I have dealt with legions of formal "project managers", (folks who are pure project managers lacking any technical background) and I have yet to realize any value in my interactions with any of them, beyond the occasional willingness to record meeting minutes.

    To date I have found them to be glorified secretaries, whose primary tactic is to latch on to knowledgeable people and not only drain information but actually get them to perform the real tasks of project management, such as scheduling and resource estimation.

    In addition, many of these folks like to act as middlemen, brokering information and jealously hiding their sources so people must go to them for information. This would not be a terrible thing if they actually understand the project and had the knowledge required to effectively answer questions and communicate the status of the project accurately but that is very rarely (never in my experience) the case.

    In my own experience, I have had a number of project managers assigned to various efforts I was responsible for, ostensibly so I could focus purely on the development effort and on technical leadership. In every case I have spent months working with a non technical project manager, spending 3-4 hrs a day with this person reviewing (creating) the project plan and having to spoon feed information to them (essentially so they could answer questions in meetings) as well making detailed suggestions about how they could overcome some obstacle external to our group that was needed in order for the project to succeed. In the mean time while this significant chunk of my time is being invested into sharpening my puppeteering skills the formal project manager has been horrible miscommunication project requirements and status to other groups.

    So in short order these folks are out and I'm back attending meetings and working with external groups as well internal.

    The primary factor behind the ineffectiveness of these folks is there complete lack of technical background. Successful project management is not just about writing up project plans and throwing dates and times down, its about understand the underlying objectives, as well as the pitfalls and obstacles in the way of those objectives. It's about understanding the project goals thoroughly enough to be able to determine what tasks are required to accomplish the project and making resource estimates that are realistic and effective.

    This understanding and affinity for the project is something formal project managers very rarely have.

  35. Read up on project management by Jeppe+Salvesen · · Score: 2

    Before you apply for project manager, read up on project management. To me, it sounds like the entire company is fundamentally flawed, and becoming more senior will only worsen your day-to-day life. This book will help you figure out if there's hope. Carefully assess the situation before you make a dangerous leap.

    --

    Stop the brainwash

  36. Try Using eXtreme Programming by poiu · · Score: 2, Insightful
    http://directory.google.com/Top/Computers/Programm ing/Methodologies/Object-Oriented/Extreme_Programm ing/

    I have found that an excellent way to get project owners more involved with doing things the right way is to use Extreme Programming

    1) write the tests first (i.e. define the interfaces for the code that is going to be implemented first ... this focuses you to think about design up front)

    2) short iterations - keeps the project in synch with the owners expectations. If an itteration is 2 weeks (my usual cycle), then the owner is always on top of whats going on

    3) continuous integration - everyone must checkin as soon as they've written the code the completes their current task (tasks should never be longer than a day or two). So, if something breaks at most you've only got a day of code to go through and find out where the bug is. And, since you're writing the tests first (i.e. JUnit or its clones http://www.xprogramming.com/software.htm)

    4) Simple design. Never add code that you don't need right now, because you think it will make adding a future feature easier. Often requirements change. The best case is you guess right and you've already done the work by the time you get to that feature. However, if you're even slightly wrong about the feature, then you'll have to rework it anyways, so don't do it ... ever.

    All of these play together to make the boss or project manager more involved (not what you wanted to hear), but in return you usually get more control (including testing) because the tests are actually part of the design process and have to be written before any code is.

    Good Luck!

    --

    ---
    "Don't anthropomorphize computers. They hate that."
  37. Call CDW! by DickBreath · · Score: 2, Funny

    Haven't you seen the TV commercials man!?!

    Fred, what's the matter? We're only asking the impossible.

    CDW's television commercials suggest that they can solve these impossible problems and make everything in your organization work like it should!

    --

    I'll see your senator, and I'll raise you two judges.
  38. I am trying to marry business and tech skills. by mcwop · · Score: 2
    I have been a PM for four years. I was thrown into my job with no PM experience and no tech skills. However, I did have certain subject knowledge that qualified me. I have taken it upon myself to learn and refine the PM and tech skills.

    I started going to the local comm college to pursue a programming degree. This knowledge is extremely helpful. I have also read tons of case studies on projects to gain PM experience that way.

    In all I am becoming an effective PM with decent tech knowledge. Even if you only take a few programming classes it is very valuable. Other skills to pick up are:

    • Contract negotiation
    • Client servicing
    • Budgeting
    --

    "I don't think it's selfish, to eat defenseless shellfish." -NOFX

  39. Joel on Software has a few ideas by itsmarcos · · Score: 2, Informative
    Joel on Software has an article titled Command and Conquer and the Herd of Coconuts. It gives some insights from Micro$ofts management practices. I consider them quite accurate.

    Have a read on that and some other articles in the archive. I am sure you it will help you put your thoughts in some order. You can then give it a try (diplomatic one) and move the waters a bit.

    Just my $0.01

    --
    Marcos
  40. Re:Oh Please! by Fnkmaster · · Score: 5, Informative

    This is pure trash. The fact is that most programmers don't and don't really care to understand much about the business. That's exactly the reason that you need technical leads or TPMs who understand both the business requirements and enough of technology to make reasonable trade-off decisions, and either work closely with a business-oriented PM/requirements person, or have excellent rapport with upper-management (i.e. have their trust - not be perceived as a lying technology person).

  41. Just the reverse ... by Kope · · Score: 4, Insightful

    'm a senior project manager in a medium sized company where the programmers have no business experience of any sort. I'm of the opinion that programmers should understand the business that they're part of and want to move into programming myself. I'm aware that I may meet resistance from the current programmers - many of them have been hired with no previous experience of anything. Previous suggestions to senior management that myself and other project managers would feel better with business person programming on projects have been dismissed. As a result we are routinely told to push out deadlines or that our requirements are impossible, with an emphasis on how technically aesthetic things are rather than how well things meet the business requirements. Has anyone else found the barrier to programming is their business knowledge. How did you get past it?"

  42. You're already got your answer by Havokmon · · Score: 2
    Previous suggestions to senior management that myself and other developers would feel better with a technical person running projects have been dismissed.

    Been there, done that. Depending on the political climate, you have have screwed yourself because you spoke out. Done that too. :(

    In my case the following occured when I realized we were lead by the unititiated, and for YEARS tried to make change:

    • I was offered a false management position (which never materialized)
    • I created an outline for a security department, which gave 'roaming' resources a home, and put myself in as Manager. I was told it was a good idea, but they wanted a Director of Security. A couple months later the telecom guy was named Security Manager. They could have at least hired someone who knows MORE than me.
    • I tried to move into programming (I was in Networking) on my own. I wrote a web app that the CEO wanted (Status info for Sales Offices), but that 'move' stalled almost immediately.

    Essentially, by speaking my mind, and giving my opinion what which way the IT area should be headed, I got labeled Anti-Microsoft (when in reality, the guy in charge would want anything MS even if it didn't really fit the need. An NBM-er.) What they really wanted was lackeys. I left within 6 months of receiving a 'Dedication to Excellence' (or something) award.

    My suggestion is to write down all the positives and negatives of your current boss, and if you were boss. If it seems to make sense, and management's decisions fly in the face of logic, just leave.

    --
    "I can't give you a brain, so I'll give you a diploma" - The Great Oz (blatently stolen sig)
  43. Managing you PM's like Non-Tech clients by oliverthered · · Score: 4, Insightful

    IT sounds to me that you project managers are behaving like non-technical clients, so treat them that way.

    Guide them through the development process, get well defined requirements.
    manage there expectations.
    Get proper business logic out of them
    So,
    'I want a button that save the file in x format'
    becomes,
    'I must be able to save the file in x format' and
    'There should be a UI component to do it'

    Then get a decent definition of the format, work through any problems with them and any possible future requirements, Set up some testing requirements. Why do they need to save the file.

    Once this is done, decide where in the UI the save file should be available from.

    It is your responsibility to ensure that the project managers do a good job. Send them back to the clients if there's something missing, set up decent procedures, make sure testing is defined with the requirements so that it doesn't get skipped, and most importantly make sure things are set out in a clear fashion that everyone understands, with out scope for ambiguity.

    --
    thank God the internet isn't a human right.
  44. My advice? by Cinnibar+CP · · Score: 2, Interesting

    My advice would be to work on your resume.

    The biggest worry I'd have at a job like that is the incorrect evaluation of my procifiency and progress based on inaccurate or incorrect standards. I don't want to be fired/promoted because of how my apps look, I'd want to be recognized for building solid, stable, functional apps.

    In this situation, you're being judged on purely arbitrary parameters that have little relation to what technology's true business goals should be.

    Another disconcerting problem with this scenario is the likelyhood that they would promote from within to management is rather low, if they do not value technical expertise. You can't expect to make it into a managerial tech position from within further down the road if tech expertise isn't one of the primary prerequisites for attaining that position.

    I'd move on as soon as a bigger and brighter opportunity presented itself if I didn't have a TRUE tech manager.

  45. Signs of a company going downhill... by Uttles · · Score: 2

    Most technological companies these days have project managers that are in fact from a technical background. One of my goals is to be one such project manager possibly, and so I'm taking my computer engineering undergraduate degree off to graduate school so that I can get a masters in business administration. Companies that wish to be successful will hire people with similar backgrounds, whether it be from work experience or education. I don't know what to do about your company, but I know hiring engineering managers who've never attended a math course over the 200 level is bad, bad policy.

    --

    ~ now you know
  46. Much of this has been said.... by groove75 · · Score: 2, Interesting

    Any developer striving for a PM type job needs to read a basic SDLC book, because if you think that your superior programming skills and technical knowledge alone are going to make you a wonderful PM, think again. SDLC is a very extensive and time proven process, and indeed as has been said.. developers tend to lack perspective on certain levels, and work best when given specific guidelines and dates. PM's *should* know much more about the SD life cycle, but developers have a point also... Any good system's analyst needs to have basic programming skills. The argument can go either way. However, I would choose a system's analyst with no programming skills, over a developer with no SDLC experience any day. Just my 2 cents.

  47. What we had to do... by C_Mattie · · Score: 3, Insightful

    It seems like this is a common theme in this industry as I am sure anyone who has been in it for a length of time will tell. I am in almost in the exact situation, as a Senior Developer answering to managers (and in many instances a VP) with a limited technical background in web technologies.

    One could go further to say our managers "know enough to be dangerous", often claiming they are "technically minded" and feel they inherit the skills of the team they manage, often changing specifications or routinely trying to influence technical decisions.

    So what do you do? Here is a bit of what we have done to make things better:

    Understand that you have been hired to do a job because you are qualified to perform the task. I don't want to sound like a motivational speaker, but you need to be confident in the ability to do your job as an expert. Any influences you try and make to a superior will not be taken seriously if you don't take yourself seriously. And don't be afraid to say "Let me do my job. I am the expert here."

    Next, do the research. Don't walk in and say something like "We need to test our code." That is a given (or should be). Walk into an office with a formalized test procedure printed out in your hand and say "We need to do THIS." Also, try and site specific project management guidelines they are not following. Speak their speak. If you want to argue that a PM is not doing their job, make sure you know what that job is and how they are not performing it.

    That having been said, if all else fails I will quote one of my colleagues: "Be a cock." If you are trying to influence a project manager in accepting what is an industry standard practice, be it formalized requirements definitions, change request processes, staging areas, federated databases or whatever, sometimes you need to "step up" and push the changes through. But remember there is a difference between being a cock and being an asshole. You don't have to be afraid to argue (or fight) with your boss for the betterment of the project, just make sure you can back up your point. "Why are you fighting me on this when the entire industry acknowledges this at the best practice?"

    Donno if this helps. Hopefully it does.

    --
    "If you're not failing every now and again, it's a sign you're not doing anything very innovative." -- Woody Allen
  48. The solution is a solid project plan by Delgul · · Score: 4, Insightful

    Let me tell you straight off: Your problem is not restricted to software development only. I work in mechanical engineering and it is largely the same.

    What works for me is to always ask for a solid project plan. If all's well, if there is a project budget, there MUST be a project plan somewhere. If there is not, find another place to work! The project plan is your best friend if you want to keep your PM in line.

    A good project plan contains at least:
    - Outline of the project goals
    - Project boundaries (what you will NOT be doing)
    - A project planning with a work breakdown
    - Milestones with deliverables and delivery dates
    - Known risks in the project
    - Backup plans to eliminate the risks
    - A cost estimation

    To use the project plan in your favor do the following (in writing!):

    - For every task that does not seem to fit the goals of the project, ask your PM to explain how this contributes
    - For every task that seems to go beyond the projects' boundaries, ask your PM to explain why this is necessary.
    - For every activity for which the planning seems inadequate or unrealistic, ask your PM the following questions: HOW did he estimate a planning for this activity? Did he actually TALK to the people who must perform this activity? If not, on WHAT did he base his planning? Ask him to replan AFTER talking to the people performing the activities.
    - If you see risks to the project that were not mentioned in the project plan (like not testing and such), mention them (of course with a reasonable explanation) and ask your PM to explicitly mention them in the project plan.
    - Of course, ask him to think of a backup plan for these risks (or deliver it to him yourself).

    Ok, the trick to effectively tighten the leash on your PM is to warn him on paper and then, if he doesn't respond harrass him with your remarks during the review meetings of every milestone! If you have valid points, it will reflect badly on him with the management being there and it will teach him to listen to his techies.

    It may take time and you may need to do this often, but I must still encounter a situation where this doesn't work if you are pigheaded enough.

    Hope this helps,
    Delgul

  49. Have a requirements list at your hand ... by nograz · · Score: 2, Insightful

    Whenever you have a meeting with your PM, have a in one form or another a list of the current project requirements at hand. Whenever he asks for a new feature you show him the list and say something like: "Ok, here we have our current requirements. Which one would you like to put back in favour of the new feature" (politely). From practice I can tell you that this works wonders ...

  50. Been there, done that. by a42 · · Score: 2

    I'm an engineer and recently had the dubious honor of managing a system implementation and integration project. It wasn't a completely positive experience though it did have its rewards.

    My biggest warning to you is to not expect the impossible deadlines and ridiculous requests to magically disappear. You'll just be the one passing them on to the engineers. The only difference will be that they'll know that you know how ridiculous they are.

    --john

  51. How to manage your boss, get more testing time by LinuxParanoid · · Score: 2

    If you just hook the website up so it emails you and your boss whenever someone hits a glitch (database error, whatever) on your website, you'll get a lot more support for adequate testing. I did this inadvertently at one point and believe me, it gets a lot of attention but my bosses definitely appreciate testing more.

    They'll come demanding an explanation and you tell em that to prevent that in the future, it is a common rule of thumb at Microsoft (and they're the best in the industry from your bosses' perspective, right?) that they spend at least one person testing for every person programming. So half the time developing is debugging. (i.e. its not just your incompetence... even the smart people do loads of testing.) Then step back and let management decide what to do.

    If they're stupid at that point, do you really want to be there?

    That said, fixing every bug no matter how big or small is a luxury your company may not have. Stay levelheaded yourself.

    --LP

  52. Project Management by bogtrotter · · Score: 2, Informative

    The IEEE Computer Society publishes "The Software Project Manager's Handbook", by Dwayne Phillips, available at http://www.computer.org/cspress/CATALOG/bp08300.ht m. It's essentially a cookbook on how to run a software project that not only explains in non-academic terms what should be done, but how and why it should be done. It's an excellent guide for developers who want to break into management and for helping inexperienced PMs to not mess things up. We've been using it on the task I manage and life is a lot easier for all of us. I recommend it to everyone in our field.

  53. Take a Project Management certification course by nvts · · Score: 2, Insightful
    I recently found such a course offered by Villanova university. I talked with a Villanova rep and he indicated the response from companies hiring people going through the course is very positive. The course is completely online and you have like 8 weeks to do it all.

    Taking a course like this would put you ahead of those that have neither the project management background or skills and those with a tech background who want to move into project management but don't have a background in it.

  54. Project manager? What project manager? by EEEthan · · Score: 2

    The company I work for doesn't have a project manager. We have this guy who calls himself one though -- but he doesn't manage anything but his own department, our content production team.

    Our 'managers' -- two twentysomethings who worked at a financial company for a year, so they think they know how to do things professionally -- are the ones that demand the impossible. Or micromanage tech-side solutions so they are inefficient. Or simple don't spec things out, and then add requirements on the last day before a deadline.

    My opinion is that a good project manager, tech knowledge or no, would keep this kind of stuff in check. He or she would have a clear idea of what's really necessary for our product to get off the ground, and listen to the right people. Technical knowledge might help. It might help a lot. But not as much as common sense. And not as much as a clear idea of what the project really needs.

    It sounds like you've been dealing with BAD project managers. The tech stuff might be hurting them, but it's definitely possible to be a decent manager without tech knowledge. Just harder.

  55. Make sure you understand the real role of the PM. by debest · · Score: 2, Insightful

    I am one of those "non-technical" project managers you refer to, and I can assure you that your company is a rare breed: one that does not put a "subject matter expert" at the head of project implementations.

    However, you should know that the role of a project manager does not mean that he/she should be able to personally implement any of the tasks that need to get done. The PM is, above all, an administrator. The PM's responsibility is to formulate the project plan (with the project team's input), monitor the execution of the tasks, control issues/risks/changes/etc., and manage the hand-off of the project deliverables into the business' day-to-day operations.

    Yes, the PM cannot communicate effectively with his/her team unless he/she has at least a clue as to the jobs that each member does. But seriously, a clue is really all the PM needs! Managing a project effectively does not mean being able to step in to give assistance if a project is short-staffed or the deadline is moved up. It means that the PM will *manage* (facilitate more resources if possible, make sure that the project's problems are reported appropriately if not). Ideally, a PM is MORE effective if he/she is not actually doing any of the tasks to completing the project: such tasks tend to be distracting to the (supposedly) primary job of project management. If the project is small, then (again, ideally) the PM should manage more than one project.

    It doesn't sound like the PMs in your company are very effective, but that has nothing to do with being non-techies. ANY PM that dictates unrealistic deliverables or deadlines without buy-in from his/her team is a poor PM, regardless of technical know-how.

    You also say that you want to be a project manager. Are you willing to let go of your desire to jump into the weeds when you see problems? Because if you don't, I can assure you that other things are going to slip your notice. And what if you are the "superman" who can be cheif-of-all-things on a project? I would be nervous if I was your company's management and your project is critical. If you were to leave the company (for any reason, including an accident), there would be an impossible hole to fill.

    A GOOD project manager can effectively manage just about any project, as long as he/she has a clue. This is not to say that you are not a good PM: I'm just saying that project management and technical know-how are mutually exclusive skills.

    Darren Best, PMP

    --
    Look at the tomato! Isn't it sad? He can't dance! Poor tomato!
  56. Project Leadership Team by swillden · · Score: 3, Interesting

    The company I work for has developed what is, in my ~12 years of experience as a software engineer, the best project leadership approach I've seen. I can't give you any recommendations on how to get your management to try something like this, but I still think you'll find it interesting.

    The fundamental notion underlying the approach is that good project managers and good technical people are somewhat different, and that projects go smoothest when everyone does what they're good at. Another key part of the philosophy is that neither type of person is more important to the success of the project than the other. Ya gotta have both, and they both have to be good.

    So, for every project we have a Project Leadership Team, consisting of a Project Manager, a Technical Architect (funny term, but needed to distinguish from the next guy) and a User Interface Architect (the UI Architect is optional on small projects). These three individuals are *peers*, and all major project decisions are made by concensus.

    Each person has a well-defined area of responsibility, and decisions which lie strictly within that area are only made by that person, although important decisions should be shared with the team. The team also succeeds or fails as a team; praise and blame will be apportioned equally.

    The PM is responsible for building and maintaining the project plan, tracking progress, communicating with higher management and the client (we're a consulting organization) and generally for ensuring an on-time, on-budget delivery. The PM has to know how to deal with all of the business issues and has to be an excellent communicator. Some technical background is useful, but not strictly necessary.

    The Techincal Architect is responsible for managing the daily technical tasks of the technical personnel (all other personnel management tasks devolve to the PM), as well as having overall responsibility for the technical work. The TA sets the technical vision, development standards and guidelines and generally ensures the technical quality of the result. This person must be a very capable designer and programmer and good at communicating with technical people. It helps if (s)he can communicate effectively with non-technical people as well.

    The UI Architect is responsible for gathering requirements, defining the UI (often via a series of prototypes, and occasionally with the help of human factors consultants), managing the UI developers and QA team and generally ensuring the result solves the client's problem. This person must be a very capable UI designer and programmer and must be able to communicate well with both technical and businesspeople. In the case of my company, there are a number of very senior UI architects who have PhDs in cognitive and industrial psychology as well as being excellent programmers with deep knowledge of a wide variety of UI toolkits. These guys are seriously hard to find but amazingly helpful.

    To put it in a nutshell: The TA makes sure the project gets built right, the UIA makes sure the right project gets built and the PM makes sure the project gets built.

    The team members quickly realize that their areas of responsibility frequently come into conflict and that compromises are necesary. Sometimes they realize that the project as planned is impossible; if all three are on top of things then this realization comes early, allowing higher management an opportunity to find or negotiate a solution with the client.

    This team structure is not only very effective, it tends to engender a healthy respect between the leadership team members, since each gets a chance to see into the others' worlds. Actually, each is *required* to see into the others' worlds, since that's the only way to resolve the issues that come up.

    On small projects, there is no separate UI team and the UI Architect's responsibilities can be divided between the PM and the TA (who then becomes the "A"). On very large projects, each of the three leaders will have a small staff of assistants and in many cases the project will be broken into subprojects that each have their own leadership team, with a senior leadership team taking overall responsibility.

    An interesting insight that was pointed out to me a few years back is that this leadership team approach is an application of the Model-View-Controller (MVC) structure to project leadership. This and other concepts allow my company to maintain an exceptionally good track record of on-time, on-budget deliveries (don't know the exact number, but well in excess of 90%).

    --
    Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
  57. Project Management Methodology done by our State by macdaddy · · Score: 2
    I work at a Unv in Kansas. The State has endorsed a Project Management Methodology (PMM) structure and recommends it to all our state agencies. I heard about it at the 2002 CHECK conference a couple weeks ago. The State of KS also has training classes in Topeka that you can pay for. My Unv is bringing a couple of the State's training staff to my Unv in a couple of weeks to give 2 2-day overview courses. If I feel I need to, I may also convince my boss to let me attend the week-long larger course. I've run into a problem where I don't have project management training. While I feel I could easily get the job done, I don't have the experience in managing people or a .5 mil project (the technical stuff is easy; the political and non-tech administrative stuff is new to me). Management has since put someone else in charge of my project. While they too don't have the PMM training, they do have management experience and they don't have anything else to do being new to our dept. If I had PMM training I could much better argue my case.

    The formal project management session at CHECK (sorry, the sessions aren't online yet) did outline the structure for the people involved in a project. The thing I remember most is that the structure that was presented to us (and endorsed by the State) had Project Managers in an organizational role *only*. They didn't make technical decisions. They drove home the process of managing a project. They generated reports for the suits, kept everyone on track with timelines (decided on by the group), documented the process, ran project meetings, and kept things neat and orderly. They didn't make technical decisions. The presentation giver did say that it would be ideal if the Project Manager was someone of a technically minded person so they could write documentation correctly, not give out false information, and would simply understand to a certain degree what all the technical people were saying. That doesn't mean they have to understand the ins and outs of BGP but they should be able to understand enough of what it is after an explanation to get the point across in writing.

    IIRC I also heard one of the other (larger) Unvs say that they are considering highering a full-time Project Manager for their dept. Project management can easily become a full-time job.

    Hopefully your state endorses some sort of PMM. I would try to convince the suits to let your team leaders take a class or two. If nothing else it will help the actual Project Manager out if the majority of the people that person works with understands the PMM process.

  58. 3 sides of project management by angel'o'sphere · · Score: 2

    If you look at project management then you see three sides of the "coin".

    a) The client relation.
    b) The technical challange.
    c) The administration of man power, tasks and budgets.

    Regardless how good you manage the technical challange, that means how good you "drive the software process", the other two aspects are equal important for success.

    The a) is a typical responsibility for a typical project manager. Discussing with the customer to get inputs what to do and make agreements about when to deliever.
    With c) the project manager basicly tries to accomplish the in a) agreed goals and time lines.

    Without in depth knowledge how a technical project is to be managed, that means how software is crafted or should be crafted this is impossible.

    The only way to lead a software project with out software skills (mainly architecture and software project management, like: milestone planning, release planning, quality assurance, version and configuration control) is to have a very good communication skill and very communicative lead developers.

    If the project manager TRUSTS the estimations of the lead developers and TRUSTS their explanations why certain taks have to be done in a certain order, he still can manage with out to deep technical knowledge.

    In reality a team is rarely build up with high skilled and high communicative people at once.

    So the only true solution is to evolve form a programmer to an architect and from an architect into a project managing role.

    I was for a long time, as long as I had no project scheduling skills, of the opinion that a technical product/technical project can only be managed by in depth knowledge of the involved technologies. Meanwhile I think it works without also, as explained above. But still I did not found a project witch was managed perfectly .... except if the manager was an "old fox" in programming and experianced in architectures AND had enough energy and patience to LEAD youngsters and enough bones to do not step back if upper management wanted BS from the team.

    angel'o'sphere

    --
    Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  59. a good project manager has to be technical by e40 · · Score: 2

    It would be very difficult for a non-technical person to be a project manager. How would they, then, mediate technical disputes between technical people? Often, during the course of a project, people come to technical logger heads. Often, the only way to resolve this is by the project manager facilitating a solution. I've done is hundreds of times over the last 10 years.

    A lot of project management is mundane stuff (tracking schedules, informing people of changes, etc), but a lot of it is making informed decisions about what to do. By this, I mean, there are always bumps in the road to getting out any product. If there isn't one person smoothing over the bumps, then the design will drift.

  60. Project Management is management by MacDude1 · · Score: 2, Insightful

    Aside from the obviousness of the subject line, project managers should be, first and foremost, GOOD managers - in all that entails. That being said, a good manager listens to the experts on his/her team and judicously balances that with the needs of the company. Too many PM's allow themselves to be bullied by one side or the other. Sr. mgmt bullies them into the low-cost (on the front end) solutions; while the tech experts bully them into the best technology they know exists (by saying things like 'we can do it the other way, but my way is the RIGHT way to do it.'). That may not always be an accurate statement.

    My point is that both sr. mgmt and the tech experts have a stake in their point of view. It is the PMs job to make sure the needs of the company are met - fiscally and technologically. There are always trade-offs between expediency and and technology. That is why PMs have to focus the project. How long does this solution need to work? 3 years? 5 years? What is the true budget for this project? Can I spend a bit more on testing? Do those end users really need those screens re-done or are they fine the way they are? Is it reasonable for sr. mgmt to expect this solution will provide X,Y, and Z when we agreed it would only do A,B, and C?

    These are just basic examples, of course. So, to stay officially on-topic, it is important that the PM understand/empathize with the programmers' and designers' work, but not that he/she be an expert in those areas. A PM should be comfortable with all aspects of the project - programming, design, test, build, finance, IT infrastructure, etc. A jack of all trades but master only in diplomacy and management.

    On the flip side, a PM who has a programming background may not end up being a good PM because he/she will always want a hand in the actual programming. This is a grave danger to the project because the PM has to take a strategic view of the situation and not a tactical. The PM cannot afford to be up to their proverbial elbows in programming or testing because then they tend to lose sight of man-hours or other critical elements.

    Now, move PM from a mid-size or large company to a small business and all this goes out the window! There the PM is usually the one performing one of those key functions in addition to overall project responsibility.

    Heh. If this analysis impresses you and you are an employer looking for a PM who thinks this way - give me a call. :-)

    --
    -- Those of you who think you know it all are very annoying to those of us who do.
  61. Maybe they should by Aceticon · · Score: 2

    Programmers should try and have at least a basic view on business issues both inside and outside the company.

    It's quite simple a question of self-defense. No mater how briliant a programmer you are, siting in your corner concentrating solely on programming you will:
    - Get a lousy salary because you don't know other people's salaries or you don't know-how/have-the-courage to get a beter salary.
    - Be overworked because your manager keeps piling things in your plate.
    - Sudenly discovering that you got laid of or your company went bankrupt.
    - Get blamed once again for a project that blew-up (and probably you won't even know about it)

    Need an example?

    Look no further that the pile of once "innocent and happy geeks" that sudenly found themselfs unemployed when their companies went bust with the tech-bubble colapsed (and they didn't even saw it coming)

  62. From My Experience ... by e1en0r · · Score: 3, Interesting

    I've been a PHP programmer working under several different project managers depending on the client for about a year now. I should mention that our art dept. does the HTML because it might be relevant later. Some key Project Managers are as follows:

    A - Completely clueless. Asks the same questions over and over again. Gives the design projects (HTML) to programming and the programming projects to design. Has to repeatedly be told what a form action is. Doesn't know a database from a cheese sandwich. Often forwards us URLs that he requested asking what they are instead of clicking on them.

    He's the least knowledgable of them all and the worst to work with for obvious reasons. We're constantly having to tell him what we can and can't do and constantly having to redo things because he doesn't get his point across correctly. I had to bill about 3 hours to a client to put a simple counter on 6 pages because 2 hours were explaining things to him and half an hour was redoing the counter because he gave me incorrect instructions. He's technically useless, unwilling (incapable?) to learn and also an incompetant project manager.

    B - When I first started working with him he was very competant in relaying what the client wanted but wasn't as good with understanding databases and general programming stuff. After working on a major site redesign I explained how databases worked in order for him to provide me with CSV which I could correctly import. It was important he knew the reasons because he had to explain them to the client. I explained a lot of what can and can't be done and by the end of the project he was entering data himself saving me hours of work.

    This guy is a pleasure to work with. He knows enough to be helpful but not enough to be dangerous. He'll ask us how long something takes to do and will accept our answer without questioning it. He'll give us plenty of notice when things are due and listen to our suggestions about due dates. He doesn't always know if something is possible or impossible, but he'll believe us when we tell him we can't do it.

    C - This guy claims he used to be a programmer. He's new, so I have less experience working with him. I just started a new site with him and because he claims to know programming and design he wants to play a big part in all 3 roles. He knows enough to be dangerous and is always asking "why?" and wanting to see my database table structure.

    This guy is a pain in the ass to work with. He seems to know what's possible and impossible, which is important, but unfortunately he doesn't take suggestions because "he's a programmer". He knows enough to be dangerous and his curiosity is time consuming.

    After working with these project managers for a while, this is the conclusion that I've come up with.

    Clueless morons will always be clueless morons.

    Just because someone knows programming, doesn't mean they'll be a good project manager. It depends on the person, of course, but this could actually be a detriment if they insist on sticking their noses into things too much.

    A project manager that you can teach and mold seems to be the most important. If they're competant and willing to learn they'll be the biggest asset. They don't need to understand for loops, but if they listen to you and trust you then you'll do well. The 5 minutes that it takes to quote them a time estimate is not a big deal. The hour it takes to explain to them why that's the case is a big deal.

    Most importantly in my job is the fact that the project managers have to listen us and when they do question us our boss will resolve the situation.

  63. Re:help your PM help you by dubl-u · · Score: 3, Insightful

    You're on to something, for sure.

    The problem the OP describes usually comes down to a lack of communication between the people doing the work and the people ordering it. Building up trust is a great way to get people to listen to you.

    This is also why the various agile methods (XP, Scrum) work well; short-cycle iterative processes force a lot of interaction, and frequent deliveries build confidence on both sides. Allowing features to be reprioritized every iteration gives managers the feeling that they're in full control, which makes them much less likely to demand impossible things.

    But I have seen cases where this won't work. In an organization of sufficient size, the high-ups are so isolated from reality that they can only manage by appearances; the people under them can succeed just by creating the appearance of success. All programmers know that it's easy to create the appearance of success for v1.0 while leaving a steaming pile of turds under the hood that will sabotage any attempts at v1.5. Truly evil managers will take this every time and then move on to a higher position, leaving somebody else holding the bag.

  64. And then cut your resources to do it by crovira · · Score: 2

    I toiled for a real-estate/snake-oil salesman who had made a killing in the Calofornia land rush and bought a software firm.

    His total lack of perceptiveness consisted in

    - handing me "The Five Minute Manager," a not-so-fine book that he'd obviously never read,
    - having erraticly scheduled alleged weekly "rah rah" meeting to inspire the troops (we always met afterwards and griped that he was an idiot and the company was doomed, never mind the project,)
    - asking for estimates, which I delivered based on the growing amount of work (he kept adding "fee-tchurs") to be done and the wall of the delivery date which my team and I were hurtling towards,
    - and then he'd cut my small team by putting somebody on another project.

    It was acidosis vs. Tums, headaches vs. Aspirins, desperation vs. alcohol medication.

    I NEVER want to be a middle manager again. Specially not graftin' for an idiot. I'd rather sell shoes or groom dogs, cats and turtles (they have claws that need trimming.)

    --
    MSBPodcast.com The opinions expressed here are my own. If you don't like 'em... Think up your own stuff.
  65. Apples and Oranges by Wee · · Score: 2
    This is an obvious troll, but I'll have a go regardless.

    You can't really compare engineering to PM. They are two completely, vastly different things. One takes years of hard work and dedication and learning in widely disparate areas, while the other takes -- from what I can tell -- good hair, at least a passing knowledge of golf, a subscription to Details magazine, and the ability to "network" without resorting to using CAT5, fibre, or 802.11b.

    Can you hire a PM with no preivous PM experience and expect products/projects to get managed? Maybe, even probably. In fact, the submitter is trying to bail water out of that particular boat so we know it not only happens, but is common. Can you hire a software engineer with no previous experience and expect any software to get written? Not even the slimmest chance in hell.

    Not to put too fine a point on it, but most people could do PM if forced and very few can be programmers. So the converse of the submitter's problem doesn't even begin to hold water. "I'm a senior admin clerk in an aerospace firm where the engineers have no experience making copies and restocking the supply room..."

    It just doesn't work, man.

    -B

    --

    Ash and Hickory, straight-grained and true, make excellent bludgeons, dandy for the cudgeling of vegetarians.

    1. Re:Apples and Oranges by Kope · · Score: 2

      *cough* BULLSHIT *cough*

      Not to notice how dull your fine point is, but, I've spent the 12 years since I've been a software engineer doing kernel programming learning how to be a PM.

      I've attended thousands of hours of seriously difficult training. I've spent as much time studying business texts as I ever did studying programming manuals and CS texts.

      Indeed, my first job as a programmer was obtained walking right out of the army with absolutely no training in anything! I had one course in lisp, and a decent capacity for logic, but no experience or training at all.

      After years of effort I am just now starting to obtain a level of proficiency in project management high enough to be able to manage seriously complex projects.

      Good project management is non-trivial, and is far more difficult than programming. To be a good programmer you have to be a master of two domains - the problem domain and the language domain. To be a good PM you have to be an adept psychologist, be a master of the business domain in which the problem rests, be conversant in the lananguage domain the programmer uses, be able to handle major accounting problems, risk management, quality managment, and a host of other problem areas.

      The reason so many projects do fail in business these days is precisely that you CAN'T just hire some moron with good hair as a PM and succeed.

      Most people can't be good PMs. Being a good PM requires a highly specific set of personality traits, business skills, technical skills, and years or training.

      Truly good PMs are far rarer than truly good programmers.

      I've rarely had a project for any company that didn't have at least one compitent programmer somewhere in the company. Most had more than one. I've seen many companies that don't have a compitent PM, and from their reactions to meeting someone who is, they've never had one before . ..

    2. Re:Apples and Oranges by Wee · · Score: 2
      Not to notice how dull your fine point is, but, I've spent the 12 years since I've been a software engineer doing kernel programming learning how to be a PM.

      And you assume that all PMs share your sense of dedication? Interesting persepective...

      I still maintain that many PMs believe that their role is not to manage but to put out fires. Reaction, not proaction. Remedial instead of prophylactic management. It takes very little actual talent or foresight to jump into the fray as a stubborn blowhard and expect the problems at hand to bend to your will. I'd personally rather work with your style of intelligent planning and not the sheer mule-headed brute force I've seen so often.

      I can't tell you who many times I've seen a nepotistically hired PM try to buffalo their way into a working group. My reaction now is "I wonder how many days until we get to see Golf Dude throw us under the bus so he can CYA..." I'd love to see the numbers for projects that have been mis-managed into the ground because of former frat buddies hiring one another.

      BTW, I agree completely with your post. And while my original point may not have been as sharp as I'd have liked (it certainly may have been a bit too barbed), I can tell you from personal experience that it was not bullshit. I was not describing a perfect world, just the one I live in. In that world, PMs like you are a rarity and the bad PMs almost invariably hang around far longer than the bad programmers.

      -B

      --

      Ash and Hickory, straight-grained and true, make excellent bludgeons, dandy for the cudgeling of vegetarians.

  66. How do they do it in other industries? by --daz-- · · Score: 2

    Perhaps it's good to think about this from other perspectives. The building construction industry is a good analogy to software. The people with the money have rediculous demands. Architects and engineers design it and then the project manager has works with them to estimate its cost and time. He has to know the business side, the engineering side, and the construction side.

    Construction is chock full of suprises, delays, and inconveniences just like software development. If you want to be a good software development project manager, take a look at one of those guys and see what skills they have and try to mimic that.

    I'd bet they have experience in business, design, and construction, but mostly in construction.

    I don't think you'll find many people fresh out of college with a business degree go into the project management business without having some practical experience with construction or design.

    However, this is unfortunately the case in software development.

  67. Re:Personality Check by mccalli · · Score: 2
    He'll ask me why I miss a deadline and I'll try to explain to him the complexitys of implementing a relational database on a palm, but it goes over his head and all he wants is a date.

    Aaah, well my query to the original poster was: "Have you considered that you might not actually need these new-fangled techniques?".

    In your case, the answer to that question would seem to be: "yes - I have considered it and it seems that I actually do need to use those techniques".

    In other words, we're both covered!

    Cheers,
    Ian

  68. Project management is bullshit anyways... by Pig+Hogger · · Score: 2
    I knew that, but it was brillantly confirmed by a class on computer project management I took 2 years ago.

    The teacher was a moonlighter, having a day job for the political police as a senior project manager. First of all, the class had three times the ordinary number of people, so we wasted three weeks splitting the group in three.

    Then we had to work on our projects in teams of 10 people, which made managing the meetings as much work as doing the project itself.

    Then I was canned, because when you're 38 years old, you just cannot learn by heart a 50 paragraph text like a 18 year old can (and then the teacher said that there was plenty of erroneous information in the text). I was canned despite our group project ending at second place when it was evaluated by the second in command of the political police...

    So, if you like bullshit and nonsense stuff, go for project management.

    (Reposted, account being moderated into oblivion)

  69. Proficiency in project management. by rice_burners_suck · · Score: 2

    Project managers must have better technical knowledge of the subject than those implementing the project. This prerequisite is critical to the project's success!

    When it comes to software, folks tend to think the rules are different when compared to other technical jobs. For example, when a bridge is built, no manager would dream of giving the job to someone without a thorough understanding of physics (and more specifically, of bridge-building). But in software, folks tend to think they can hire some geek out of high school and have them implement God's universe within six days.

    Unfortunately, it doesn't work that way. Software is no less complicated or serious a discipline than building bridges. If bridges fail, people can die . Likewise, if software fails, people can die just as well, and billions of dollars in damages can occur. Even if you're only implementing a text editor. (Imagine if a text editor corrupts someone's file when they're configuring a satellite computer or something. This is not a joke.) And infinitely more so if you're implementing an operating system, for crying out loud.

    Contrary to popular misperceptions, software is a serious matter, not some colorful graphics and icons you click on. To manage a software project, you can't just understand project management. You have to understand what happens when both bits of a XOR gate are high, and you must understand this better than the programmers you manage! Even if they program in Visual Basic. To be a good project manager, who can give reasonable estimates (not just to shut up management, but to tell the honest truth about when something can be implemented with reasonable quality), who can deliver something that's actually worth the resources spent in development, you must be so experienced that you have forgotten 99% of what your programmers haven't yet learned, and they better be pretty damn good programmers.

    For software to be truly successful in the coming years of ever-increasing dependency on computers, computer education simply must change. Programmers should become proficient in electronics as a prerequisite to any programming class. Project managers should have been programmers, and damn good ones, for 20 years prior to becoming project managers.

  70. PM as "shield" from upper management by King_TJ · · Score: 2

    Wow - lots of interesting comments posted here, and some things to think about.

    I'm starting to come to the conclusion that perhaps the most valuable thing about a project manager is the way they act as the "shield", protecting a group from becoming the direct pawn of an upper-level management person (CEO, VP, or what-have-you).

    I can recall a situation with a previous employer where the software development dept. used to be pretty much directly controlled by the company president. Eventually, some things got restructured, and a person was assigned as a project manager over their department.

    They didn't really like this, because they felt like the guy was technically clueless and just more middle-management wastefulness. (In fact, both of these things were arguably true, to an extent.) The interesting thing, though, is the department started becoming more focused on completing the development tasks that the *users* wanted, vs. only working on the "pet projects" the company president envisioned.

    I've been tempted to get into project management before. (Especially after talking with a few of my buddies who came from tech. backgrounds, and now swear that project management is such a great career move for them. Better pay, more respect, etc.) Honestly, I think it requires a completely different skillset - and it's too bad so many places treat it like a "promotion" from a tech. position. IMHO, there's no reason at all to pay these guys *more* than your tech. workers.

    People with good technical skills should try to continue to work where they can put those skills to the best use. Trying to become a "technical project manager" is only going to make you slowly lose your technical edge, and spend half your time doing things you don't enjoy - like building time-management charts and sitting in boring meetings.

  71. Your tech knowledge is not hampering you by wealthychef · · Score: 2, Insightful

    It is not your knowledge of technical matters that is hampering you. It is your LACK of knowledge about topics that your managers value that is hindering your efforts. You obviously don't understand their philosophies and probably come across as having an agenda that is different from theirs. Management includes politics and the ability to compromise and see the other side. Work on those skills and regard your techie skills as just one arrow in your quiver and you'll be better off.

    --
    Currently hooked on AMP
  72. Project Management for Programmers by jjmahone · · Score: 2, Insightful

    You all have valid points about the issues you see, and have experienced. I guess my two cents would speak to project organization, and role definition.

    System Manager/Customer: Their job is to understand what problems or opportunities they want an application or blown out system to address/fix. The groundwork is primarily laid out by the customer utilizing the talents of a business analyst during a survey/discovery phase. They are the customer, therefore they're responsible for participating in the project as much as any other group, from requirements delivery, to testing, etc.

    Project Manager: They're not necessarily a manager. They're job is to serve as an interface to the customer. Get an idea of what it is the customer wants, the timeline for delivery, facilitate Joint Meetings with the customer and the technical team, track resources, and costs associated with the project, determine milestones within a project, project critical path, etc. The role of a project manager is the role of a coordinator/accountant. The project manager should serve as the communication focal between the customer, the technical team, and the management that both sides respond too. A project manager does not have to be a developer, nor should they be making any technical or design decisions of any kind within a project. That's not they're role, because keeping everyone on the same page, monitoring the product development life cycle and calling attention to scheduling and resources issues, and tracking overall project cost should keep them more than busy enough. Project manager's should also be sharp enough to recognize the requireds in a project . . . make sure agreements are made and signed on, as well as indentify product support issues, and generally understand the overall software product development life cycle, and then the support and maintenance life cycle that comes after deployment.

    System Architect/Technical Lead: Their job is to run the development team, schedule all technical activities and administer the work, and provide the overall vision of the product based on requirements that came from the customer. The schedule of activities along with the estimates that have been derived by the system analysts, and developers then goes to the project manager who puts the information into the schedule and works with the the tech lead to mitigate resource constraint risks, and other cost related issues.

    Think of a project team in terms of three arms of the project. System Management/Customer, Project Management, and Technical. The roles of couse can shift, but this is a sound view, and will give you a guy idea of who's supposed to be doing what. Another view is that the customer and the development team are two roads that intersect at the project management intersection.

    I really don't think a project manager should have to know a thing about development as long as all three of the project arms are there. For crying out loud . . . project management is newer as a discipline than software development. Project Management came from the construction industry as a means by which the overall cost of a construction project could be lowered, by closely tracking deliverables and alerting management and the customer when deadlines weren't being met on milestones.

    By the way, I'm a developer.

  73. Wrong! by jabber01 · · Score: 2

    Management is the same as programming, at the highest level of abstraction there is. The manager's job is significantly more difficult than that of a programmer because while the programmer usually deals with quantifiable, or at least qualifiable, problems, the manager deals with ambiguous conditions all the time.

    A programmer may run into an uninitialized variable for example. This is an easy fix. The manager runs into uninitialized programmers, and this is considerably more difficult to remedy.

    A programmer knows the capabilities of all the objects he arranges into a piece of software, and he also knows the effciency and parameters of the algorithms that get the job done.

    A manager does not have full insight into the capabilities, attitudes, and personal lives of the resources he uses to build his project. He may outline, dictate and enforce certain policies, practices and processes, but can not be assured 100% that these will not be circumvented at every turn.

    So, while the programmer (such as myself) does their little thing, and when it breaks, reaches for the manual and the debugger; the manager is, at best, dealing with uncertain conditions, on a slippery slope, sans manual, with only conversation and limited metrics to serve as his debugger.

    The average manager is just as qualified to manage as the average programmer is qualified to program. Any time anyone bitches and moans about how lousy and clueless their manager is, they should start fixing things by taking a good, long look in the mirror.

    As a programmer, how effective an object are you? This is not meant to dehumanize - managers don't mean to treat coders as cogs, but they do have to consider that perspective. As one building block of which the project is constructed, do you provide adequate reflection for your manager to make use of your abilities intelligently? Are you doing too much information hiding? Are you a bottleneck in a good process? Are you under-utilized, or over-extended? Should you NOT be reading Slashdot from work?

    --

    The REAL jabber has the user id: 13196
    What you do today will cost you a day of your life

  74. Deadlines: not all or nothing by Tablizer · · Score: 2

    What I try to do, but for unexplained reasons is resisted, is to have management or the PM *rank* the requested features, and then knock them off one at a time.

    That should tend to soften any deadline because there is no "line", per se. You have high-priority features, and lower priority features. It is rare that all of them are show-stoppers. If their is a date line, then you go with the features you have finished at that point, giving enuf time for final testing. (Some of them are integrated, so it is not always this clear-cut, but it helps.)

    New requests will get added as time goes on, and the list will probably change.

    However, some managers seem like they just don't want to commit to priorities. Is it because then they can't blame the developers?

  75. The problem with sales people by Skapare · · Score: 2

    The problem with sales people is that in their business, if the project ... err, prospect ... is "impossible", then you didn't tell a big enough lie so go back and tell a bigger lie.

    --
    now we need to go OSS in diesel cars
  76. Impossible is ... by Skapare · · Score: 2

    Impossible is coding 100000 different values into a 16 bit field. That is where "cheap" isn't one of the choices as you have to expand the field ... and that may mean recompiling and maybe even recoding everything else that expected to use just 16 bits.

    Impossibility depends on how you state the problem. If the manager says "use a 16 bit field to code the 100000 values" then it is impossible. Tell them so and they might not believe you (in part because they may have come from a background where they are drilled with concepts like "nothing is impossible if you try hard enough", even though we know that is not true). Tell them 100000 requires at least 17 bits, and that its quicker to just use 32 bits, and then at least they haven't heard the word "impossible".

    If you really do have to tell them it is impossible, maybe if you relate it to something they can understand, they can get the message. "That's like running a one minute mile". "A car can do that". "A car is a 32 bit field".

    --
    now we need to go OSS in diesel cars
  77. The Wisdom of My Years by CrashVector · · Score: 2, Informative

    I apologize for the length but I have something to say about this topic:

    Well let's see, I've been doing this C++/Oracle/SQl Server thing every day for 11+ years now, sooo:

    First Job: Manager was highly technical. Great gig for me because he let me play and play; I learned alot. After 4 years of bonuses and pats on the back, the job ended in a rapid 3 month assault on my work habits. For example my
    "tardiness" was not an issue for 4 years - then suddenly it was a BIG issue {this from the boss who said "I don't care when you come and go I just need it done"}. Why and how did this happen? Because I refused to hand edit a report to change numbers so they were more like what the customer expected. The hand edit was needed after I discovered a nasty "off by one" bug that caused miscounts of dozens at the territor level, hundreds at the region level, and tens of thousands at the national level. My manager acknowledged the bug, told me to fix it, and then had me rerun the reports --> the reports were hugely different from the previous quarter's reports and so some "fixing" was needed to make the data more like what the customer wanted. The incidental fact that these "numbers" dictated salary and bonuses for a sales force of hundreds mattered not - the customer expected numbers that looked like the previous quarter and that's what they got. Nope, I don't think that the company that hired me out of college exists anymore...

    Second Job: Two highly technical Manager(s) - they fought over me endlessly; it was fun. Why was it fun? It was fun because 1) Those guys both ran interferance - my job was to write tight code, their job was to make sure I had adequate time to do it, 2) They were TECHNICAL. Result: a very stable product that everybody liked {no really it does happen}. In general it was a Fabulous workplace with a really hot receptionist. Then the phone rang for more money...

    Third Job: Maybe you've heard of them --> www.wsj.com. Yepp I helped the Wall Street Journal build their web site. Semi-technical manager whose favorite quote was "the day you see me writing code is the day we're all screwed". Okay workplace, with 2 hot babes in daily view. But there was one problem: my manager - who I did and still do like - had the horrible trait of liking incompetent a$$holes. I had a good run at Dow Jones but I have heard that my ex-manager's career has taken a nose dive --> it's hard to soar with eagles when your goto people are turkeys. The most important thing I learned at Dow Jones was that consultants make twice as much money for doing the same work as I do. Soooo, on a whim, I packed up my beamer and my babe and we moved out to CA where I would become a consultant...

    Contract #1: 4 months to write a multi threaded MFC GUI that worked with .tif images and Oracle databases. Nope, they hadn't fleshed out the design before I arrived; we went from requirements gathering to design to customer sign off to finished GUI in 4 months. Yes I made it, but I almost landed in prison. The problem? A somewhat competent but HUGELY arrogant buttwipe of a PM. This guy's picture is next to the word "hubris" in the dictionary. His favorite thing was unannounced "dog & pony" shows where he would routinely berate people for not showing any progress. This PM also suffered from the trait of liking a$$sholes. His favorite boy was a devout Iranian muslim who drank heavily, fondled women, and lied lied lied. Muslim boy made one mistake though; he tried to get me in trouble with the arrogant PM. You see, muslim boy had written the coding standards document. I was standing in the room when muslim boy told the PM I was not writing code to his standard, to which I replied: "I am writing the code as close to your standard as I can, but my code interfaces with your code and your code is not written to your standard. If you would like to spend a moment I can go print out a sample of your code and we can review it in front of the PM." Muslim boy shut up after that day. But anyway, the PM was an a$$ and he always listened to Muslim boy's advice. As a footnote there was a position open a few weeks ago on dice.com at this company for an MFC Visual Studio v5.0 person who "could fix things". Hubris is a ver bad thing to have when you work in software...

    Contract #2: Signed a 6 month contract and rode the gravy train for 1.5 years before I couldn't take the stupidity anymore. Highlights of the gig were the time that the developers decided that the best database choice would be Object Store, but Marketing over rode developers and so we found ourselves writing an object-relational wrapper on top of SQL Server. The NON TECHNICAL PM didn't know the difference and we were unable to convince him that he should push back on this decision. Then there was the great "transaction controversy" where me with 8 years of databasing experience was over ruled by someone with {I'm not kidding} 3 weeks of database experience. The decision was made that MS transaction server, and transactions in general, would be too expensive and so they would not be used when transferring data across a wireless connection from a hand held to a SQL Server box. I was unable to convince the completely NON technical PM of the seriouseness of this situation. I finally couldn't take it anymore so I left. It has been 1.5+ years since I left and this product is currently installed at 1 user site and they are having "database problems"...

    Contract #3: Best PM I ever worked for. The problem was that a staff of 220+ ADA programmers was making their first attempt at an OOP C++ application. The bigger problem was that project management {way high above PM level} forced an arrogant trash talkin OOP mentor onto the PM {trash talker: one who sounds great to high management but who is otherwise incompetent}. The mentor was supposed to know something about OOP and architecture. The mentor took a combat system which could have been as simple as "ship, sensor, track, doctrine, weapon" and he turned it into an unmitigated disaster of more than 8,000 classes that featured such classes as "TransitionFromStandbyToSafeNotComplete" and "ChecksumCalculator" - the latter being a class with one method --> calculateChecksum. But in every high level meeting that I attended there was my PM, who was quietly sitting in the back of the room rolling his eyes at the sh$t that was excruding from the OOP mentor's mouth. During one particularly bad sh$t storm with many high {I mean real high way above PM} level people in the room the mentor was arguing for the inclusion of another half dozen classes {with one method each} into the project. Well, I had a helluva gin hangover that morning and I wasn't in the mood for a sh$t bath and so I blurted out "yeah, yeah, yeah, and 8,000 classes later you have a system". The mentor didn't know what to do or say so he walked out of the meeting. My PM was beaming from ear to ear. Within 1 month the mentor was gone. Did I mention that my PM was both TECHNICAL and POLITICAL? Best PM I ever worked with and I will be working with him again, hopefully soon, in the future.

    Contract #4: Short term biotech embedded. As I type this I am waiting for a meeting to end so that I can be tasked. I was going to play golf this summer while waiting for the economy to come back and rates to improve. But the phone rang. So I talked to these people. I'm here for 1.5 months. The work is good so far and my PM has had a large hand in writing the code - he's TECHNICAL. This contract will most likely lead to .NET work in the future - and I will most likely want to come back and help out.

    Anyway, sorry about the length but IMHO being technical DOES matter. But the best PM I ever had was both technical and political...

    --Richard

  78. management? what's that? by Phattypants · · Score: 2, Informative

    In my experience the manager has primarily been a founding partner in the business. He knows his technical stuff because he had respect enough for his developers to learn their language before asking for anything business related to be created. The ony problem has been that technology has moved faster than the managers' ability to grasp new paradigms so they often insist on methods older or less suitable for handling certain tasks. Like snapshots of a competent manager several years ago that did not grow with the times. Not only is it bad for interpersonal cohesion, but more importantly it is bad for business.

    Get tech savvy managers or make it a company policy to have tech savvy managers I say. There has to be a line drawn where internal neoptism (of sorts) comes into the picture.

    Inadequate knowledge is the downfall of the integrity of any service or product.

  79. I've never seen anyone get past it. by ilmarin · · Score: 2, Interesting

    I've seen dozens of projects fail. Only projects with engineers acting as project managers have succeeded. The concept of "management specialists" is fatally flawed, and actually quite insane if you think about it for awhile. Managers have to be able to make decisions based on personal experience and domain knowledge. Traditionally, engineering project managers were very senior managers with advanced degrees. Project management was a field that you would work your way up to after several years as a junior engineer, then senior engineer, then team leader. This is another fad notion being followed with no substantiation or logic, probably as a result of the deficit of qualified project managers during the dotcom boom. It turns out that the projects probably were not all that important, however, so, in the long run (like everything else) I suppose it doesn't really matter.

    But don't think you're going to get it to work.

    If your org is typical, you may actually be being saddled with this "project management" in order to collect productivity metrics. In this notion engineering development is treated as a Production process rather than as a Design process. Engineering, of course, is a Design process, so to manage it you have to look at how engineering design has traditionally been managed -- what has succeeded and what has failed. Production processes are good for managing things like building a tract of houses.

    When I was a kid I spent several years working as a building contractor and a project manager of building construction. For the last 20 years I have been an engineer and recently a manager of software development. They are not at all the same thing and the models should not be confused.

  80. My favorite PM was *not* a tech PM by ediron2 · · Score: 2, Interesting

    Just because it was an anomaly of epic proportions, here's my favorite PM's background:

    She was nearing 50, had a degree in Sociology, and had been managing I/T projects for a decade or more. A lot of her projects were cobol and RPG for banks, and we were a Java house. She was remarkably good at PM. She was also seriously not technical.

    Her best moments:
    -- She once doubled a bid to a client based on his being unprepared and an a$$. Her explanation was life was too short and she'd rather not have to deal with him, but if he paid a vicious premium, we were there for him...
    -- She liked to keep status meetings short, group-wide, and effective. Gant charts or checklists of milestone items would get a quick review, we'd respond on change in status since the previous meeting, and we were gone.
    -- She knew she didn't know code. She didn't revel in it, but she would look for an effective analogy on critical issues so she could understand them well enough to do initial communications with clients (to shelter us). If it exceeded her ability, she'd arrange a call/meeting with all three of us, and she'd quietly listen and learn while we worked with the client to find a workable solution. She was willing to learn, in other words, and wasn't intimidated or put off when we would contradict or correct her on technical items.
    -- She *did* know people, project management issues and methodologies, political tricks, and everything else, thanks to her adapting her sociology training over to the topic.
    -- She'd rarely play us politically. If something was hot, we'd get a warning. If it was a lame issue, she'd say it was likely to fade away if ignored.

    Going the other direction, I've seen technical types that were the epitome of the Peter Principle... great techies that had been handed a budget and a project without a lick of training or ability to handle the project. This scares me *more* than a non-tech PM, because they often suck at delegating, politics, shielding the techies from distractions, etc.

    Having started as a design-build engineer on Semiconductor Fabs, I've got to say the software field is pretty full of rank amateurs in Project Management, in general. The people I worked with in construction PM were trained experts and had field experience and an awareness that careful design, scheduling and bidding/estimating were necessary specialties, not off-the-cuff afterthoughts, and that these were necessary costs in any large project. Anything less is like building a house without a blueprint!

    I'd also argue that poor I/T Project Management training is reflected in the poor overall quality of software compared to any other engineering discipline. But that's a whole other can of worms.

  81. Re:Personality Check by mccalli · · Score: 2
    Yes, I certainly have seen the sort of projects you mention; I assume that by calling them "CV-driven" projects you mean that they are driven by the desire of the participants to enhance their own CVs.

    Yes, that's what I meant. It's rampant in the area of industry I work in (I'm a contractor in the financial sector).

    I also should have mentioned another sort of project manager...

    Recognise that type too. We have some projects going on like that at the moment - huge, daft systems are built for what is essentially no more than taking a user's input from a client-app and writing it to a database. It's not even a distributed app, and yet it has been written with an n-tier approach and implemented in .Net. Hmm.

    Presuming you don't want to engage in a flame war about object-oriented programming or any of the "new techniques,"

    Absolutely not. No - I think your reply is a well-reasoned one with which I have no disagreement. My point, which you have understood and seem to have agreed with, was that I see sooo many projects start up with the the aim of using the latest stuff when a far simpler methodology would be more appropriate.

    I'm not exactly a veteran, but I've been a professional coder for ten years now (went into contracting because I didn't enjoy the idea of becoming a manager but still wanted my pay to increase). I started of with Mac System 7 and C, have done some small amount of Windows coding, then C++, then Unix and C, C++, Java, shell scripts, Perl...anything really. Anything appropriate. Obviously along the way I've learnt new techniques - the move from C to C++ being one example (procedural to OO). I'm far from against learning new techniques. It's just that I'm only in favour of using them when they're actually needed.

    Another example -- they tend to believe that refactoring is bad. With the massive, monolithic, interdependent systems of the past, "you don't touch working code" made sense.

    Hmm. Still does make sense to an extent. It depends - if you are going to need to use that code again and it now needs to fit into some new framework, then yes - refactoring is good. However, if it's just going to sit there and run for the next twenty years then why rewrite? It might offend the aesthetics of decent programmers, but if it works then leave it alone.

    An example. I've been handed a ton of Perl scripts to look after. They were written by someone who was learning the language as they went along and are, frankly, dreadful. The guy who wrote it accepts this too. I've rewritten various parts of this, improving as I go along, but some parts remain in the dark ages and I'm very unlikely to ever improve them. Why? No need. They work, they will never be used outside of their task (they're database feed scripts - parsing a fixed format file from a proprietary system and just dumping the results into tables), so even though they're ugly as sin I will leave them alone as they're not worth rewriting.

    ...The improvements in development techniques over the last decade don't apply because of the PM's own slothfulness in keeping his/her knowledge current.

    Yes, now this is just plain irritating. As I say, my coding armoury has been added to over the last ten years and I imagine I will need to add more over the next ten years. Things don't stand still. Everyone has their real-life example bugbears about this - my current is use of threading in client apps. Makes things -so- much more responsive from the user's point of view, but many people are scared of threads and won't allow them in.

    ...a PM shouldn't prevent developers from exceeding the PM's own development skills. Agree?

    Agree.

    Cheers,
    Ian

  82. thinking in a vacuum by Walter+Wart · · Score: 2, Insightful

    Quite a number of people have said, in effect, "Being a manager is being a manager. It has nothing to do with the process being managed." Thus, it is not a problem if software PMs know nothing about the field.

    One wonders what color the sunsets are on the planet this people come from.

    I've worked in several industries other than software - construction, education, medical research, nursing, and nuclear engineering. In all of them a manager had to understand what it was he or she was in charge of. They were generally senior practitioners in the field?

    Why?

    Because you would have to be insane to pick managers any other way.

    Look at what a PM has to do. He has to make schedules and estimate costs. He has to make sure all the members of the team are working efficiently. He has to handle the unexpected, keep the customers happy, manage the supply chain so that the vendors deliver what is needed without robbing the company blind. And so on.

    Unless you have a thorough understanding of the industry you are working in none of this will happen. Estimation will consist of dollar figures and dates pulled out of your butt. You won't have the confidence of the people who are working for you. A crew can deal with a boss who is a competent jerk. But they can't be effective if they know he hasn't got a clue about what he's doing.

    The vendors will deliver crud and demand gold bars for it. Because they know nobody will do anything about it.

    The customers will be unhappy. How else? They've been promised the moon in two weeks. A year later they haven't got anything. In an established industry like construction the liquidated damages would have begun months ago.

    I passed this thread around the office where I work - a medium large construction company. The unanimous response was "How the hell can you make money like that? Are software executives all smoking crack or something?"

    --
    The man who never alters his opinion is like the stagnant water and breeds Reptiles of the Mind -- William Blake
  83. Compromise. by CarrotLord · · Score: 2

    To be a programmer, you need to be able to understand and solve technical problems. To be a project manager, you need to be able to understand resourcing, management and in some sense, sales problems. Project managers are stuck between the techs, who want to do things technically as well as they can, and managers who need to do things cheaply and make the best profit, and sales types who need a project that is sellable.

    You need to compromise your desire for technical perfection to be able to relate to all the concerned parties. You need to see it from their point of view as well as from the tech's point of view. Just like it's sub-optimal having a non-technical project manager (at least, from the tech's point of view), it's also sub-optimal to have a purely techo project manager...

    rr

    --
    Quidquid latine dictum sit, altum videtur.
  84. Re:Personality Check by mccalli · · Score: 2
    Well, we've narrowed the discussion to one point, then: refactoring. It sounds like we probably agree on that, too.

    Yes, it seems we've achieved that rarest of things - a well-reasoned Slashdot thread ending in consensus!

    I definitely agree that refactoring is an investment which has a cost and a benefit. If a piece of code isn't going to be touched again, it shouldn't be refactored.

    And that it is the point at which we agree. You see, when I started I used to be all in favour of rewriting anything ugly or inelegant. Anything. Never really thought about the fact that whilst I was doing that I wasn't doing something else.

    I'm pleased to say that it still pains me to let old rubbish continue festering - losing that pain would essentially mean that I no longer cared about good code, and I do care about good code. However, I'm now quite a bit more aware about software's place in life and what more appropriate priorities are from the business's point of view. After all, they're paying for me. True for every coder, but the relationship is even more direct in the case of a contractor.

    And it's funny I would say this -- I'm a consultant, so I'm not even around to see the long-term damage!

    Not sure about this, but I think you're using consultant in the same sense I'm using contractor - it seems to be a US/UK jargon split (I'm in the UK). My title is consultant as well - basically a hired analyst/programmer who not employed directly by the company but instead is paid via a service contract (n-months to do x task, option to renew on both sides).

    Anyway, to wrap-up from my point of view it seems as if we've not got a great deal of difference between us. Seems we both feel that:

    • Use of new techniques for new techniques' sake is bad.
    • Use of new techniques because they're actually better and more appropriate to the task in hand is good
    • Project Managers that use new techniques for buzzword-compliance are bad
    • Project Managers who refuse to consider use of new techniques are also bad
    • Rewriting (or refactoring) software which will be used again or which needs to fit into a wider framework is good.
    • Rewriting software which whose task will never alter is of questionable value
    Seems like a balanced viewpoint to me.

    Cheers,
    Ian