Slashdot Mirror


Is Your Development Project a Sinking Ship?

gManZboy writes "Everyone knows that some software development projects succeed and other fail -- the question has always been 'why'? I'm sure we all have our favorite (likely anecdotal) explanations. Well, these guys decided to actually go out there and do a formal survey, and they've got some real data on why projects actually fail (as reported by development project managers -- care to guess where 'changing requirements' ranks?). They've developed a diagnostic formula people can use to gauge the likeliness that the project they're working on right now is (or isn't) going to fail."

98 of 494 comments (clear)

  1. Project Management Authority by fembots · · Score: 5, Insightful

    I used to blame "constant client requirement changes" for failed projects as suggested by my project manager.

    Later I realized, as suggested by the senior management, that a good project manager should not let that happen had he properly designed and managed the project.

    Recently I started to think that maybe all failed projects are due to the delays inevitably imposed by the senior management who requires many policies/protocols/documents/approvals/discussions before signing off the budget.

    These delays introduce deadline pressure to project manager, and allow too much time for client to ponder about other features, and most importantly, give breathing space for competitors to come up with similar products BEFORE we do.

    1. Re:Project Management Authority by Anonymous Coward · · Score: 4, Interesting
      Flexibility to meet changing requirements is a good thing.

      All too often, some sales guy will toss in a requirement like "must run on Win98"; and thousands of man hours will be wasted trying to meet something that wasn't even important to the customer.

      If the original spec calls for "turn lead into gold", it's a very good thing if the requirements can evolve as technical issues are identified.

    2. Re:Project Management Authority by xbrownx · · Score: 2, Insightful

      Later I realized, as suggested by the senior management, that a good project manager should not let that happen had he properly designed and managed the project.

      This cannot be emphasized enough. The project manager needs to not only manage the people within your company and what work they're doing on the project, but also the customer and the customer's expectations.

    3. Re:Project Management Authority by Linker3000 · · Score: 3, Insightful

      I used to blame "constant client requirement changes" for failed projects as suggested by my project manager.

      My experience shows this to be quite valid sometimes regardless of how much project control you attempt - a classic scenario goes like this:

      1) The customer is invited to a 'proof of concept' or 'milestone' demo of the proposed system

      2) The customer requests new features or amendments to original spec

      3) The new features are subjected to a cost/benefit analysis by both parties

      4) Customer wants the changes and so the contract clause relating to 'additional or amended requirements' kicks in and a new pricing structure is drawn up.

      5) Customer complains that they are being 'forced into a corner' with the new charges - they want everything completed but aren't willing to pay the extra but feel that if they don't agree you'll walk away from the project

      6) Developers have to decide whether to make the amendments within existing budget, even though it's additional workload, or insist that the customer covers some or (hopefully) all of the charges.

      7) Customer complains and says they won't pay - OR they agree, but you just know that at the end of the contract you'll get a serious amount of grief trying to extract the full and fair cost of the work from the customer.

      8) Customer pulls plug and takes your proposal elsewhere for someone else to work on, or you decide to cut your losses and jump ship anyway.

      --
      AT&ROFLMAO
    4. Re:Project Management Authority by jeillah · · Score: 5, Insightful

      Most products specs I've seen lately are what I call CYA specs. They ask for things that are comprehensive enough to keep the blame away from the analyst even if the requirement is for things that are difficult to implement and probably never used by the end user. A prime example of this is requirements for searching and reporting. The spec will call for the ability to search or report on any field or groups of fields, as determined by the user, with multiple search criteria for any field with the data sorted on any field. And it has to be simple enough for a non-technical user to use (no fair making them enter SQL). Chances are it will only make sense for the user to view data in a few ways so why not define these ways and put that in the spec? Nope, cause they might miss something and they'd be shamed for life. Better to just put "I want everything I can think of and might think of in the future" in the spec and complain that the project is behind schedule and is too big and runs too damn slow when (if) it is finally delivered.

      In case you can't tell, I'm in the process of reviewing just such a spec from our legal department right now. Specs written by lawyers are pretty but wordy without really saying what exactly they want...

    5. Re:Project Management Authority by persaud · · Score: 3, Insightful

      Fork the spec for query building into two sections.

      One where real requirements analysis yields the top ten most valuable and requested queries + report templates. This can be handed off to a designer who creates an efficient and highly usable interface.

      The second spec is for a generic ad-hoc query and reporting mechanism. Since the need is so very generic and so very unpredictable, prudent analysis concludes that a buy solution would be more practical than a build solution. Therefore, buy a generic reporting solution like Crystal Reports to meet the generic needs of the generic spec.

      Finally, create separate cost, development and user feedback tracking for the two reporting subsystems. Review at 3-month intervals.

      The winner will be clear sooner rather than later.

    6. Re:Project Management Authority by XMyth · · Score: 2, Interesting

      Funny you should mention specs like that.....I just got done developing a web app that meets just those requirements (except multiple search criteria are limited to AND only...no OR/NOT) for any dataset.

      If you'd like to look at it (I've got no problem sharing code/ideas...I don't work for a corporate outfit) shoot me an email myth @ my homepage minus www.

    7. Re:Project Management Authority by FriedTurkey · · Score: 2, Insightful

      Therefore, buy a generic reporting solution like Crystal Reports to meet the generic needs of the generic spec.

      Using a integrated/seperate application is often not an option. Crystal Reports will often cost more time creating custom reports than just building a tool yourself. I always lie to clients and say "I don't know how to do Crystal Reports" despite doing many more than I would like to remember. Crystal Reports often require a lot of time to do outside a simple report especially when you get into nested reports and such.

    8. Re:Project Management Authority by Mr_Huber · · Score: 5, Insightful

      The difficulty here is making absolutely sure the client and the mangement know the difference between a working prototype with canned data and a fully functional application capable of handling real world situations. All to often, I've seen really good prototypes either turn into the actual product, or be the source of unrealistic estimates of project status. (After all, if the demo works, how hard can the rest be?)

      I remember reading an article by Joel Spolsky where he advised to deliberately make the UI for demos less than polished. Make it look like something that was knocked together. Make it too pretty and the client will think you're almost done. After all, to the client, the UI is the app. If that looks done, the guts of the thing must be near done as well.

    9. Re:Project Management Authority by Open+Council · · Score: 2, Interesting

      In the days of 4-GLs I prototyped a number of Ingres apps. As well as learning to produce not-so-pretty prototypes, I also used QUEL as the query languge. Once they had agreed the basic functionality i could mention that it used the "non-standard" QUEL rather than SQL. "Oh you'll have to change that" they'd say, giving me an excuse to throw away the prototype and start again for the real app.

      Sadly QUEL was far better than SQL.

      --
      Paul
      www.opencouncil.org
      Open
  2. So... by Blue-Footed+Boobie · · Score: 5, Funny
    "They've developed a diagnostic formula people can use to gauge the likeliness that the project they're working on right now is (or isn't) going to fail"

    So, if I know it is going to fail, do I still have to try?

    --
    DAMN YOU OCTODOG! DAMN YOU TO HELL!
    1. Re:So... by 2A · · Score: 5, Funny

      but what will really bake your noodle later, is would the project still have failed, if I hadn't told you it would?

    2. Re:So... by kin_korn_karn · · Score: 2, Insightful

      Ah yes, the Heisenberg method of project management...

    3. Re:So... by Neil+Blender · · Score: 5, Funny

      but what will really bake your noodle later, is would the project still have failed, if I hadn't told you it would?

      Dude, Oracle jokes are so next week.

    4. Re:So... by tiredwired · · Score: 2, Funny

      If you do not make a plan then there is no plan to fail.

    5. Re:So... by EvilTwinSkippy · · Score: 2, Informative

      Do or do not. There is no try.

      --
      "Learning is not compulsory... neither is survival."
      --Dr.W.Edwards Deming
  3. "changing requiresments" less bad than no change by Anonymous Coward · · Score: 4, Insightful

    Changing requirements is far less bad than a frozen spec based on overanalysis by MBAs who never spoke to customers.

  4. Yeah but... by Anonymous Coward · · Score: 3, Interesting

    Are they really getting at why projects fail, or are they just getting a good record of what people on failing projects like to bitch about?

    Changing requirements blah blah blah not my fault blah blah blah...

  5. The formula by superpulpsicle · · Score: 5, Funny

    Fair management expectations
    + Well allocated budget
    - Patch fixing firedrills
    - unnecessary marketing spinoffs
    + free donuts
    = success

  6. I blame perfection by Anonymous+Crowhead · · Score: 5, Insightful

    People who sit around for months or years trying to design the perfect system. It doesn't exist. Compromise gets projects done.

    1. Re:I blame perfection by LazyNerd · · Score: 3, Interesting

      I've seen a quote attributed to General George Patton that says:

      "A good plan, violently executed today, is better than a perfect plan tomorrow."

  7. the real question is, using their formula... by testednegative · · Score: 3, Insightful

    ... did they fail or succeed?

  8. Aggressive scheduling by kevin_conaway · · Score: 3, Interesting

    Our project is currently suffering from aggressive scheduling. We are put on too tight of a timeframe to allow even the most minor setbacks. Changing requirements seems to be the nature of the game, and when we dont allot enough time to accomodate these changes, we get into trouble.

  9. Projects fails because no one ever learns by Ckwop · · Score: 5, Insightful

    It's as simple as that unfortuantely - we *never* learn from our mistakes. Over the last thirty years every system we can dream of has been built from nuclear power plant control system to stock market analysis systems.

    Yet we keep playing the buzzword bingo with our new systems, e.g. "Extreme programming", we still keep promise a schedule we can't keep to, we still allow the customer to shift requirement much later in the project than should be allowed, management still don't have enough dialog with the programmers on the ground floor, the list goes on..

    Wake up! We're not special.. the construction industry has been doing huge projects of equal complexity for centuries. Get past your intellectual snobbery and start working together..

    Simon.

    1. Re:Projects fails because no one ever learns by Anonymous Coward · · Score: 2, Insightful

      The construction industry has also suffered from slipped schedules and cost overruns for centuries. (Bay bridge, anyone?) The big difference is that with construction it's a little bit more obvious to clients that they just have to keep waiting until it's done.

    2. Re:Projects fails because no one ever learns by LWATCDR · · Score: 3, Interesting

      "Wake up! We're not special.. the construction industry has been doing huge projects of equal complexity for centuries. Get past your intellectual snobbery and start working together.."

      Umm no they have not. Construction is one of the slowest to change industries on the planet. Take a hotel It is really just room after room. You design one room and then multiply that out to make a floor. Then you stack the floors and you have a building.
      The key is standardized everything. Look at your average home. It is still built out of sticks or concrete blocks. Very little has changed in a very long time. The latest thing is metal studs but it took decades for them to become commonplace in homes. Very little changes and very little in really innovative.
      And if you think that building projects are always on time and on budget.... Ha Ha Ha Ha Ha Ha
      Not on your life.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    3. Re:Projects fails because no one ever learns by swimmar132 · · Score: 2

      Repeat after me: Software is nothing like Construction.

    4. Re:Projects fails because no one ever learns by VeriTea · · Score: 4, Insightful
      I would repeat after you, but what would I gain by repeating something that isn't true?

      Ok, there is a lot of truth there, but to dismiss the analogy out of hand is to miss some very important lessons. My dad manages large-scale construction projects so I know a little bit about the industry.

      Some lessons that may relate
      1. The team that designs a project is always different from the team that constructs the project. They are seldom even from the same company. The client gets to arbitrate between the two when conflicts come up.

      2. Many projects are extensively estimated after design, but before construction by the constructor (who has much more experience and motivation to accurately assess project costs then the designing company).

      3. Design firms, and construction firms often specialize in very specific types of buildings (i.e. one company may construct only clean-room facilities, another company designs only bridges, etc.). When companies take on specialized projects that they have no institutional experience with, they often fail spectacularly.

      4. The designing company divides the project design documents into known specialties. Metalwork, brickwork, glasswork, electrical work, etc. There are hundreds of catagories, and the design documents break out the project into those standard catagories. When the construction company builds the project, they hire subcontractors to perform work in each specialty. The company that does the glasswork has lots of experience with glasswork. The company doing roofing has lots of experience with roofing, etc.

      5. Changing the design in mid-construction (which always happens) cost big bucks. No exceptions.

      There are more, but I'm bored with this post so I'll stop now.

      --
      --- There are two kinds of people, those who accept dogmas and know it, and those who accept dogmas and don't know it
    5. Re:Projects fails because no one ever learns by Ansonmont · · Score: 2, Interesting

      Really? Are you kidding? Architecture and construction are NOT standardized. Parts of it are standardized, but people are using different materials, designs, etc all the time. Not everyone lives in row houses, mcmansions or big apartments.

      Just because architects made big blocks of apartments that were the same does not mean you can't make a little house made of foam and popsicle sticks that no one else has ever thought of.

      The analogy to software is a good one, as you have very different projects in size and scope. The main difference that everyone points out is that you can sort of see how much more a building needs, but software can be "99% done" forever and you can't really know when you will be ready until you are.

      Anyway, my 2 cents.

    6. Re:Projects fails because no one ever learns by mpcooke3 · · Score: 2, Insightful

      Yet we keep playing the buzzword bingo with our new systems, e.g. "Extreme programming"

      Hang on! The whole point of XP is about the fact that customers change their mind and developers never get it completely perfect in the first draft. XP promises a schedule based on the last one or three week iteration so it inherently remains accurate over time.

      I've been doing XP properly for about 5 years and it's one of the reasons the company i work for has survived. Massive code changes have been neccessary as we've pretty much changed the product into an entirely different one that is now profitable with the aid of an agile process and tools + those 1500 unit tests.

      Please don't blame XP just because it doesn't fix mega-death-march projects overnight or because it's a buzzword used by people who have never even written a unit test let alone pair programmed.

    7. Re:Projects fails because no one ever learns by LWATCDR · · Score: 2, Insightful

      Of course they are not all standardized but MOST are. And the ones that are on time and on budget and complex are.
      Even if you do build it yourself unless you are a complete moron or a glution for punishment you will standard sized windows, doors, electric outlets plumbing fixtures... and so on.
      And it may not be possilbe to build what ever you want. In many contries they are very very strick about building codes. In many places in the US you have all sorts of rules.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    8. Re:Projects fails because no one ever learns by mpcooke3 · · Score: 2, Insightful

      I don't know any real XPers that say "no other process can work". Many XPers are rightly concerned that some people claim to adopting XP without doing all the practices and then slag it off when it doesn't work.

      In fact most of the XPers I know are also interested in other Agile processes.

  10. Ratio of Intelligence to Project Complexity by severoon · · Score: 4, Insightful

    I've done a lot of thinking about this...I've come to the conclusion that too often, management tries to replace good ol' fashioned thinking with process. It doesn't work. People tend to get focused in on what they're doing to the exclusion of all else, and that means the smart people are cubbyholed and only have half the story and can't see where other parts of the project are failing, and dumb people have free reign over their little part.

    If the ratio of intelligence to complexity is too low, then the project will fail no matter what process is in place or who is managing it. That's all there is to it. There's a lot of cool stuff out there to be done in development...sadly, most of the good ideas will never make it because the people working on them don't use common sense and best practices...they're just not smart enough to see what's important and what isn't.

    This isn't one of those self-important diatribes from a holier-than-thou developer, either...true I'm a developer, but I admit when I'm too dumb to handle the particulars of a project; usually, that means the project is too complex for most people, but they press on anyway. Those projects always go down in flames eventually.

    You have to know what the strenghs and weaknesses of your team and its members are, and exploit those to the fullest. Maybe, then, you can barely accomplish a project if the goal of that project is simple enough.

    --
    but have you considered the following argument: shut up.
  11. Blame the P.M. - usually by jacobcaz · · Score: 4, Insightful
    Every project, whether it's a development project, implementation or business process engineering, that has failed for us has been because of poor project management. Period.

    We've had people who didn't know how to accurately scope business requirements, get buy in from other departments and generally "play nice" enough to keep everything running smoothly. Your P.M. needs to be able to be a hard ass, but also to be a buddy.

    It boils down to excellent management skills and excellent people skills and without both you're setting a project up for disaster. A good P.M. needs to know when to tell senior management it's asking for the impossible too, and a good P.M. needs to know he has kung-fu so he can get away will telling senior management their idea won't be implemented.

    1. Re:Blame the P.M. - usually by Fnkmaster · · Score: 2, Interesting

      The problem is when sales start suffering and things aren't going well on that end of the business, senior management will tell the project manager to stuff it or get fired, and that they have no choice and the customer absolutely can't be told that feature X has too high a time cost to make it into the next release.

      If your project manager is completely constrained, then it's not his fault that he can't push back on poorly defined business requirements or ridiculously unreasonable timelines.

      The solution is your sales team needs to buy-in to the idea of properly qualifying customers and setting expectations reasonably, or not setting expectations at all until project management has been brought into the sales process. The "lie, cheat, do anything to close the deal" technique often fucks small companies over leaving these disastrous projects in its wake. And yes, bad project management, poorly defined requirements or changing requirements and other factors can certainly ruin a project too.

  12. Cosmo Quiz by brw215 · · Score: 5, Funny

    Is this simply the nerd version of the ages-old cosmo quiz? I fail to see how "The one-minute risk assessment" is any more comprehensive or meaningful than the "Does he think you are fat"-type quizes that make their way through women's magazines.

  13. Skill sets for Project Management by ag4vr · · Score: 5, Insightful
    One key element that appears to be missing is the qualifications of the manager or management team. Project management is a different skill set from design or development.

    It's not to say that a good designer or developer cannot be a good project manager; it's just a different job, like asking a plumber to rewire your house.

  14. Re:A classic one for me by Neil+Blender · · Score: 2, Interesting

    When your project manager hands you a project started by a rookie and tells you, "It's 95% done. All you have to do is the final touches."

    That usually means the UI isn't done. Unfortunately, the UI consists of 905% of the remaining work.

  15. Correct, but there is more by Interfacer · · Score: 4, Insightful

    Not only do client requirements change, but management is also responsible for fubaring things.

    i have been part of a project (past tense) where:
    - management delivered a much too low cost estimate in order to get win the bid.
    - management then expected the project manager and team to meet the deadlines that were doomed in advance.
    - the software design lead designed a behemoth of a framework full of performance and design issues.
    - management did not understand that if you have unexplained system behavior, you cannot say when you will have solved the problem.
    - hardware design was not reviewed, just like software design. this lead to huge problems just before and during acceptance.
    -near the end of the project, more and more people were reassigned to a new project that has the ability to make the department manager look good to the head office. he wants to move up. In effect, succes of the former project became a more and more distant possibility until failure was assured.

    and there are probably some other things that i either forgot or purposly left out (trying to repress memories maybe ;)).

    1. Re:Correct, but there is more by alien_blueprint · · Score: 2, Insightful

      Scary! I'd say we must work at the same place, but this pretty describes large software development efforts everywhere.

      Particularly the "framework" bit - this sort of thing is a particular pet hate of mine. Why do people do this kind of thing continually when it almost never works? Why not just solve the direct problem instead? I have seen it over and over again. People seem to miss the obvious point that solving the class of problem is always going to be an order of magnitude (at least) more difficult that solving an instance of the problem - and you need an appropriately large budget to do it. The final nail in the coffin for the "let's build a framework while we're at it" lunacy is that the "framework" often ends up providing a solution to something that didn't even need doing in the first place - it's just something someone thought might be useful early on. I can't count the number of times we've ripped the bloated, buggy, badly designed, unusable "framework" out of a system and it's then become reliable, simpler, smaller, more efficient, and more extensible and flexible (those two points are often the reasoning for the "framework" in the first place, so it's ironic how that works out).

      Sigh. "Frameworks" - it's my anti-pattern of the year. Or maybe decade, or even career. That's not to say it can't be done, it can of course, but only with lots of time, money, careful thought, planning and exactly the right people - certainly not as an off-hand skunkworks inside some other project with no clear purpose or direct problem to solve.

    2. Re:Correct, but there is more by crazyphilman · · Score: 2, Funny

      Let me tell you a tale of woe.

      I inherited a project from a consultant who had spent several months (I'm guessing six) doing mostly nothing other than whipping up some mock-ups of how the web pages should look. He read Indian newspapers a lot, pretended to be busy, and did nothing much. When he got caught, he got asked to leave and the project dropped into my lap.

      A new project manager came in, a stubborn old man who was really into old style structured programming. He kept talking about "functional decomposition" as if it was completely sufficient to model an object oriented project (we had shifted to VB.Net for this one). He dragged the user meetings on for SIX MORE MONTHS. My deadline kept getting closer. First, I had six months. Then four. Then three. Then, two. By the time he got done farting around with endless meetings, I had ONE MONTH to develop, design, AND implement the ENTIRE SYSTEM. He started trying to push me.

      We had vicious fights in which I would tell him his project schedule was a work of fiction. He would try to threaten me, force bizarre changes on me, he'd refuse to modify the database schema even when it was obviously insufficient to meet a design problem. I kept fighting for more time.

      Over about four months (three in which I was overdue and constantly nagged/harassed), working 80-100 hour weeks, I actually got a big chunk of the system built. A month into the actual development, he left for other projects because he didn't want to get tagged with the failure of this one (I got a new manager, someone much more modern in his thinking, comfortable with OOP, etc). By the end of the four months, management was getting seriously annoyed at me (like this was all MY fault somehow) and demanded a realistic schedule. We determined it would take me 71 more days to complete at the rate I'd been going, assuming I went back to a more normal work week. I was so burned out I said I'd like to transfer to another location when the project was finished, management realized I was being fried, and they relented -- they gave the project to a team of several consultants to finish. There was a brief period in which management investigated, to see whether they should dump the blame in my lap, but everyone who looked at my code called it brilliant, so I was spared. I didn't feel too lucky, though. Actually I felt like I'd been run over by a truck.

      Long story short, they redesigned the project using a framework (CSLA) and it took them nine more months. At least it got finished, and works, so I guess that's something.

      This project was the worst thing that has EVER happened to me. I almost destroyed my health over that four month period. It was HORRIBLE.

      In MY view, project managers can make or break a project. If you get a guy who's nuts, and thinks you can magic him up a whole system in a month, just run away. Get off that project ASAP.

      I'm lucky, though; my management has since given me a more normal project to work on, and things have settled down. The project manager screwed us, fucking off to Florida and leaving us in the lurch on a few projects, so I don't have to look at HIS ugly mug, either. It all worked out, I guess.

      --
      Farewell! It's been a fine buncha years!
  16. I blame the If statements by TheFairElf · · Score: 3, Interesting
    The client I'm currently working for has a core product that is modified as per each customer's requirements. The modification process works exactly like this:
    if (customerName == "cust1"){
    // customizations for customer 1
    }else if (customerName == "cust2"){...
    }
    .. and so on. There's a new customer? Easy, add another if statement. The entire code base is a hodgepodge of conditional statements. Needless to say, the program has tons of bugs and the performance sucks. Its a wonder to me that the customers put up with it and even continue to pay for it.
    1. Re:I blame the If statements by Greslin · · Score: 2, Informative

      I inherited a similar system back in the mid-90's when I did internal app development for a major aerospace/defense firm in Central Florida. The thing was a nightmare of nested IFs and CASEs, and every time one of my predecessors needed a new set of conditionals they'd just tack another in.

      The thinking (or so I was told) was that in the early days of this app, it was written to be temporary, so just hack something together and make it fast. Unfortunately - and this seemed to be the rule with this company, and I hear still is - the temporary system stuck around because it worked today, and a new system would wait until tomorrow. Or next week. Or whenever.

      So every new conditional was another hacked modification, another IF or CASE.

      My task was to rewrite this monster and figure out a way to get it away from IF/CASE nesting, but keep every ounce of "flexibility" and functionality. Just a temporary system, they said; we'll replace it with a fully designed system after another year or two of consultation sessions.

      After pulling my hair out for several days on that one, I thought about an article I once read on how the Infocom guys did their games. Rather than trying to code for every possible situation, they coded for a single *default* situation - "when in doubt, do this", etc. Then everything else was an exception rather than a rule, and could be easily abstracted. I did something similar with this system and sliced the code base down to about a third of the previous system, without losing any functionality. It actually gained some, since now new functions could be thrown into a database rather than needing to be hardcoded into nested branches.

      It took a little longer to develop than what they anticipated. Not much longer, a few weeks, but a little longer. And my supervisor kept complaining that the design was too "involved" for a system that was only temporary.

      That was 1997. The thing's still running today.

      Moral of the story: In any given situation, the odds of replacement (whether code, or a job, or even a spouse) is essentially a path-of-least-resistance formula. If it's easier to maintain the status quo than it is to upset it, the status quo will almost always be maintained. The more management tells you that the code is temporary, the more you should assume it'll end up permanent.

      Also, it never hurts to learn how other developers solved similar problems. :)

  17. Re:here's a mirror. by rainmayun · · Score: 2, Insightful

    You jackass! I actually clicked on that....

    Anyway, since I can't read the story, I'll just blather on about conditions here where I work... the #1 cause of failed software projects is poor client management. We all know that the client doesn't know jack about making software... if they did, they wouldn't need to hire us. Yet when the client contradicts themself, the opportune moment to flash that consulting brilliance and prove why we cost so much is immediate. It would be so easy to say "what you've just asked for is impossible because it conflicts with this other thing you asked for". Yet from a marketing perspective, that's bad for business. Why? Because our company's goal is to maximize profit, not to maximize software quality. Believe it or not, we often get contract modifications to fix those very problems we could have circumvented because the developers foresaw them coming. Essentially, we get paid to build the same system twice. How's that for consulting brilliance!

  18. Care to guess where 'changing requirements' ranks by Kenja · · Score: 2, Funny

    No, what I want to know is where "linking your project to a slash dot article" ranks.

    --

    "Have you ever thought about just turning off the TV, sitting down with your kids, and hitting them?"
  19. Change Transparency a.k.a. Big Visible Charts by persaud · · Score: 3, Informative

    Release managers can track requirement changes and their impact (effort, schedule) on the project. These changes can be reported separately from the primary schedule, so that everyone can see the impact of scope changes.

    Change is not bad. Adapting to environmental changes (competition, customer education by early prototypes, vendor roadmaps) can make the difference between a one-shot failed project and a multi-generation successful product.

    Big Visible Charts is a time-tested technique for non-political status reporting that helps everyone (from senior management to QA) take responsibility for the global impact of local changes. Grab a few unused monitors and create a wall-mounted status display with 1-minute project status updates, you'll be amazed at the results.

    1. Re:Change Transparency a.k.a. Big Visible Charts by Anonymous Coward · · Score: 3, Informative

      I recently did something similar but web-based. The wall-mounted display wouldn't work in our case since the project is too big and managers have often seperate offices. However everyone has continuesly web access open.

      A SIMPLE status portal page in which you can see REALTIME successful and failed code builds, status of regression systems, resources and 1-click (tm) away usefull info towards the RELATED log files, code changes, problem reports, documentation,...;

      While we have a huge corporate network with lots of fancy stuff, this project page came within a week the homepage of most people working on the project.

      Why ? Managers, coders and testers get and realtime (max 3 min. delay) current progress, status and available resource info. NON-POLITICAL is important for motivation. Compare status reporting (GREEN lights: everyone should feel good, things are going smooth, RED lights: there's a problem, we need help) with pageranking ( following people are responsible for x-number of bugs, bugreports ...) and ask yourself what reaction both systems provoke. The first system provokes more often a "I might help" reaction while the second provokes more a defence reaction, as in "hey, this actually not really my fault"

      If it's the fastest way to get the latest info both as a global overview as links to realtime logfiles of what went ok or wrong, that's what people will use.

      How? No graphics, just keywords and a few colors show global status info with ALL details 1 click away. Don't post 3 line sentences to say something went wrong or ok. The key is simple, dynamic, and realtime usefull info. The content should be 99.999% automaticaly generated and updated. If most content has to rely on a webmaster it's mostly useless. Webmasters tend to take holidays or get too often other things to do with equal or higher priorities . In that case the page looses most of its interest since the 'realtime' factor disappears.

  20. Re:Sigh. by Neurowiz · · Score: 2, Interesting

    You should be doing that anyway.

    An estimate is done based on assumptions and scope. If your client changes the scope, that should cash in your pocket the moment they say "Yes" to the proposed change and resultant cost.

    Part of my job is process improvement. One of the first things I find useful to teach development teams is how to say "No" or "It'll cost this much and take this long. Do you still want it?"

    --
    Neurowiz
  21. It always comes down to people by Anonymous Coward · · Score: 4, Insightful

    It ALWAYS comes down to people. This article looks to be a discussion relevant more to a commercial environment than an open source one, but I guess the same fundamental principle is true - without the right people you will not succeed. This means competent and motivated technical people, clueful and skilled management, and customers willing to be reasonable and pay for what they are getting. Take away any one of these elements, and there is no technique in the world which will result in something everybody can define as a success.

    These guys break down the problems into useful categories, which will be helpful for good teams who want to know how to be more efficient. But for my money a group of serious, decidated people who honestly want to get the job done and do it well will usually get there, barring external factors beyond their control messing it up. It might take a while, cost $$, etc. but they'll make it, because they WANT to.

    Many (I would even say most) successful open source projects succeed because they have one or several individuals willing to put the work in to make something happen. The tools they use or the way they work are less important than determination to get it done and do it well. Those without that wither on the vine.

    In theory, commercial companies and development teams should be motivated by the $$ they are paid, but that doesn't always translate into doing the job well. There are PHBs, lazy workers, unreasonable customers, and all the other joys of life out there. There is no magical "business formula" which can transmute this combination into a good product.

    Don't get me wrong, project management and efficiency techniques are a very good thing, but only when you've got the people to make good use of them.

  22. If your project. . . by smooth+wombat · · Score: 2, Funny

    is to develop a sinking ship, isn't that another name for a submarine?

    --
    We will bankrupt ourselves in the vain search for absolute security. -- Dwight D. Eisenhower
  23. This has already been done by Neurowiz · · Score: 5, Interesting

    ... since 1994, the Standish Group has been publishing the results and reasons of IT projects. Go here for the original report.

    We've gone from about 25% of projects being "successful" (on time, on budget, meeting stated needs) to about 31%. So translated, that means 2/3ds of the time you get into your car or get on an elevator, it'll work as you want.

    Consistently, the top reasons for projects failing, for the past 10 years?
    1. Unclear, poor requirements
    2. Lack of user involvement
    3. Lack of buy-in and support by upper management

    I have to agree with other comments made, this isn't rocket science. We just need some time and maturity as an industry. Civil and mechanical engineering have had thousands of years to work out their kinks. The software engineering science has had to deal with technology and implementation far outpacing our understanding of the basics and principles involved.

    But we're getting better.

    Honestly, if the world at large knew how brittle, fragile and reliant on heroism most of the critical financial and industrial software was, there would be a huge outcry. It's one of the shameful aspects of our industry.

    --
    Neurowiz
    1. Re:This has already been done by YU+Nicks+NE+Way · · Score: 2, Interesting

      You might want to read the ACM discussion. They did a factor analysis on the basis of scalar responses very similar to the Standish study. Their results basically show that the CHAOS study is nonsense.

  24. Do you have evidence of this? by expro · · Score: 3, Insightful

    I have lots of evidence of failed projects due to failure to plan.

    It can take months or years of thought and discussion to reasonably avoid extreme catastrophies.

    While it is silly to try to plan every detail and anyone who claims to do so is lying, a simple elegant, successful general approach is seldom the first one to pop into the head. It takes a lot of thought. Of course, for those incapable of such forethought, why not fail earlier rather than later.

  25. Smart People by persaud · · Score: 2, Insightful

    can be used as an excuse to avoid process, which is a distinct animal from bureaucracy.

    Good process is independent of the intelligence of the humans implementing the process.

    Good process amplifies the effectiveness of all participants.

    Good process generates tracking data that can be used in negotiations between development (reality) and management (theory).

  26. Construction Analogy Fundamentally Incorrect by irritating+environme · · Score: 3, Insightful

    In 90% of the subprojects of construction, a manager can walk by in a few seconds gauge: - progress - quality of work - time to completion - implications to dependent subprojects Can't do that with software.

    --


    Hey, I'm just your average shit and piss factory.
  27. It's not magical by beldraen · · Score: 5, Interesting

    Having many years of successful software project management under my belt, I can tell you it boils down to two concepts: professional training and discipline.

    There are a million and one books and surveys and they all say the same thing. First, there is a formal process for the development of anything (not just software). This starts with the formal documentation process and meetings to discover functional and non-functional issues. Second, there is a very strong sense by everyone to want to adjust it a little more. From senior managers who allow scope creap to managers who want steps to be cut to make up time to programmers constantly who rewrite the code because they think they can squeeze 5% more time out of a loop that runs for less than a second in a process.

    Most people do not realize that in a successful formal process that the actual time in a software project that is used to build the software should amount to only about 30% of the project's development time. The other 70% is time spent on documentation, meetings, and testing to ensure that the 30% of time used on software delevopement is actually what the company is needing. And, it is discipline that keeps people on the project process in the face of the fear of not getting the project done right. The process has to be allowed to work, both to reach a project end point and to have unobstructed process from which to learn.

    The part I get a kick out of is that just because people write software or run a company that they somehow think they just ought to know why projects work. If complex systems were just so easy, why would we need formal training? After all, anyone can build a bridge successfully without training, right? I am not being hard on people, though. I had this exact same though years ago and what I figured out is that the vast majority of the software industry is so poorly trained that it doesn't even realize that it poorly trained.

    Successful software development books have been around for more than 30 years. Go read! Better than that, get a university degree. The more liberal the better. Honestly, it is worth it. Here is a good place to start: Systems Analysis and Design by Kendall and Kendall (ISBN 0-13-041571-5)

    --
    Bel, the mostly sane.. "Of course I can't see anything! I'm standing on the shoulders of idiots." -- Me
  28. I utterly agree by SuperKendall · · Score: 2, Insightful

    I have seen this time and time again, people trying to use Process as a mechanism to put everyone on the same level. It sure works - the people who are normally 10x as effective as others are hamstrung and unable to be effective at what they do.

    This is the real tragedy of Sarbanes-Oxley. It is being used as a trump card for every process flunky that comes down the pike to implement their favorite process to the fullest. This is going to have a real and very unfortunate effect on companies that become too infected with process to move.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  29. Quilty Software by RManning · · Score: 2

    In my experience, the quality of the software that's implimented is the biggest cause of success or failure. If we build from scratch (or using open source), we can almost always pull a failing system out of the fire by throwing a few more quality development and analysis hours at it. If we buy good quality software to impliment, it works about the same. If we buy terrible software and try to impliment it, no amount of time or money can save us.

    A number of times we've had a software buying decision from a PHB for some crappy system just to see the project fail. I've never seen (in my 10 years as a developer) a project fail that had good, open development behind it.

    No doubt that changing requirements can make a project suffer (and keep us developers in super-overtime-mode). However, if you keep the users in check (project mgr to the rescue) and have a good in-charge developer to manage the technical side, I don't think you can get in too much trouble.

  30. Remove cloud cover by persaud · · Score: 2, Interesting

    Non-minor setbacks are often the result of aggressive scheduling, but cannot always be attributed directly to the specific change or person who initiated the change.

    Look at a schedule as just one component of a (good or bad or in absentia) process. Look at a process as just one component of the product. Then non-vetted schedule changes (aggression without responsibility) become product defects.

    What do you do with defects? You track them. You test for them. You fix them. Data (evidence) is needed for tracking, testing and fixing schedule defects. Collect the data in advance so you can fix the schedule in retrospect.

    Otherwise, every day will be Groundhog Day.

  31. Please check my math by Spackler · · Score: 2, Interesting

    Ok, I did RTFA (for once).

    Quote1: nearly $1 trillion was wagered on underperforming projects

    Quote2: A large number of underperforming projects ultimately fail

    Quote3: costing U.S. companies more than $75 billion each year

    How does 7% failure become a "large number" of projects failing?
    I would expect 7% to fail just from bad ideas alone.

    A little gloom and doom?

    1. Re:Please check my math by Xoro · · Score: 2, Informative

      The $75 billion is per year.

      The $1 trillion is over many years.

      --
      Kill, Tux, kill!
  32. Interesting survey results... by glh · · Score: 2, Interesting

    I find it interesting that "methodology" was the biggest risk driver for a project.

    I think the true crux of the problem with software development lies in understanding requirements. A methodology will most definitely HELP find the requirements, but I don't think it's directly the biggest risk driver.

    In my experience the biggest problem is getting the users engaged in the requirements gathering. This is the most critical piece- no matter what methdology you use (and they will come and go) you still need to make sure that you understand the requirements. In most business environments, software development tends to a discovery process. In some cases the users can visualize a system and what it should look like, in others they cannot and it just may take a lot longer time. In that case, expectations should be properly managed by the stakeholders. PM's come in to play and should explain what is likely to happen- requirements will change, development or design may take more time, etc. Investigate other options for requirements gathering and understand not all of it may be able to be done on paper.

    I've found that most business applications work best when I have users who have had some level of experience with Information Systems, who are committed to walking through what the system should do, and have support from management to do so through the entire development cycle. Technology and development tools are usually the issue, especially if you have competent developers.

    1. Re:Interesting survey results... by cavemanf16 · · Score: 2, Interesting

      Ah, but you're viewing the "what constitutes software development project failures" through a developer's looking glass. The goal in analysis is to be objective in determining what the true "drivers" are behind the data. In this instance, I don't think the report is wrong. True, user requirements (and understanding them properly) may be your biggest headache, but overall I find it is the methodology driving failed software projects at the company I work at currently. Usually the projects are never complete failures, but sometimes they are very behind schedule, don't work the way the end users thought it would, and generally are not really what the user wanted in the first place.

      And I think the reasons for these psuedo-failures is directly due to methodology. Developers think users will just "do it the right way", when software testers and business people are telling them that they won't. But the developers, those all-knowing gods and godesses of everything technical, come up with 5 major reasons why "well it would take a LOT longer to code that! I guess we can't deliver the product to you then..." This twists the arm of the business who NEEDS that software app to be delivered on time.

      If the methodology of software programming were different, and developers actually talked to "users," and worked with (instead of against) software testing groups, business analysis groups, and senior management the failures would happen with much less frequency.

  33. laziness and negligent behavior by dj42 · · Score: 3, Funny

    In my experience, it is usually drugs, alcohol, too much sleep, unconcerned management, or a combination thereof that causes projects to fail. Have you ever tried to project-manage after 8 double vodkas, a short nap, and a full rack of ribs?

    --
    We are one consciousness experiencing itself subjectively. Back to you with the weather, Bob!
  34. Re:A classic one for me by SoTuA · · Score: 5, Insightful
    When your project manager hands you a project started by a rookie and tells you, "It's 95% done. All you have to do is the final touches."

    Aaaah, that one is subject to the 95% rule:

    The first 95% of the project takes 95% of the time, and the remaining 5% takes the other 95% of the time"

    (loosely quoted from some fortune)

  35. Over design by grahamsz · · Score: 2, Informative

    I've seen a lot of projects get truly overdesigned, because someone wants to make sure that they'll be easily extensible to changing requirements.

    The resulting source is then needlessly complicated, and often when it comes to extending it, the original design gets in the way because it didn't pander to the particular change being made.

  36. I'll RTFA in my next comment but first... by museumpeace · · Score: 3, Informative

    I'll suggest everybody who has not yet done so should RTF precedents for such a study...it is as ancient as it is true: Brooks "Mythical Man Month" describes the reasons projects blow up pretty well. For all the technology heaped on software development in the 30 years since the book came out, very little has changed: Software projects are complicated beasts attempted by mere humans. Steve McConnel's books will be more familiar to /. readers and his approach to project management tries to head off the "changed requirements" fiascos with a feedback and correction mechanism of frequent critical project reviews...I wonder if that actually has worked for anyone:-(

    --
    SLASHDOT: news for people who can't concentrate on work or have no life at all and got tired of yelling back at the TV.
  37. Dissimilarity and Some Insights. by Badgerman · · Score: 2, Interesting

    Interesting article. I can't disagree with its findings, though I'd argue they're of limited usefulness as the problems it notes can happen under a variety of situations.

    The most unexpected result here, and the most insightful to me, is "Similarity to Previous Projects." This is a factor that I think deserves more attention - you can have a great staff, great management, and all the resources, but stick them in unfamiliar territory and your chance of failure goes up.

    I don't think people pay enough attention to this factor, and thus it sneaks up on them easier than the obvious ones.

    I have witnessed very talented people completely screw up an simple application because they had no previous experience with a project of that particular kind and neither did the management structure. Thus they all did their best, worked hard - and still produced a massively flawed product.

    In these cases, I asked myself "How could they mess up like this when the solution was obvious." Now I realize that the solutions were obvious to me as I was more familiar with the kind of software they were trying to design.

    --
    "The Sage treasures Unity and measures all things by it" - Lao Tzu
  38. Lack of focus by jmichaelg · · Score: 2, Interesting
    The projects I've seen go down the tubes tended to be poorly focused. Conversely, the successful ones had a set of clearly stated goals and you could see how a particular piece of code was designed to move towards that goal.

    The lack of focus made testing difficult because it wasn't particularly clear what the testing metrics should be. A library system I know of was so overwhelmingly bloated trying to meet a variety of interoperability specs that when the testers saw some 2 megabytes of data cross the lan to handle a single checkout/checkin transaction, they didn't realize they had a problem.

    Another salient feature of successful projects I've worked on is technical competence. The managers of the successful projects tended to be ex-coders and had a feel for what made sense vs what didn't. The bloated projects were run by people from all manner of backgrounds and hence, didn't have the cut-to-the-quick feel when something was going awry. One time, I was working on an air defense project for a country in the middle east and the project manager started getting antsy when he saw all his developers waiting on the compiler. We were using the machine we were going to deliver the product on and it was having a tough time just compiling code for some 12 developers. He sat down and wrote a bare-bones air defense system that did nothing more than establish a client server relationship and had the client simulate the required number of radar contacts per second while the server did nothing more than ack said contacts. The machine couldn't handle a load as simple as that which led to some back and forth with the hardware company until they upgraded the hardware to handle the problem. Had he not had the tech background, he wouldn't have realized that there was a problem until it was too late.

    The number of projects failing now will probably rise because Moore's Law isn't there anymore to bail over-speced projects out. The code written today won't run any better on tomorrow's machines primarily because it doesn't look like tomorrow's machines are going to be much faster. Knocking that crutch out from underneath projects will tumble more than a few projects.

  39. Well... by abb3w · · Score: 2, Funny
    So, if I know it is going to fail, do I still have to try?

    Yes, but you should be working harder on updating your resume than on the project.

    --
    //Information does not want to be free; it wants to breed.
  40. neanderthal project management methodologies by kpharmer · · Score: 2, Insightful

    Most project management methods push waterfall development - with its huge reliance on time-consuming and error-prone upfront analysis & requirements gathering.

    Of course, they hate requirements changes. And of course, their initial requirements are usually wrong - and fail to meet the need.

    The answer isn't to stop changes - but to use methods that aren't so vulnerable to impact of change - like patterns, agile methods, passionate & highly skilled staff, etc, etc.

  41. Unrealistic expectations by grassy_knoll · · Score: 2, Insightful

    Our most famous crash and burn ( to date ) was an attempt to migrate a number of different applications to an Oracle Applications suite.

    We expected a web based desktop client wouldn't require configuration; a jinitiator component required numerous desktop visits.

    We expected streamlined operation; In fact the replacement product required more end user data entry and provided less critical information ( i.e. fewer metrics the end users have come to expect).

    Management drank the marketroids cool aid. They should have asked the end users to evaluate the software before commiting to a purchase, rather than shoehorning the end users into accepting what was the cheapest.

  42. death march projects... by capsteve · · Score: 4, Interesting

    i actually was "assigned" to supervise a death march project at my last employer. my "new" manager(6th one in one year) knew the project was going to be canned(didn't confirm the inevitable to me, even when confronted), and most of the people would be absorbed into other projects or simply layed off. why was it a doomed project? politics.

    someone else in our organization (at another geographical location), happened to be better aligned with the top management group, and used this to their advantage to eliminate competing projects, or in some cases eliminate the internal competition and take the projects over as their own.

    of course at the time i had no idea what i was getting into(or who my "competition" was). no matter what our team did to produce a superior product, our project was cancelled for reasons beyond our control. i ended up stressing out and nearly damaged my health and my relationship...

    then i read a book call Death March: The Complete Software Developer's Guide to Surviving "Mission Impossible" Projects. i soon realized that we were set up as an ugly style project, doomed(in fact designed) to fail.

    it's good to understand why projects fail, i have not yet RTFA, but i'm sure it will compliment some of the discussions/concepts in the death march book. good read.

    --
    three can keep a secret, if two are dead - benjamin franklin
  43. Traceability by persaud · · Score: 5, Interesting

    One result of ad-hoc software design and implementation has been government regulation of software in the financial, security and pharmaceutical sectors.

    One result of government regulation has been the emergence of requirements management tools like Borland's CaliberRM and Telelogic's DOORS.

    These tools trace every functional requirement back to a business requirement. They also track the risk (schedule, safety, robustness, performance) of every functional requirement to the rest of the system.

    Vague specification, like vague design is an indicator of not understanding the problem. The first step towards understanding the problem is categorization of ignorance, such as unexpected consequences already experienced by the project.

    Good requirements management tools incorporate practices that have been proven to flush out vague specifications. Good traceability educates upstream participants so they can produce better specs in the future. Better specs yield better products, including better spec management tools

    1. Re:Traceability by frank_adrian314159 · · Score: 2, Insightful
      Vague specification, like vague design is an indicator of not understanding the problem.

      It may also be that the market is not completely understood and, as such, neither is the solution. If you can say you completely understand any market, you are a better man than I. Or maybe you have the luxury of ignoring your market.

      Bottom line, I believe that there is a certain amount of understanding beyond which trying to understand the problem further is wasted effort. This point is reached far before the amount of uncertainty or "lack of understanding" reaches zero. It happens even sooner in rapidly shifting knowledge domains or markets. Unfortunately, that's also where the most profitable use of software lies.

      --
      That is all.
    2. Re:Traceability by persaud · · Score: 2, Interesting
      Well perhaps the flimsy houses just never made it out the gate. The article is supposed to be about why projects fail. A failed project in my mind never shipped, and therefore, unless you worked there, you didn't know about it.
      Well, Linux is open and the history is available for all to see. Both Google and Yahoo have been the subject of various articles on their internal architecture. Yahoo in particular is a good example of ad-hoc requirements and incremental implementation. They used a heavily customized version of FreeBSD and a proprietary scripting language (since replaced by PHP). Google as we know used a heavily customized version of Linux. I attended a UC Berkeley presentation by a senior Yahoo scientist who said they could go from internal concept to initial public deployment in two weeks. Google Labs shares a similar philosophy. In these particular cases, the development cultures promote early prototyping, so "not shipping" isn't the failure criterion it may be elsewhere.
  44. Slips at the beginning of the schedule never count by MerlynEmrys67 · · Score: 2, Insightful
    Recently I started to think that maybe all failed projects are due to the delays inevitably imposed by the senior management who requires many policies/protocols/documents/approvals/discussions before signing off the budget.

    So I worked on a project that spent 8 months getting through "project approval" on an 18 month scedule. Of course by the time it was approved, they still wanted it to be delivered in 18 months (from the start date) so we now had 10 months on an 18 month schedule.

    Long story short - we delivered in 13 months, and were blamed for being late... Nothing like marketting and management not taking any blame for taking 8 months to approve the beginning of the project

    --
    I have mod points and I am not afraid to use them
  45. Re:here's a mirror. by BobPaul · · Score: 2, Insightful

    On the flip side, if you show that you are brilliant up front and point out the problems early, they will tell everyone else what an incredible job you did, unlike those lazy, incompetent morons who they hired the last time who had to redo the whole project.

    What planet are you from? If you tell the customer it can't be done for this that and the other reason, you're more likely to get canned as they move on to another consulting firm that can get the job done.

    Even in this day and age, most people see software as a magical phenomenon that can do anything provided the magician is powerful enough. Telling them "no" means you're but a lowly apprentice.

  46. "Software Engineering" is not yet "Engineering" by fyrie · · Score: 4, Interesting

    Here is a pretty good paper by Mary Shaw explaining why software is not yet an engineering discipline (IEEE). http://www.sce.carleton.ca/faculty/ajila/4106-5006 /Prospect%20Eng%20Soft.pdf/

    1. Re:"Software Engineering" is not yet "Engineering" by fyrie · · Score: 3, Informative
  47. Married with Children quote by Matt+Perry · · Score: 2, Funny
    Peg: Al, does this dress make me look fat?

    Al: No, Peg. Your fat makes you look fat.

    --
    Slashdot: Failed Car Analogies. Amateur Lawyering. Anecdote Battles.
  48. Answer by bonch · · Score: 5, Funny

    "Is Your Development Project a Sinking Ship?"

    Why yes, we make submarines. Hoo-hah!

  49. Not a good study: Too much "after the fact" reason by Systems+Curmudgeon · · Score: 2, Insightful

    Of the six reasons adduced for project failure, these cannot be accurately applied post facto:

    Use of an inappropriate methodology: Had they used a different methodology, they might have simply stumbled on different "gotcha's".

    Lack of formal project management practices: This reason means they know a number of issues got out of control. They do not know how much more those issues would have been controlled, nor how much additional control might have slowed progress.

    In addition, the "Requirements volatility" category begs a big question: requirements DO change over time; how is this category different from "Lack of formal project management practices" that would have planned for requirements changes?

    It is interesting that "Project complexity" falls low on this list, because it is the most clearly proven reason why project plans fail. See this website for a fairly formal proof that project complexity cannot be estimated in advance: http://www.idiom.com/~zilla/Work/Softestim/kcsest. pdf/
    This proof has been discussed at slashdot here: http://developers.slashdot.org/article.pl?sid=02/0 1/10/1844255&tid=156&tid=9/.

  50. Sources of open source project failure by Bootsy+Collins · · Score: 3, Interesting

    It would be interesting to see such an analysis done with an open source-centric viewpoint: why open source/free software projects fail.

    It would be necessary to structure the survey carefully to avoid the obvious results that don't contain useful information. For instance, Sourceforge is littered with old projects that never got past alpha or pre-alpha because no one was interested except for the project initiator (who never created enough of a start to encourage significant involvement from others), and the project initiator eventually lost interest him/herself. That may be the way in which most open source projects fail -- but that knowledge is of little use to someone running a project and looking for tips on management. There are of course books about aspects of this topic; but it would be nice if someone were to do a similar survey of open source projects that did get their legs underneath them, that did produce something that enticed involvement and an interested user community, only to eventually fail.

  51. Lot's and lot's of project failures by archilocus · · Score: 4, Insightful

    I'm working for a large Telco doing roughly 80-120 IT projects every calendar year worth about $200M. Most of them get through in one way or another, but some fail spetacularly and all of them have ridiculous overheads, delays and frustrations.

    Best example of a crash-and-burn is a transaction engine designed to process a simple text file from another company. Should have been 6 months/$500K, project actually folded at 2 years / $3M and now we're going round for a second bite at the cherry (but with a new project name!!!).

    Why do they fail ? Lot's of reasons.

    Sometimes the user's requirements are unclear. Sometimes we're using the wrong spanner for the job. Sometimes the team loses the plot and we get a jumbo jet when we wanted a paper air plane. And we're always under pressure on time, but that's business - if we don't get there first someone else will.

    What's the root cause?

    Complexity. We let our systems get too complex and now a two line code change can cost >$500K because the down stream effects will hit ten other systems that generate $1M/day of revenue.

    The moral - KISS. Use the simplest solution for the job. Don't let the sales guy run away with it, don't let your geek-ego run away with it, don't let the user's get over excited and your project might just come in on time on budget. As someone else said... it isn't rocket science... or shouldn't be...

    --

    Don't look back the lemmings are gaining on you

  52. After I RTFAed... by Eneff · · Score: 5, Insightful

    Thanks mirrordot!

    Tiwana and Keil were asking MIS directors what *they* thought, not project managers or developers, leading me to believe that this is more based on client perception than someone with experience working on said projects.

    That said, they ranked changing requirements last when talking about risk of failure, and actually said that inappropriate methodology was the top reason of project failure.

    Now, while a lack of any sort of methodology is a disaster waiting to happen, I have a difficult time believing that a bad fit for a project creates more risk than project complexity and shifting requirements combined, as they suggest.

    *sigh*

    Do you really believe that a client is going to place shifting requirements as a risk? After all, they're the ones asking for the changes!

    1. Re:After I RTFAed... by Eneff · · Score: 2, Insightful

      I think all developers expect some measure of volitility. I think the bigger problem behind requirements volitility is "the customer isn't sure what they want, and can't express what they do want to the developer."

      Now, the researchers seem to account for that in "lack of customer involvement." However, where is "We just assumed it would do that!" placed? It touches complexity, requirements volitility, and customer involvement.

      It also depends on how you define failure. Does an extra six months added to the project count as failure because it wasn't on time due to changing requirements? Or is a project that shifted focus mid-project a success even though the timescale changed?

  53. Software Project Survival Guide by Titusdot+Groan · · Score: 2, Informative
    The Software Project Survival Guide has an excellent self survey to gauge the current risk of your project failing. It's a lot more detailed than this "survey" and includes things like having a top ten risks list and management support.

    It's written by Steve C McConnell (who also wrote Rapid Development and Writing Solid Code) and well worth it for anybody doing project management.

  54. Out of Control Projects by Ann+Elk · · Score: 3, Interesting

    Chris Peters (former Microsoft VP) wrote an interesting documented called "Is Your Project Out of Control". It seems to have appeared on the net in various formats.

  55. keep a strong launch focus by clsc · · Score: 2, Informative
    >> and most importantly, give breathing space for >> competitors to come up with similar products >> BEFORE we do.

    Focus on launch from the start. Launch all the time, incrementally. Here's a few other nice pieces of advice. Read it, and then, well forgetaboutit... just do it.

  56. Correct by sg3000 · · Score: 2, Insightful

    > management tries to replace good ol' fashioned thinking with
    > process

    That's because that's what they teach in business schools. Businesses are about repeatability and consistency. It's good if you can make a cup of coffee. It's great if you can sell a cup of coffee for more than it cost you to make it. If you can make a good cup of coffee and sell it profitably one million times, you have a healthy, sustainable business. Obviously, the third action requires a process.

    That's why sometimes people make a distinction between management and leadership. Management is about incremental cost reductions and process improvement. Leadership is about changing directions and determining new courses of strategy.

    The problem is managers often confuse themselves for leaders and leaders confuse themselves for managers. That's why many start-ups fail: the person who started it had great leadership skills (coming up with a new idea for a product), but poor management skills (taking that product and building a sustainable business out of it).

    Management is always looking for a process. The problem is creative people can feel stifled by the process and poor performers can hide behind it. A good idea is to have a mixture of people (managers and leaders) in different roles so you have elements of strategy combined with repeatability. Obviously to do that you have to have effective teamwork and people that can get along with each other. I think the relative scarcity of all those elements (managers, leaders, teamwork) is the reason why failure is so common.

    --
    Insert simplistic political, ideological, or personal proselytization here.
  57. Mmm. by mwillems · · Score: 2, Insightful
    Well, maybe as an engineer as well as a senior manager and a CTO, I can add my two cents' worth.

    First, a survey based on data "as reported by development project managers" is suspect to a high degree. Obviously their view will differ from that of the senior manager and from the actual developer. SO I will put little stock in that survey.

    But the question is valid: why does it always fail?

    Personally, I see a mixture of the following:

    • Management lack of technical knowledge, or "How can you ask someone to manage a development project when that person is the sort of person who does not even know how Excel works?" This leads, of course, to wildly unrealistic expectations: which is the prime cause of failure. The emperor has no clothes and spending 100k on Siebel will not make your company suddenly efficient!
    • Developer lack of discipline - a real biggie. "We do not need to write specs, that does not apply to us: we need to design it as we go", how often have I heard that, as well as "Hey, even MS is always late so we're not doing badly only being 6 months late". There's also Blaming Others: "if you had not asked us to also fill in time sheets/come to a company meeting/etc we'd have been on time".
    • Developer lack of business understanding. The world is complex and guess what, it ain't ideal. Success in business is about being somewhat less inefficient than the competitor. It's not about being left alone for six months in a clean environment without intrusion.
    • Lack of specs (which leads to mission creep immediately), or overanalysed specs: both of these kill a a project quickly.
    • Lack of process around implementation and testing. Sorry - you do need progress reports, test sequences, checklists, code reviews, etc.


    I am not ranking them in importance, will leave that to others!

    Mike

    --

    ---
    BDOS ERR ON A:>
  58. Bias by Bloater · · Score: 2, Interesting

    Interesting that project managers say the factors that they are paid to manage are the ones that are most important and higher risk (and thus justify the most funding, of course).

    I also think that the chosen dimensions are not orthogonal. The methodology chosen is influenced by experience with similar projects... If your architects have done something similar before, then a structured approach will be extremely effective, if they haven't, then an iterative approach as they work out how to do it.

    All in all, a pointless study that will do more harm than good.

  59. Bad Idea? by daVinci1980 · · Score: 2, Interesting

    I find it funny that they didn't consider 'fundamentally a worhtless idea' one of the top reasons that projects fail.

    Seriosuly, how many of you have worked on a project (probably you were assigned by someone who wanted to get rid of you), where you thought from the beginning of the project 'this is a terrible product?'

    Even if the product ships (which is unlikely, because your coworkers probably also think the product is terrible, thus morale plummets, thus productivity plummets, thus ...), the customer won't want it, and won't buy it.

    --
    I currently have no clever signature witicism to add here.
  60. I have a dream ... by smokestacklightning · · Score: 2, Funny

    That I will be alotted an absolutely reasonable and appropriate amount of time to actually to complete a project. I have a dream that my ptototypes will not be scattered around the country in various states of "production". I have a dream that I will someday be able to look at a project in CVS and proclaim - that is the damn freaking good code - I am proud that my name is on this application ( and mean it ).

    I have learned to live with disapointment this long - back to the next fire ...

  61. Requirements prioritisation and versioning by hughk · · Score: 2
    When you get a requirement, you attempt to prioritise it, broadly between show-stoppers and nice to have. The show-stoppers have to be achieved, but perhaps some can be scheduled for 1.1? Nice to haves can always be held over until 1.1 or later.

    Once you have captured requirements, you present them back to the user with some difficulty estimates. This is where the 'Win98' thing you quote should get killed. You also make sure that the customer is aware that you are always thinking around the next releases too (even if there is no budget yet), so they feel comfortable with postphoning funtionality.

    When changes appear (you can't dodge all of them), you make sure that the customer is aware of changes to delivery schedule and budget. Perhaps they don't really need that in 1.0?

    --
    See my journal, I write things there
  62. History and Future by persaud · · Score: 2, Interesting

    Appreciate the history lesson. Are any of the early requirements management tools still around, in any incarnation?

    Agree on the value of tracking estimates and actuals. I've not had the experience of working on a project that was mature enough to track both. But even a mental comparison of estimates with personal observation was invaluable in understanding developer strengths/weaknesses.

    Do you think there is a place in the market for an open-source requirements management system? E.g. if someone started such a tool, would any home-grown tool owners contribute expertise or code?

    Have you seen a good tool that is more affordable than CaliberRM/DOORS? The market seems to have an absent low end (excluding MS Office). Microsoft plans some process management for their developer tools, e.g. "Visual Studio Team System" is mentioned in a comprehensive description (with photos) of their internal build+test environment for ASP.NET.