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."

494 comments

  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 Fnkmaster · · Score: 1

      That's great in theory, but if your sales and marketing people aren't willing to cooperate, it can be hard for the project manager who is sometimes dictated to what he can or cannot tell the customer ("we already sold them feature X without asking you, so no, you don't get to tell them that feature X adds two months to the deadline").

    4. Re:Project Management Authority by bwalling · · Score: 1

      Too much "planning and documenting" and not enough prototyping. Whip something up and have the client/user work with it. Make changes based on that. Don't plan the living shit out of it before you even have something to work with.

    5. Re:Project Management Authority by Anonymous Coward · · Score: 0

      Whip something up and have the client/user work with it

      Jesus Christ, you must work for my ex-boss. All I ever heard that bitch say was "Put it out there and see what you can do with it", or "just give them something to look at it for now", or the classic "whip something up right fast". WTF does that mean? Just WTFF does that mean? How the hell do you "whip" something up when there is less than zero project requirements gathering going on? I'm so glad I don't have to work for that fucking bitch anymore.

    6. 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
    7. Re:Project Management Authority by Linker3000 · · Score: 1

      Sorry, forgot:

      7a) Both parties come to some sort of agreement over new costs and timelines, but when the project runs over the original timeframe (due to additional work requirements) the customer starts kicking up anyway and threatens not to pay or to invoke penalty clauses/hold back part payments etc. and you have to decide whether you want to continue with a customer/supplier relationship based solely on quoting contract terms at each other.

      --
      AT&ROFLMAO
    8. 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...

    9. Re:Project Management Authority by Zonnald · · Score: 0

      This really depends on the level of understanding the developer has for the client needs in the first place. It also depends a lot on the clients ability to properly describe what they need.
      Since these are often dynamic, then the mix of planning and documentation vs protoyping has to be determine for each project.
      The biggest issue with prototyping is when the prototype is seen as the finished product, no matter how well it is explained that it is just a visualisation tool.

    10. 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.

    11. 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.

    12. 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.

    13. Re:Project Management Authority by persaud · · Score: 1

      Couldn't agree more, but non-specific specs deserve non-specific solutions.

    14. Re:Project Management Authority by Anonymous Coward · · Score: 1, Insightful

      A reading from the Book of PMBOK. Praise be unto PMI to whom all praise is due.

      "The project manager is ultimately responsible for the success or failure of the project."

      Simply put, a project manager is responsible for managing everything from budget to quality to scope changes to communication to record keeping and personnel. If the project fails it is because the project manager did not step up to the duty of changing whatever needed to be changed in order to get the project done. And, yes, I'm a full time professional project manager and have been for the last 15 years. Project management isn't for everyone. It's not easy, it's not an extension of being a coder or network engineer (though I was both in former lives), it's an entirely different discipline.

    15. 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.

    16. Re:Project Management Authority by ricka0 · · Score: 1

      ...give breathing space for competitors to come up with similar products BEFORE we do.

      That's a good point which had me thinking about other similar models which have been done like this.

      Other Sample Models/Studies
      SWOT analysis can be used for internal projects and whole companies. It doesn't provide a final number like this study but it would at least require someone to think about the project from and may help align the sales and development teams. It's a rather simple model and has been developed further by many others but it was sort of like the grandfather to this type of qualitative thought.
      Porter's Five Forces model again although primarily considered for whole companies or departments could be applied to projects and was created in 1980. Threat of New Entrants could be threats of external companies instead doing the job before you do, or other internal departments/teams doing the project, etc. Power of Suppliers may be other departments or other projects which may change requirements or require extensive red tape slowing the project down. Etc., Etc., Etc.
      Six Sigma used for project time estimation (which looks like it could be useful for determining if a project is on track and if not if it will then create other problems?
      A study on Identifying Best Practices in Information Technology Project Management.

    17. 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
    18. Re:Project Management Authority by QuietRiot · · Score: 1
      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.

      Probing your developers on the relative cost (in terms of time, frusturation, estimated debugging work) for each feature listed may allow the client to trim the requirements of the project.

      Present a relatively long bar next to each feature that corresponds to the work and heartache the developers will go through to implement it. The client can then easily cross out those features out that aren't so important and would extend time to completion unnecessarially.

      Getting a priority level out of the client at the feature specification phase can be helpful as well.

      • What is it that you absolutely need?

      • What would go along with these critical feature well?

      • What would be "icing on the cake?"

      Don't let them run you over with needs! They're not all "needs" and you probably can't finish them under the deadline they want anyway. Priortize while allowing for feature expansion.
      1. 1) Mockup something and present it to them.

      1. 2) Ask "Is this what you're looking for?"

      1. 3) Architect your framework (real coders should be taking part here!)

      Then try BigVisibleCharts and SCRUM, SCRUM, or SCRUM (pdf)
    19. Re:Project Management Authority by Anonymous Coward · · Score: 0

      WTF is WTFF?

    20. Re:Project Management Authority by Jboy_24 · · Score: 1

      I'd like to add a couple of points if I might from my expirence.

      1a) Customer is asked if there are any new featuers they need or would like.

      And I would change..

      7) Sales and Project management fears customer will complain

      8) Sales and Executives fear cusotmer will pull the plug.

      Usually if you're upfront to your customers, keep on point that you want to give them a solution that will work, and there needs to be give and take on both sides in order to assure a working product, they won't get to the point of actually not paying or sueing.

      Having been through many projects its very rare that a customer will pull the plug on a huge project. So you shouldn't fear that they will by telling them something early. The only reasons things get to the lawyers is when you constantly lie to them about the state of things, the impact changes will have etc.

    21. Re:Project Management Authority by Anonymous Coward · · Score: 0

      The real solution is to reject the spec as being not specific enough.

    22. Re:Project Management Authority by persaud · · Score: 1
      The real solution is to reject the spec as being not specific enough.
      The original poster makes a good case why this is not an option (the customers are lawyers). If the original poster is correct, I propose forking the spec. If the original poster is incorrect, yes, rejecting the spec would be best.
    23. Re:Project Management Authority by Anonymous Coward · · Score: 0

      There is a different take on continually changing requirements, namely that it's not the client's fault, it's simply the nature of the game. In other words we should accept that clients will change their requirements as they understand the problem better, as they see and play with prototypes, etc. We therefore need to design software that is flexible enough to handle such changes.

      Indeed until the software profession accepts that you cannot write up accurate specifications of most projects, since such specifications are an evolving thing, we will never be good at writing software.

    24. Re:Project Management Authority by Tablizer · · Score: 1

      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).

      That is relatively easy to do if you build or have a little framework for it [1] with drop-down boxes having Equals, Starts-with, Ends-with, Contains, Range (two inputs), and perhaps "is one of". The drawback is that users can perhaps run non-indexed queries that can really drag down system performance. Pre-limited query ability greatly reduces such risk.

      [1] Although they are generally "and" queries, similar to what somebody else mentioned nearby, one can simulate "or" by doing multiple runs. The "is one of" operation can perhaps be used insted of "or" for some columns.

    25. Re:Project Management Authority by Crash+McBang · · Score: 1

      Here's something that has worked for me in the past: Have Marketing assign a level to each feature/requirement:

      Level 1 - Must be in the next release or nobody will buy the product.

      Level 2 - Nice to have in the next release, but can be moved to the release after this one if constraints (e.g. people, time, money, etc) prohibit its inclusion.

      Level 3 - Nice to have, but can be moved to a subsequent release if constraints (e.g. people, time, money, etc) prohibit its inclusion.

      Now you can focus on what's important but still design the thing so that all the requirements can be implemented in the proper order.

      --
      To put a witty saying into 120 characters, jst rmv ll th vwls.
    26. Re:Project Management Authority by jeko · · Score: 1
      "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."

      A.M.E.N.

      --
      He put his boots up on the table and made a face. "The sig," he smirked. "You can waste your life in search of the sig."
    27. Re:Project Management Authority by clockwise_music · · Score: 1

      >I always lie to clients and say "I don't know how to do Crystal Reports"

      Yeah, that's such a great idea. Why don't you just say that "Crystal Reports often requires a lot of time to do anything outside a simple report" instead of lying? Or how about, "I could build it a lot quicker and save you a lot of money"?

    28. Re:Project Management Authority by StarsAreAlsoFire · · Score: 1

      oooOOOOooo You've never done that, have you!? I made that mistake. Once. I earned (and am still earning, once in a while) an incredible amount of money building reports for them in Crystal..... :~)

      Works out, sometimes. You're honest, they don't recognize the truth, truth bites them in the pocket book.

      Although I have to admit I have happier ways to earn money than designing reports in Crystal. Ugh.

    29. Re:Project Management Authority by StarsAreAlsoFire · · Score: 1

      That should so be taught in college. Freshman year. I wonder how many people here can say they learned it the hard way. Probably the story usually goes something like 'I/we was/were just trying to impress the customer! Now, two weeks later, they want to know why its not done!!'.

      After my lesson was beaten into me, I switched to making everything run off of test cases in code when I could, command line flags, and the occasional empty frame with the menu system in place. You tend to design better code that way anyway; keeps you from writing code inside the Listeners etc that shouldn't be there. I had a biiig problem with that :~) If your project is properly spec'd you will find this isn't a problem; for on-the-fly coding (e.g. for personal, fun projects) it can be a bit harder. I'm sure it depends on your personality.

    30. Re:Project Management Authority by vatima · · Score: 1

      I am agree with you.Like to add here its not only project manager but Architect and Leads also. This are eyes & ears for a Manager and they need to give proper feed back and also point out the Risk items.

    31. Re:Project Management Authority by Anonymous Coward · · Score: 0

      WTF is WTFF?

      My guess is either a typo or "What The Fucking Fuck" [does that mean] ?!

    32. Re:Project Management Authority by FriedTurkey · · Score: 1

      Saying you know Crystal Reports is a good way to wind up doing nothing but Crystal Reports all day. Becoming a reporting guy is not something that will get you ahead. I rather be doing something to further my career. Some people enjoy making reports, and I fully support those people because I don't want to write reports. :-)

    33. Re:Project Management Authority by j-pimp · · Score: 1

      How the hell do you "whip" something up when there is less than zero project requirements gathering going on?
      I think they meant get a basic idea if the requirements and then whip something up. I think that method leads to alot of rewrites, but it works if your not afraid to scrap your original design.

      --
      --- Justin Dearing http://www.justaprogrammer.net/ We're just programmers.
    34. Re:Project Management Authority by QuestorTapes · · Score: 1

      Yes; I've only felt comfortable adding Crystal Reports to an application for user-defined reporting requirements twice in the last 10 years. Both times the company was already using Crystal in this way, and had people in place to create these reports for users.

    35. Re:Project Management Authority by llefler · · Score: 1

      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.

      If you're working with internal customers, I would recommend using live data. Build your project incrementally, giving the users a chance to get involved throughout the process. This helps because developers rarely know all the details of what the users need to perform their jobs. It's better to have a user say "function x doesn't work that way" two weeks after the start of the project rather than two weeks before the end. Why live data? Because users have their jobs to do. If they are just 'testing', they will tend to put it off and it never gets done. Of course, this means a little extra work putting in safeguards so they can't inadvertantly corrupt data.

      I say this as someone who has worked on several projects where the requirements were either minimal, incomplete, or plain wrong. The requirements were written by experienced developers who thought they knew what needed to be built. Unfortunately, developers tend to think that since they understand the database and business rules, they know how users do their job.

      --
      It is amazing what you can accomplish if you do not care who gets the credit. -- Harry Truman
  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 Blue-Footed+Boobie · · Score: 1

      Someone mod that funny...

      --
      DAMN YOU OCTODOG! DAMN YOU TO HELL!
    4. 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.

    5. Re:So... by 2A · · Score: 1

      Dude, Oracle jokes are so next week.

      yes, but would they still be next week if you hadn't... ah forget it.

    6. Re:So... by sweatyboatman · · Score: 1

      obviously, we'll need to redo the survey to include a low diagnostic score as the cause for the project's failure and then include that in the diagnostic.

      --
      It breaks my pluginses, my precious!
    7. Re:So... by tiredwired · · Score: 2, Funny

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

    8. Re:So... by ketamineX · · Score: 0

      No, but your for a trillogy would have failed. Should have stuck with the first version.

    9. Re:So... by killjoe · · Score: 1

      It's funny but it also contains a profound insight.

      Projects fail when people don't care. People don't care if they have somebody else to blame.

      That's it. There is nothing else to it.

      Sales promises big things because they can blame somebody else when it's not delivered.

      Management changes specs because they don't care and they can blame somebody else.

      Developers don't care becuase they are just a cog in a giant wheel and if they mess up there will be another freaking insane project tommorow to work on.

      Nobody cares, everybody points fingers, you start tommorow on the next big thing. Welcome to corporate america.

      --
      evil is as evil does
    10. Re:So... by SoSueMe · · Score: 1

      I was thinking it was more like Schrodinger's cat. In this case, the cyanide capsule being the indication that the project could fail.

    11. Re:So... by budgenator · · Score: 1

      the Heisenberg method of project management
      is that the more I know about one risk driver the less I know about the others?
      How about the Schrödinger's Cat method, the project has an indetrminate state of successfullness until management interferes with it

      --
      Apocalypse Cancelled, Sorry, No Ticket Refunds
    12. 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
    13. Re:So... by AndroidCat · · Score: 1
      So, if I know it is going to fail, do I still have to try?

      Yes, but you can switch to Wally-Mode.

      --
      One line blog. I hear that they're called Twitters now.
    14. Re:So... by kin_korn_karn · · Score: 1

      Dammit, I got it backwards. Oh well. It's just Slashdot

    15. Re:So... by tanguyr · · Score: 1

      Dude, put that to music. You'll sell no copies, but it'll go gold on bittorrent ;)

      --
      #!/usr/bin/english
    16. Re:So... by Anonymous Coward · · Score: 0

      um d00d!

      that quote is from the matrix - it has nothing to do with blimps at all!!

    17. Re:So... by Frogbert · · Score: 1

      I knew you were going to say that.

    18. Re:So... by phats+garage · · Score: 1

      I've informed my department that if we ever go XP, I'm going to be the one playing the nose-harmonica.

  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

    1. Re:The formula by Anonymous Coward · · Score: 0

      You work for CA?

    2. Re:The formula by Anonymous Coward · · Score: 0

      The sad thing about this formula is it pretty much sums up whats been taught to me in my software engineering classes (beyond reciting the various steps of the waterfall process and such).

      Nearly every formula consisted of
      [bullshit]*[totalcrap]-[hotair]^[bestguess]
      o r other crap like that, where nothing was actually numerical in nature, but people made up the equation so they could sound self-important and sell textbooks.

    3. Re:The formula by WoBIX · · Score: 0, Offtopic

      Off-topic:

      I don't understand what people are hoping to achieve withi this EA Petition in your signature. The NFL would have a hell of a lot more to lose if they committed breach of contract and got sued for millions (and in today's litigious insanity, possible billions) by EA by backing out after the deal is signed.

    4. Re:The formula by Anonymous Coward · · Score: 0

      ...
      + free donuts
      = success

      I think you meant to say: ...
      + free bagels
      + free good coffee
      = success

      instead

  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 Anonymous Coward · · Score: 0

      It's the Microsoft model at work!

    2. 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."

    3. Re:I blame perfection by Anonymous Coward · · Score: 0
      Your wrong, Duke Nukem Forever will be the perfect game.

    4. Re:I blame perfection by EvilTwinSkippy · · Score: 1
      Before doing battle, in the temple one calculates and will win, because many calculations were made;

      before doing battle, in the temple one calculates and will not win, because few calculations were made;

      many calculations, victory, few calculations, no victory, then how much less so when no calculations?

      --Sun Tsu, The Art of War

      --
      "Learning is not compulsory... neither is survival."
      --Dr.W.Edwards Deming
    5. Re:I blame perfection by ph1ll · · Score: 1
      I've never seen a project fail because of perfectionism.

      I've seen lots fail because of sloppines.

      I don't wish to start a flameware. I'm genuinely curious as to whether people have ever seen a software project that was too well engineered*.

      * I don't call something like analysing the problem to the N-th degree in UML class diagrams before writing a single line of code perfectionism. That's clearly being silly. I mean projects where people said "Whoa! But that's just a hack! We can't do that!" and had the guts to tell management "Give us a little time in the short-term and we'll save you much more time in the long-run".

      --
      --- "We've always been at war with Eastasia."
    6. Re:I blame perfection by Evil+Poot+Cat · · Score: 1

      Compromise gets projects done.

      ...and redone, and redone, and redone...

    7. Re:I blame perfection by bladesjester · · Score: 1

      Calculations are invaluable when done correctly. When they cause doubt and undue delay, however, they can be crippling (This is where the point of knowing both yourself and your enemy comes in). But that is yet another difference between a superior strategist and an inferior one.

      --
      Everything I need to know I learned by killing smart people and eating their brains.
    8. Re:I blame perfection by Anonymous Coward · · Score: 0

      But without compromise, it's rare to get a single line of code written. Which project is the failure - the one that mostly worked but needed rework later, or the one that never got started?

    9. Re:I blame perfection by llefler · · Score: 1

      I've never seen a project fail because of perfectionism.

      That's because they are never perfect so they don't get released.

      I'm only half joking. Software has a limited shelf life. If you keep working on a project trying to get everything "perfect", chances are your project will get cancelled. Either the money will run out or the market will change.

      --
      It is amazing what you can accomplish if you do not care who gets the credit. -- Harry Truman
    10. Re:I blame perfection by Snaller · · Score: 1

      And then there is George Bush

      "No plan violently exe...done today is better than a plan."

      --
      If Google really cared they would fix Android Chrome to reflow text, instead of discriminating
  7. My Development Project by Artie_Effim · · Score: 0, Offtopic

    I was developing a robot that automagically first posted slashdot.org for me, to save me tons of time at work and whatnot, but sadly it didn't work too well.

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

    ... did they fail or succeed?

  9. 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.

    1. Re:Aggressive scheduling by Anonymous Coward · · Score: 1, Insightful

      I'm in QA, been doing this for 9 years. This parent's post is right on. Aggressive scheduling KILLS projects. It's what causes tension.

    2. Re:Aggressive scheduling by mutterc · · Score: 1
      I'm not sure anything can save software projects from aggressive scheduling.

      As long as at least one company is doing it, then pretty much all of them have to, to compete. Customers come to us with 'it needs to do X, in Y weeks, for $Z' already in hand, and we take it or starve. If we told them how much time / money it would actually take, they'd just go to someone else, believing their overpromises.

      Have a nice day!

    3. Re:Aggressive scheduling by Anonymous Coward · · Score: 0

      Don't forget about wasting several hours a day in status meetings to determine why the schedule is slipping. When you have to wait for the boss to go home before you can make any useful progress, you know you the reality distortion field is reaching full power. As Dilbert would say, the project starts to smell like a dead woodchuck.

  10. here's a mirror. by JaffaKREE · · Score: 0, Troll
    1. 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!

    2. Re:here's a mirror. by Anonymous Coward · · Score: 0

      Arrgh!! You got me! (I must be a vampire, because I didn't see myself)

    3. Re:here's a mirror. by JaffaKREE · · Score: 1

      It's not really a troll so much as it is a joke, but I guess there's no -1, Joke.

    4. Re:here's a mirror. by BobPaul · · Score: 1

      That's the funniest thing I've ever seen!!

      Anyway, here's an actual mirror

      And here's a MirrorDot Link in case that goes down.

    5. Re:here's a mirror. by dgatwood · · Score: 1
      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!

      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. Now instead of one customer over the course of a year, you have one customer for six months and then six months each for eight of their partners who were shocked that a company would actually sing the praises of a contracting company....

      Or, the corollary: in the end, forcing others to pay for fixes for things that you should have caught to begin with is the surest way that your company will be replaced by an open source project that took an intern six weeks to create using MySQL and PHP.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    6. Re:here's a mirror. by BobPaul · · Score: 1

      Well, it was sort of a pratical joke and was seen by this moderator as a time waster or something. I don't know, from the defination ofwhat a troll is I'd have to say that your comment had nothing to do with flamebait, and should either be modded nothing, funny, or perhaps off topic, but not troll.

      Offtopic.. like this post ;)

    7. 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.

    8. Re:here's a mirror. by clodney · · Score: 1

      Despair.com (http://www.despair.com/consulting.html) sums this up perfectly: "If you can't be part of the solution, there is good money to be made prolonging the problem"

    9. Re:here's a mirror. by Bill+Dog · · Score: 1

      Well you never say something can't be done -- you're right, you'll look like boneheads. But if you feel out the customer a little, and try to gauge their tolerance level to being told on occasion "this is not wise in the long run", you can probably steer as much as possible them away from mistakes you'll have to (charge them to) fix later. Afterall, your job is not just to implement the software, but to advise them. It's their gold, so they get the final say, but as much as you can give them the impression of the truth of the situation, that you're the experts in the area of software design, and they are not, without sounding too arrogant, the better.

      --
      Attention zealots and haters: 00100 00100
    10. Re:here's a mirror. by winwar · · Score: 1

      "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."

      Well, in many respects, most anything CAN be done. Now whether it should be done, how much it will cost, or whether the outcome will be good is another story.

      You are correct that if you say no, they may move on. Better would be to say yes but it will cost you X amount. With X being more than they want to pay. But in the end, if you don't think it can be done, why take the job? You will just look bad in the end.

    11. Re:here's a mirror. by mcrbids · · Score: 1


      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.


      One common incantation I use frequently: Anything is possible if it can be clearly defined. It's only a question of what is feasible .

      Works like a champ to A) keep me from ever appearing to be a lowly apprentice and B) divert their attention towards practical development instead of pie-in-the-sky possibilities.

      Now, if only I could get out of the requirement to maintain existing code (however buggy and scary) I'd be in HOG HEAVEN!

      --
      I have no problem with your religion until you decide it's reason to deprive others of the truth.
    12. Re:here's a mirror. by Anonymous Coward · · Score: 0

      TROLL???

      I think some of our moderators need to read the FAQ Questions about Moderation

      Troll -- "A Troll is similar to Flamebait, but slightly more refined..."
      Flamebait -- Flamebait refers to comments whose sole purpose is to insult and enrage.

      The parents post was funny. Damn funny. If you didn't find it funny, don't moderate it. There was no insult, no GNAA, no LemonParty or likewise. He posted a link to a mirror. If not funny, mod it informative

      What ever happened to focusing on moderating things up instead of down?

    13. Re:here's a mirror. by BobPaul · · Score: 1

      But in the end, if you don't think it can be done, why take the job?

      I'll quote the parent of the parent of the parent (or whatever)
      Yet from a marketing perspective, that's bad for business. ... our company's goal is to maximize profit.... 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!"

      To get hired to fix the problem after it doesn't work out, that's why.

  11. 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 dreamt · · Score: 1

      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..

      You have obviously not been to Boston to experience the Big Dig. Billions over budget, years and years late, and now, its leaking. Construction has the same issues.

    5. 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
    6. Re:Projects fails because no one ever learns by GeorgeMcBay · · Score: 1


      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..


      You're right, we're not special. Real-world construction jobs are also (still, after all those centuries!) often mismanaged, over-budget and not done in the time-frame originally estimated. There is no silver bullet. Not in software, not in anything that is complex.

    7. 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.

    8. Re:Projects fails because no one ever learns by Reziac · · Score: 1

      My sister is a senior architect for a firm that handles massive development projects. And yes, my observation is that it's when you get management and/or customer behaviour like we see in fizzled software projects, that these "hardware" (construction) projects go over time, over budget, out of spec, or just plain ... fizzle.

      Thus it is with any industries that handle any sort of complex project, where creators, sales droids, purchasing managers, end users, gov't regs, and whoever or whatever else can all introduce problems that interfere with the workflow.

      --
      ~REZ~ #43301. Who'd fake being me anyway?
    9. Re:Projects fails because no one ever learns by Fulcrum+of+Evil · · Score: 1

      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..

      It's not snobbery - we're not properly respected by our management, so when we bring up these issues, we are often ignored. Project failure is usually a management failure.

      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
    10. Re:Projects fails because no one ever learns by TiggertheMad · · Score: 1

      the construction industry has been doing huge projects of equal complexity for centuries.

      ...and yet, they strangely still go over budget and past deadlines on occasion. Hmmmm...

      --

      HA! I just wasted some of your bandwidth with a frivolous sig!
    11. Re:Projects fails because no one ever learns by csbruce · · Score: 1

      Repeat after me: Software is nothing like Construction.

      Sure it is. If you put one bolt in the wrong place, the whole building will collapse.

    12. Re:Projects fails because no one ever learns by Anonymous Coward · · Score: 0

      What do you expect from a government project? They are doomed to failure. The only way to do things right is with the free market. The free market will satisfy everybody's wants and needs just fine if the government would just get out of the way.

    13. 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.

    14. Re:Projects fails because no one ever learns by ColdWetDog · · Score: 1

      Attributed to somebodyorother:

      "If contractors built buildings the way programmers wrote software, then the first woodpecker that came along would destroy civilization"

      --
      Faster! Faster! Faster would be better!
    15. Re:Projects fails because no one ever learns by HiThere · · Score: 1

      And then after all that planning the electricians install electrical outlets on posts in the middle of what's going to be a doorway...and it's delivered that way for customer acceptance.

      The lawsuit lasted for years!

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    16. Re:Projects fails because no one ever learns by Knos · · Score: 1

      Your point is a tautology, for the situation you describe is similar because people bought into this analogy, not because the analogy holds.

      As an illustration, the terms used for describing the design teams and construction teams in an IT project in french are lifted directly from the vocabulary of construction. (Maitrise d'ouvrage, Maitrise d'oeuvre)

      People would love to think of software development as a factory, this lead to waterfall, non iterative developments.

      People would love to think of software development as construction-work, this lead to hyper-specialization of workers, who no longer now the big picture. This leads to people getting surprised when regressions lurk. This leads people to believe that one cannot change anything for the single reason that it was done early in the development process.

      For what its worth, I actually have people in my team that did construction work in the past and we like to point out the absurdities that emerge when one treats software development like one would treat construction work, and vice versa.

      --
      . . . . . . . .. . . . . . . .
      may u!sh 2 sm!le at dz!z bad nn.!m!tat!ion
    17. Re:Projects fails because no one ever learns by EvilTwinSkippy · · Score: 1
      Let's see...

      Texas Tower, Tacoma Narrows Bridge, Hyatt Regency Causeway, Chernobyl, Johnstown Dam, Citibank building...

      Large complex failures DO happen in construction. Some are simply expensive to fix. Some result in structural failure. Others cost thousands of lives.

      --
      "Learning is not compulsory... neither is survival."
      --Dr.W.Edwards Deming
    18. 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.
    19. Re:Projects fails because no one ever learns by Bob9113 · · Score: 1

      the construction industry has been doing huge projects of equal complexity for centuries.

      What's the most complex mechanical device you can think of? As far as dealing with human input goes, about the most complex, common, purely mechanical device I can think of is an adding machine (or maybe a cash register). A damned site less common would be Babbage's Analytical Engine or the Bombes from WWII, but those could hardly be said to have been around for centuries, and still don't touch the complexity of even a relatively simple modern CRM system (for example).

      This may be a simple failing in my imagination - can you name some complex mechanical devices? A jet engine? Handles extremes, but not complicated. A mechanical wrist watch? Lots of very fine tolerances, but quite simple to understand. What am I missing?

    20. Re:Projects fails because no one ever learns by BoomerSooner · · Score: 1

      I build houses and am a software engineer as well, so I feel obligated to chime in on this.

      If any builder takes on a project without knowing 99.9% of the costs, regulations, etc., beforehand they won't be building for long. My company is a very small custom home builder (my father is the architect I am the site manager/CAD/Computer Guy/etc...) We know the cost of every single material that goes into our home and what our expected profit margin is. By tightly controlling costs and avoiding waste (hiring more expensive contractors with more experience pays in the long run) and selling a product for less than our competitors we make around 50-100% more per home. By doing so we can provide a better product.

      When we have a customer that wants to change something or their time to pick tile/granite/carpet/wood/etc... comes up, we make them sign an order and they have an allowance. If they go over they pay more, if they go under we refund them money. Design Build Specifications are necessary in building and software development the same way.

      Would you build a home without a floor plan? (assuming a country home where permits aren't required) No. Why would you build anything with a floating spec and expect it to be successful. You wouldn't. The problem is peoples jobs aren't relying on the success/failure of a single project sometimes. It's better to not take on a project doomed to failure than it is to try and make it succeed.

      I've got 2 software products that are available in 2 different companies. The first was a piece-meal project that had no spec. It turned into a nightmare but is slowly breaking even. The second product I have is taking off extraordinarily well due to the extensive planning and knowledge of the product before development.

      Planning doesn't insure success, it does however make it significantly more likely.

    21. Re:Projects fails because no one ever learns by SunFan · · Score: 1, Insightful

      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.

      Thanks for trivializing a large part of our economy. Think about all the details in contruction, down to interior design, financing, legal compliance; do you still think it is less complex than software? The main difference between construction and software is that people don't have much of a problem mortgaging a house, but no one I know would want to take out a mortgage for software! Yet, a software system can cost more than an entire office building! People just have not come to terms with the true cost of what they want. People who would gladly pass up granite counter tops and stainless steel refrigerators still demand all the latest codecs on their new Best Buy wonder machine.

      --
      -- Microsoft is the most expensive commodity operating system and office suite vendor in the marketplace.
    22. Re:Projects fails because no one ever learns by SunFan · · Score: 0

      I've been doing XP properly for about 5 years and it's one of the reasons the company i work for has survived.

      I would bet that the reason your company has survived is that you and your co-workers are talented, work together, and can be productive. XP is just a coincidence.

      --
      -- Microsoft is the most expensive commodity operating system and office suite vendor in the marketplace.
    23. Re:Projects fails because no one ever learns by curious.corn · · Score: 1

      Only if you take into account plain suburban villettas. Once you start taking all that encompasses civil engineering (bridges, airports, sewer, hydro, dams... etc) your argument breaks down.

      Over here in Italy a "geometra" (some kind of undergraduate technical school oriented towards construction, mostly for rank & file bureaucrat training) can design up to 3 storey buildings but as long as he can lookup tables it'll do fine. The thing is... there are tables to lookup

      Once you begin work on anything as simple as a bridge, or designing prebuilt bridge segments, there's a heap of best practices, design guides, normative calculations, specification requirements and field implementation guidelines to follow; each design is more or less unique but the process has been very thoroughly ironed out so as to look simplistic, but it's not.

      --
      Mi domando chi à il mandante di tutte le cazzate che faccio - Altan
    24. Re:Projects fails because no one ever learns by mpcooke3 · · Score: 1

      Sure that's a factor, we pair program with each new potential developer as part of the recruitment process to see how well we work togethor.

      XP works by enabling the team to work togethor and more effectively whilst stay focused on bringing business benefit. Bringing benefit over the longer term by developing a team and a process that both encourages and adapts to changes not just blaming customers for changing their minds after 3 months.

      Customers will ALWAYS change their minds, even in the unlikely event they knew what they wanted when they started business requirements will change over time. XP isn't a silver bullet but compare to to more traditional processes that don't encourage change and it looks pretty good. (EG compared to "6 months upfront design and 200 page out sourced legal specs" or "individual eliteist hackers" type enviroments)

      Other people i'm sure have success with other processes but this has worked for us and i get tired of slashdotters slagging it off when i'm not convinced most of them have worked in a full XP team.

    25. Re:Projects fails because no one ever learns by tshak · · Score: 1

      Construction is building. Software is designing. Compilers build the design. Construction workers build the design. When a construction project is late, it is usually because the building process took longer than anticipated. When Software projects are late, it is because the design process (the code is part of the design) is late. While there are some correlations betweent the two industries, for the most part the differences are huge.

      --

      There is no longer anything that can be done with computers that is nontrivial and clearly legal. -- Paul Phillips
    26. Re:Projects fails because no one ever learns by Anonymous Coward · · Score: 0

      Please don't blame XP just . . . because it's a buzzword used by people who have never even written a unit test let alone pair programmed.

      I blame XP because people seem unable to talk about it without admitting that different methods will work for different groups. There Is No Silver Bullet.

    27. Re:Projects fails because no one ever learns by LWATCDR · · Score: 1

      I am not trivalizing anything. My brother in law builds multi million dollar homes for a living. He is the manager with a degree. Guess what a wall is a wall. The blue prints do not have very stud and every nail. Look at blue prints for a large home sometime. Complex? Yes equal to a large program Not you your life. The Application I work with is about 120k lines of code. This is your normal size application. I would say that it exceeds the complexity of most construction projects. If you want a project that is more complex than say Windows or the Linux kernel you can find them. They are the largest and most complex projects around. Things like aircraft carriers, SSNs, Huge Vegas hotels, airports, airliners,are all in that class. Guess what they are often over budget and late.
      The reason why software is so cheap compared to these other projects is production is simpler. If you could run a copy of an aircraft carrier off on a cd burner it to would cost only a grand or two. If you could find a few million people that wanted there own aircraft carrier.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    28. Re:Projects fails because no one ever learns by Anonymous Coward · · Score: 0

      Yes, a simple jet engine can be built without any moving parts - technology doesn't get much more simple than that.

    29. Re:Projects fails because no one ever learns by Anonymous Coward · · Score: 0

      While there certainly are differences in the Software and Construction Industries, these guys are right on. I can say this with confidence. My undergraduate was in construction management (business admin for the construction industry), and that is what a did for a few years before heading back to school for a masters in IS. The amount of time and precision that goes into designing a building before the land is even cleared is phenomenal. On a large, complex project, the specifications come in books all broken down by trade categories. Specs get right down to the brands, models, and finishes acceptable by the customer. When the primary contractor gets the plans and specs to prepare a bid, they do not have to guess at what quality of material can be used. Heck, there's even a soils report indicating what can be expected in the ground while the foundation is being prepared. Problems in construction schedules and budgets usually occur because something about the specs was wrong, such as the soils report, or last minute change orders. There are other issues that delay construction projects, such as obtaining permits, passing inspections, weather, natural dissaster, etc.

    30. Re:Projects fails because no one ever learns by Reziac · · Score: 1

      I agree with you -- proper planning, from overview to details, is the way to keep such projects running smoothly. Or as the old saying goes, "Bug free, cheap, on time, works. Pick two."

      But here in California, I see a lot of building projects, both public and private, that evidently failed to plan, or perhaps more accurately, planned to fail. One has to wonder how else cost overruns get so out of hand without a certain amount of, well, planning to do so :/

      --
      ~REZ~ #43301. Who'd fake being me anyway?
    31. 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.

    32. Re:Projects fails because no one ever learns by Anonymous Coward · · Score: 0

      Maybe you are mixing up two things: highly complex vs. slow to change. And industry can produce highly complex products, yet be slow to change.

      The industries that are slow to change are the ones where failure is expensive.
      The fast-changing industries are the ones where failure doesn't cost too much and the product can be modified cheaply.

      An example of a slow-changing industry is shipbuilding: if your supertanker sinks on its maiden trip you incur high costs, and fixing the problem is not trivial.
      An example of a fast-changing industry is software: modifying code and recompiling is relatively cheap.

    33. Re:Projects fails because no one ever learns by virtual_mps · · Score: 1
      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.

      Of course, the geodesic domes, buildings covered with titanium, donut-shaped garages, skyscrapers with whimsical fairy-tale spires or exposed piping, etc., tend to be the projects that are horribly over budget, leaky, and otherwise defective on delivery. The anonymous square box is the thing the construction industry can deliver on time, on budget, and in a working condition. Unfortunately, the software industry hasn't advanced to the anonymous square box stage yet.
    34. Re:Projects fails because no one ever learns by Anonymous Coward · · Score: 0

      Most Government projects are outsourced to privare firms and consultants these days. Yet they still fail. So it seems that Government and private-enterprise are just both as good as each other when it comes to failure.

      I'd be amazed if the Big Dig didn't have problems though. It's like nothing done before it, and on a huge scale. How could such a complex project not snag?

    35. Re:Projects fails because no one ever learns by Thuktun · · Score: 1

      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.

      I'm not disparaging XP or other agile methodologies, but I think the success of certain teams moving to agile processes is due to those teams finally building real unit tests, rather than waiting to shake out bugs during integration.

  12. 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.
    1. Re:Ratio of Intelligence to Project Complexity by Gyorg_Lavode · · Score: 1
      There is definately a problem with management and process. It comes down in every study that process is needed. Basically, best practices dictate that you are not reliant on your 'heros' to complete a project.

      The problem is that we haven't defined where the balance is. A program with ALL processes PERFECTLY documented is just as good as an ad-hoc program if the processes are shelfware. You Will ALWAYS Need Heros! A project manager I talked to described the lady that made sure all the programmers filled out the correct documentation/etc. She was a hero.

      Now, if you know you are always going to have heros, how much process do you need? Obviously you'd like to have documented that your going to Get Requirements, Design, Code Functions, Test, Unit Test, Integration Test, Acceptance Test, etc. But Does it help to have 10 people working full time to impliment all best practices from configuration control to requirements control to metrics calculation when you only have 8 people coding? There needs to be more research on how to draw the line with how much process is necessary starting with the assumtion that you Will Need Heros. What information is it ok to lose when you Hero retires? What processes can everyone teach their intern rather than telling the intern to read the 200 page paper that took 12 people 2 years to write. These are very important questions that need to be addressed in Software Aquisition and Program Management.

      --
      I do security
  13. Sigh. by Benanov · · Score: 1

    Requirements Volatility was #5 on their list. Around where I work it's #1.

    Another day of this client making some _unnecessary_ and nit-picky change and I'll start adding an extra week to my estimates of when it'll be done.

    1. 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
    2. Re:Sigh. by javaxman · · Score: 1
      Requirements Volatility was #5 on their list. Around where I work it's #1.

      Another day of this client making some _unnecessary_ and nit-picky change and I'll start adding an extra week to my estimates of when it'll be done.

      So wait a minute: Lack of customer involvement is #2 on their list of problems, but Requirements Volatility is last... but getting the customer more involved in your case means making the Requirements Volatility worse...

      What their ranking really says to me is that successful projects include the customer who knows what they want and thus sets the requirements early. In my own experience, the customer usually has only a vauge idea what they want, and a really good idea of what they don't want. What you need to be able to do is put off the _truly_ unnecessary changes to a _scheduled_ version 2, either doing a planned multi-pass prototype/design phase, or locking down agreed-to requirements sets and designs ( including UI and other specifics ) as the very first step.

      Beware, though- what you as a programmer might see as a nit-picky change might really be a workflow-enhancing feature that prevents the customer from hating your app... people would much rather their tools do what they want, rather than having to learn to use them.

      If your client is making time-consuming changes late in the project... well, the very fact that they can do that, or that small changes are time-consuming, should raise a major red flag. You're doomed- either the change being made isn't really minor, or you've blown #1 and picked a development methodology which doesn't allow for smallish changes to be quick changes.

    3. Re:Sigh. by Squid · · Score: 1

      Customers, particularly when managed by bad salespeople, view involvement as a one-way street: they pump in flawed requirements and rapid requirement changes like cannonballs over a castle wall, and do not wait see where they hit.

      Usually one client takes up a disproportionate chunk of your development resources because an eager salesdroid sold them the whole solar system for very little money and you can't back out now. There is one, and possible more than one, contact person at that client who is a tireless fountain of bad ideas (if there are more than one, their bad ideas contradict each other, and YOU are part of THEIR internal communications problems) and that just gets heaped on you via a commission-happy salesman, bypassing any kind of review process at your office or theirs - that same contact person never reads the memos that get sent back. Usability? HA! Customer involvement? HA! The cannonballs fly in one direction only.

  14. 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.

    2. Re:Blame the P.M. - usually by John_Sauter · · Score: 1
      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.
      Blaming the project manager is a cop-out. It's like saying a plane crashed because of "pilot error." Yes, probably the pilot made an error, but he certainly didn't intend to crash the plane (terrorists excepted). To understand the problem well enough to fix it, you need to go deeper. What is there about the system that caused the project manager to make poor decisions?
      John Sauter (J_Sauter@Empire.Net)
    3. Re:Blame the P.M. - usually by jacobcaz · · Score: 1
      • What is there about the system that caused the project manager to make poor decisions?
      Well, in several cases it was upper management not having a methodology for selecting a qualified project manager; thus putting the wrong person in charge of the project where it promptly fell on its face.

      Everything got much better when that person unexpectedly quit and walked out. A bit of panic and frenzy and then things smoothed out quite nicely.

      So if you don't have both a top-down and bottom-up methodology for projects the blame can be pinned largly on the underqualified P.M. and on the management structure that put him there in the first place.

    4. Re:Blame the P.M. - usually by IronChef · · Score: 1

      I love it when the PM has no actual authority... When all your PM can do is beg the developers to do their work... well, that's a great system. Been there, done that, got the T-shirt.

    5. Re:Blame the P.M. - usually by Anonymous Coward · · Score: 0

      It boils down to excellent management skills and excellent people skills and without both you're setting a project up for disaster

      If you think "excellent skills" are needed to be able to complete anything, you're not that smart.

      Truth is that the skills required to complete something does not have to be excellent, they only have to be sufficient. Depending on the complexity of the problem, the skills can be pretty darn low. (Think ERP report programming.)

      If your development project is so complex it requires the most excellent developers in the world to be completed, you better be working for NASA or ESA, otherwise you haven't done what you should:

      keep it simple, stupid! The golden rule of success.

    6. Re:Blame the P.M. - usually by AltaMannen · · Score: 1

      "Blaming the project manager is a cop-out. It's like saying a plane crashed because of "pilot error." Yes, probably the pilot made an error, but he certainly didn't intend to crash the plane"

      That is not a good analogy, a pilot would never try to change a bug-reporting tool mid-air or suddently try to increase speed by adding another propeller to the airplane because the flight got delayed in wind turbulence. Also, if there is a big red button that says stop engines and the pilot mistakenly presses that and the plane crashes that is a crash caused by the pilot, intentionally or not.

      I think the project manager is a sizable part of the risk involved in running any project, but not the only one. Apart from other team failures, more senior management than project managers are usually to blame for utterly risky decisions that project managers would not have the authority to do or prevent (like I promised the customer we'd be done in half the time at half the budget over lunch).

    7. Re:Blame the P.M. - usually by winwar · · Score: 1

      Well, the quote included the phrase "poor project management." This implies more than just the person on the project. So blaming the project manager may be a cop-out. But blaming management isn't.

      Management decides what projects to take, how to run the project, and who to hire. So if it fails, they are responsible. Of course, if it works, then you could say they are responsible too :)

      Of course, saying management is responsible is obvious and useless at the same time. The goal is to get the project done-how do we do this in spite of crappy decisions. In reality after all, if it fails, the employees on the project will be blamed. If it works, the management will claim credit.....

    8. Re:Blame the P.M. - usually by davecb · · Score: 1
      My old director (hi, Dean!) made everybody in a 70-person department take the same one-week project management course, so we could
      - communicate with the project managers
      - communicate with each other in the same language
      - recognize problems the PMs faced, and
      - contribute to solving them.

      As you might expect, we saw every one of the cited problems, including pusilanimous management in the next two years of work. We did better that most at surviving, them, though!

      --dave

      --
      davecb@spamcop.net
    9. Re:Blame the P.M. - usually by John_Sauter · · Score: 1
      ...if there is a big red button that says stop engines and the pilot mistakenly presses that and the plane crashes that is a crash caused by the pilot, intentionally or not.

      The proximate cause is the pilot pushing the button, but that isn't enough analysis. We need to ask why the pilot pushed the button. Did he feel a need to stop the engines? If so, why? Might there have been a false indication that the engines were on fire? Or, did he push the button because it was right next to a button he intended to push? Should there be another button that restarts the engines in case the big red button is pushed accidently?

      To put this in the context of project management, the project manager needs to have accurate, trustworthy information about the condition of the project and the consequences of whatever changes he might make in the project's procedures. In addition, he needs a way to tell his management that he is no longer able to bring the project in on time and under budget.
      John Sauter (J_Sauter@Empire.Net)

  15. 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.

    1. Re:Cosmo Quiz by Anonymous Coward · · Score: 0

      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

      The difference is that you don't know if your project will fail or not. We already know you're fat, we just don't want to admit it.

  16. Buzzword Alert by leonscape · · Score: 1

    I can't believe how many buzzwords they managed to fit in there. You don't have problems their Risk Drivers, don't we already have enough Jargon?

    --


    If a first you don't succeed, your a programmer...
  17. 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.

    1. Re:Skill sets for Project Management by Anonymous Coward · · Score: 0
      I've seen more projects fail because the Project Manager is a fresh-out-of-MBA-school kid who spends more time with his textbooks rather than understanding both the technical and/or customer issues.

      I'd rather have a salesguy or an engineer be a PM than your typical "professional" project manager; because at least they'd understand half the issues. The career-PM won't understand either one.

    2. Re:Skill sets for Project Management by chochos · · Score: 1

      And yet it's a common mistake in many companies to "reward" a programmer by making him project manager...

  18. Coral Link (cached with pictures) by Anonymous Coward · · Score: 0

    Article

    Figure 1

    Figure 2

    Figure 3

    So, I hope that helps as it gets slower.

  19. A classic one for me by Anonymous Coward · · Score: 0

    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's a guarantee that the entire app needs a complete rewrite. Now, that's what I do from the get-go. I'm fortunate that I am in a situation where I have that kinf od leeway.

    1. 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.

    2. Re:A classic one for me by stratjakt · · Score: 1

      The funny thing is, that pretty much sums up most OSS projects. The final 5% is always missing or up to the user.

      In fact, most of these rules apply to any given OSS project.

      --
      I don't need no instructions to know how to rock!!!!
    3. 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)

    4. Re:A classic one for me by MrBandersnatch · · Score: 1

      Thats similar to my most recent project.

      2 VB6 "programmers" and 9 months work and they handed off the project to my current employer, "90% complete".... ...problem being that the 10% that wasnt completed was the design, documentation and testing!

      I tell you, I wept!!

    5. Re:A classic one for me by wuice · · Score: 1

      The funny thing is, that pretty much sums up most OSS projects. The final 5% is always missing or up to the user.

      In fact, most of these rules apply to any given OSS project.


      You're right, open source software projects are still software projects, and are bound to the rules of software projects.

    6. Re:A classic one for me by Anonymous Coward · · Score: 0

      I envy you. I was handed a VB6 project last year the exact same way. I've rewritten from scratch at least 50% of the application and I've had to completely change the way just about every form except 2 out of about 200 work. When the company I work for goes under, I think I'm going to try to re-write it for shits and giggles. I'll bet it won't take me half a year to write a fully-functional GPL version in C++.

    7. Re:A classic one for me by SixDimensionalArray · · Score: 1

      This is known as Pareto's Principal, a common concept studied in project management. It is also referred to as the 80/20 rule, and was meant to be applied to more than just project management.

      However, applied to project management, the 80/20 rule states that 20% of the work will actually take 80% of the time/resources necessary. For more, check http://management.about.com/cs/generalmanagement/a /Pareto081202.htm.

      From what I understand, people don't actually take the time to measure the actual performance of their projects, review the results, and learn for the future. That may be why rules like the "80/20" rule often seem mythical - they are untested until you yourself actually implement them.

      My 2 cents..

      -6d

    8. Re:A classic one for me by danme · · Score: 1

      I think SoTuA and you probably mean the same thing: When doing a smaller project (where you have a simple analysis and design), I find that 95% of all code is written very quickly, say in 5% of the total project time. The resting 95% job time (and 5% amount of written code) is spent on testing, bugfixing and reviewing the results.

    9. Re:A classic one for me by Anonymous Coward · · Score: 0

      Reminds me of a project where the programming team was asked why it took 2 years to debug the program, because the guy who wrote it wrote it in 3 weeks. Geez, we must have sucked.

      As for most of my experiences, most project fail because there's no correlation between authority and responsibility. Usually, I have the responsibility to get the work done by such and such a date, but no authority to make the decisions necessary to make it happen. Not only are the requirements not under my control, but neither is resource allocation.

      In every case where the authority matched the responsibility (exactly twice in my career), the project was successful.

  20. Learn from the pros and never fail again! by Dystopian+Rebel · · Score: 0, Flamebait

    "There is no project failure that Marketing can't redefine as a success."
    -- excerpt from The So-Secret-We'll-Have-To-Kill-You Microsoft Handbook

    --
    Rich And Stupid is not so bad as Working For Rich And Stupid.
  21. Re:"changing requiresments" less bad than no chang by Anonymous Coward · · Score: 0


    Of the $2.5 trillion spent on IT during 1997\u20132001, nearly $1 trillion was wagered on underperforming projects [3]. A large number of underperforming projects ultimately fail, costing U.S. companies more than $75 billion each year [8]. While some events cannot be predicted or controlled, many of the risks that repeatedly plague software projects can be assessed and managed.

    That's taking the view of the shareholders. The money spent isn't "gone", it's been paid to employees and contractors who then spend it on food, lodging, xbox modchips, etc.

    Actually I think it'd be interesting to see them use their formulas on the budgets given to the Pentagon every year.

  22. Overruled by beancounters by tjlsmith · · Score: 1

    was the cause of the project I just involuntarily left (it was canceled) to flounder, and will be the cause of the one they are on now.

    --
    Mumia Abu-Jamal is *laughably guilty*. Check the evidence.
  23. 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 Anonymous Coward · · Score: 0

      You must have worked for my employer, right? :)

    2. 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.

    3. Re:Correct, but there is more by crazyphilman · · Score: 1

      Where I work, I'm the official department asshole because I'm the only person who argued (many, many times) against the adoption/creation of a framework. I'm one of the only permanent employees where I work, surrounded by consultants on all sides. The consultants are all pushing their own framework ideas, and stabbing each other in the back to further their own plans.

      If it isn't one thing, it's another. The latest horrible idea is to create a VB.Net clone of J2EE and Struts (instead of just doing standard .net programming).

      What's really nuts about it is, all the systems we create are relatively small collections of web pages which all touch the same general set of databases. All we REALLY need is a 3-tier setup, database, app server, and web server. And our projects can be pretty small.

      Instead, we're going to get this mammoth thing, so that every project will be the same size across the board. It's just nuts.

      I gave up arguing about it. Whenever I fight it, I get totally mobbed by all the consultants. The last time I argued about this, they all ganged up on me.

      Fuck it, I'm on salary, I'll be by my desk eating antacids and drinking peptol bismol. I'm tired of getting picked on.

      --
      Farewell! It's been a fine buncha years!
    4. 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!
    5. Re:Correct, but there is more by haystor · · Score: 1

      I was a consultant at a place like this. The guy in the cube across from me was the permanent employee who had to give up fighting. It may have been the best 2 years or a project maintaining the legacy stuff as we watched the old get replaced by the an ineffective solution.

      Before:
      Profitable product, $5mil per year.

      After:
      Product replaced, clients leave in droves, product cancelled.

      Now, I may not have an MBA and one of those fancy titled positions but I'm pretty sure I could have destroyed the project for half the $2mil it cost.

      I tell myself I've given up on programming possibly being a good job but I know the next place I'm at, I'll still be making my please.

      Oh, but the project did get converted from Perl to Java. Now they comply with the corporate standard. I know Perl programmers are bit harder to find but for a million or so I could find one. I fail to understand how there is no budget for 4 months of development to avoid maintenance but there is budget for 9 months of 7 developers to produce a brand new version of the product in a different language.

      I'm tired of working with consultants that are only looking out for their own interests. I'm tired of the Managers who can't say no (or the systems where "no" isn't allowed). I left my last position because it felt like I was stealing. I was expected to advocate what would give us the hours instead of what would necessarily give the client his solution.

      Oh well, I'm taking a few months off to produce my own stuff. Maybe this will cure me of my thoughts against stealing.

      --
      t
    6. Re:Correct, but there is more by Anonymous Coward · · Score: 0

      My employer is doing the framework deathmarch right now as it happens. Hell we even outsourced part of it to India, just to really screw ourselves over I guess. So far we're at T+2.5 years and counting..

    7. Re:Correct, but there is more by ClioCJS · · Score: 1

      You chose to be exploited. If more of us had the balls to say no, this shit wouldn't happen. You must be a slave to your job. Married with children?

      --
      -Clio
      Karma: Bad (mostly from not giving a fuck)
      Blog: http://clintjcl.wordpress.com
    8. Re:Correct, but there is more by Anonymous Coward · · Score: 0

      Name of that PM was it Vlad by any chance?

    9. Re:Correct, but there is more by Anonymous Coward · · Score: 0

      No, but I used to call him "Antipattern M--". The way I saw it, he was basically like a walking antipattern. Actually, as the project wore on, I developed a perverse interest in detailing the antipatterns his thought process represented. There was "functional decomposition", "Analysis Paralysis" (he was a pure waterfall-model guy), "Corncob" (he was a total creep, and a very pushy micromanager, something that is AWFUL when the person doesn't even know OOP), "Golden Hammer"... It became almost a hobby to notice an antipattern in progress.

      Sigh...

    10. Re:Correct, but there is more by Anonymous Coward · · Score: 0

      Hoo, boy. Wanna do something fun? Check over the code you get back from the Indian developers, and count how many times they use arrays and nested arrays instead of OO structures like collections.

      For some odd reason, Indians seem to love arrays. Just recently, one of the guys where I work used a recordset for part of a tabular display, and a 2-D array for another part of it. We found that we were unable to rearrange the columns of the display because we didn't know what else might be using the array.

      In times like that, it's clear why God gave us alcohol.

    11. Re:Correct, but there is more by crazyphilman · · Score: 1

      Someone unpleasantly said: "You chose to be exploited. If more of us had the balls to say no, this shit wouldn't happen. You must be a slave to your job. Married with children?"

      That is quite simplistic.

      Let me ask you a counter-question.

      If you were a programmer who managed to land a good civil service slot at the beginning of the tech crash, and who found yourself employed when almost everyone else you knew had been laid off...

      If you had managed to gain yourself a great spot in a place you liked, with bosses you liked, doing work you found interesting...

      And, if out of the clear blue sky YOU got stuck with a project like this, with an asshole project manager like this, which threatened to wreck everything for you and destroy your happy, quiet little job...

      And if you KNEW for a FACT that the project manager wasn't just screwing you, but also your boss (who you like), the agency (which you like), and the clients for the project (who you think are basically okay people)...

      Would YOU just throw in the towel? Or would you fight for what you had BEFORE the asshole sleazed his way into your workplace? You seem to be implying that I just rolled over and took it. I fought this guy tooth and nail. In fact, in more than one way I ended up saving the project from certain doom. I didn't ENJOY it, mind you, and it still ended up blowing up in my face in a most unpleasant way; I mean, I lost face, I lost a LOT of status, I lost a lot of my job satisfaction...

      But I've been clawing my way back to it inch by inch ever since, and I'm almost back to where I was before that project/idiot project manager fucked everything up for me. I'm almost back to where I want to be, and I've got a chance for a real promotion coming up, so things ended up sort of alright. If I'd just told them to go to hell, or quit, I wouldn't be where I am now. I'm not about to give up my career over this crap.

      I bet you're young. I'm guessing... Early twenties? You sure don't sound like you're MY age... When you're older, you'll understand the value of standing your ground and protecting what you have.

      --
      Farewell! It's been a fine buncha years!
    12. Re:Correct, but there is more by ClioCJS · · Score: 1
      I'm 30. Computer Science Degree. Moved out of my parents house into my own at age 24. Currently building an addition.

      I'd probably throw in the towel. I've been through the work-war thing before (I lost--BOFH) and it's just not worth it.

      There are many ways to support yourself. You just have to have faith in yourself.

      I'm on my 6th job (reasons: quit in disgust after earning money to buy home[1.5yrs], laid off[6mos], lost war[6mos], finished project[3mos], quit for 20% raise[11mos] and have been at my current place for 10ms). I'm sure one day I wont be hireable doing what I currently do, especially with my background.

      Am I going to allow myself to be enslaved just by that fact? Nope. If I can't "hack" it (pun intended), I'll go do something else. Use my $50K line-of-credit on my house to get a degree in psych (you can't outsource insanity!). If I can't cut it in American society, I'll leave. Teach english in Japan, teach computers in Spain, program in India -- whatever. There are plenty of places to go and plenty of things to do.

      In fact, I think the best thing that could happen to me would be for my wife and I to both get fired simultaneously. We have $100K or so in credit and another $100K or so in equity (not counting the addition construction which is eating into that, $75K). We have the means to emmigrate. It would be fun to be somewhere else, free of American stress, superficiality, bullshit politics, and religion. But currently, inertia governs us. We are at rest and tend to stay at rest. Slowly growing old surrounded by red fuckers in a red state.

      This is not what I want. Why would I break my balls over it? I'm very happy and comfortable and have great fun every weekend, never work over 40 hrs, and do other things I can't mention here. Life is good. But work is not life. Don't take their bullshit. RESIST.

      "People who talk about revolution and class struggle without referring explicitly to everyday life, without understanding what is subversive about love and what is positive in the refusal of constraints, such people have a corpse in their mouth." -Raoul Vaneigem, "The Revolution Of Everyday Life"
      I hope this post provides some insight into my mindset. For more info, my lame blog.
      --
      -Clio
      Karma: Bad (mostly from not giving a fuck)
      Blog: http://clintjcl.wordpress.com
    13. Re:Correct, but there is more by crazyphilman · · Score: 1

      Pretty unusual for someone entering his thirties to think that way; interesting. I think it's an unhealthy attitude, because if you run every time someone throws down with you, sooner or later there's nowhere left to go. Why race to the bottom? Stake out some territory and hold it against all comers. It's more satisfying anyway.

      Take me for example. I'm 34. I really like the life I've built here, in the second bluest of blue states. I worked really hard to get to this particular spot, I went through all kinds of hell to get here what with the tech crash and the dot-com years, and there's no way I'm going to just give up and let what I've got get taken away from me.

      It takes a lot more than a crappy experience or three to make me back off. What's the quote? "to the last I grapple with thee; from hell's heart I stab at thee; for hate's sake I spit my last breath at thee."

      Now, THAT's .sig-worthy!

      --
      Farewell! It's been a fine buncha years!
  24. 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 NoInfo · · Score: 1

      Well, Duh! Everyone knows you have to use switch statements in that kind of project.

    2. Re:I blame the If statements by Anonymous Coward · · Score: 0

      Introduce them to version control.

    3. Re:I blame the If statements by yohan1701 · · Score: 1

      Hey I think I used to work there.

    4. 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. :)

    5. Re:I blame the If statements by loconet · · Score: 1

      sounds exactly the same as some of the projects i have to work with. It is sadly not a rare phenomenon

      --
      [alk]
    6. Re:I blame the If statements by emiddlec · · Score: 1
      If you have an overload of these long chains of "if" statements, it sounds to me like a classic example of when to use subclasses and/or polymorphism. (See Replace Type Code with Subclasses and Replace Conditional with Polymorphism)

      Turn this..

      if (customerName == "cust1") {
      // customizations for customer 1
      } else if (customerName == "cust2") {
      // customizations for customer 2
      }
      // ...

      Into this..

      Customer1 myCustomer;
      myCustomer->doCustomizations();
    7. Re:I blame the If statements by Eneff · · Score: 1

      Congratulations! You have just identified a wonderful place to implement interfaces.

    8. Re:I blame the If statements by TiggertheMad · · Score: 1

      Have you looked at moving the conditionals into precompiler directives? You could set a single flag (#DEFINE CUSTOMER ) and then include sections of code as needed. The program would actually only contain code that was going to be used.

      --

      HA! I just wasted some of your bandwidth with a frivolous sig!
    9. Re:I blame the If statements by Fulcrum+of+Evil · · Score: 1

      Well, Duh! Everyone knows you have to use switch statements in that kind of project.

      Pretty much. It's just that the switch looks a lot like public class CustomerImpl implements Customization.

      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
    10. Re:I blame the If statements by Anonymous Coward · · Score: 0

      Well that's wonderful if the project was developed with an OO language.

    11. Re:I blame the If statements by Duhavid · · Score: 1

      I thought it *was* interfaces...

      If, isnt that the Interface to the f object?

      --
      emt 377 emt 4
    12. Re:I blame the If statements by xv4n · · Score: 1
      if (customerName == "cust1"){
      // customizations for customer 1{
      }else if (customerName == "cust2"){...{
      }

      OMG! I hope you aren't working on Win XP at Microsoft, are you?

  25. 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?"
  26. 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 jqh1 · · Score: 1

      On a project I worked on last year, we used a traffic light kind of thing that somebody picked up from a novelty store. QA would light the green light if testing was going well, they'd light the yellow light if there were performance problems or if the defect rate was climbing, and they'd light the red light if the test system crashed.

      --
      who's moderating the meta-moderators?
    2. Re:Change Transparency a.k.a. Big Visible Charts by persaud · · Score: 1

      Nice and simple.

      Did the QA traffic light change any behavior in the project (developers, testers, managers)?

    3. 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.

    4. Re:Change Transparency a.k.a. Big Visible Charts by persaud · · Score: 1

      Great story, thanks for posting. Please mod anon. parent up.

      I can support everything you wrote as I recently used this technique in a project that was late but management wasn't hearing what people were saying. Within three days of color-coded status implementation, three levels of management had readjusted their expectations (not calmly, but they did adjust).

      Can't over-stress the need for non-political and simple design. Real-time is the magic that makes everyone turn to such a system for "true" status.

      My implementation was web pages with style sheets to remove the Mozilla scrollbars. Soon after this status became available on the wall, managers asked if they could have access to the web pages from their desk.

      This was the first time in my ten year career that I saw developers (myself included) become so invested in entering accurate task/test/schedule tracking data. It was open, peer reviewed and non-political. And when you took some action that would change the status (added new task, closed a ticket, changed an estimate), you immediately looked to the rollup status page to see the impact on the overall project schedule, as well as the drill-down for your individual status.

      Advise all to re-read parent and take notes.

    5. Re:Change Transparency a.k.a. Big Visible Charts by Anonymous Coward · · Score: 0

      the page looses most of its interest

      "loses".

  27. Is Your Development Project a Sinking Ship? by i+3+joo! · · Score: 1

    Yarrr!

    1. Re:Is Your Development Project a Sinking Ship? by Anonymous Coward · · Score: 0

      jawohl, mein Fuhrer!

  28. Managing Up by persaud · · Score: 1

    is at least as important as managing down.

    1. Re:Managing Up by Angry+Toad · · Score: 1

      Couldn't agree more completely. A good PM works people at all levels to ensure things come together.

      Of course that's assuming he/she is given sufficiently free reign to focus on project success over other priorities.

  29. 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.

  30. Re: 'doghouse' theory of software by Punctuated_Equilibri · · Score: 1
    I call this the 'doghouse' theory -- building software should be simple, like building a doghouse, if we could just get our act together.

    The big difference is that construction projects are tangible, you can walk up to the doghouse and see with your own eyes how it was built. When a change is suggested it's obvious to everyone what the impact is.

    Software is abstract. There may be some screens and output, but the internals can only be understood conceptually (and only relatively few people can do this).

    That's why software is much more difficult to execute, even though from a project manager's point of view the plan may look similar.

    --
    In group behavior: 'because they're evil/morons/sheep/crazy' is not 'insightful' it's 'oversimplified'
  31. 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
    1. Re:If your project. . . by igny · · Score: 1

      sinking ship

      Didn't you notice two typos in the phrase?

      --
      In theory there is no difference between theory and practice. In practice there is. - Yogi Berra
    2. Re:If your project. . . by Anonymous Coward · · Score: 0

      It's because it comes up that it's a submarine.

    3. Re:If your project. . . by Anonymous Coward · · Score: 0

      No, that would be a project to develop a shipwreck.

      A projact that runs around below the surface and only pops up when needed (like release) is a submarine project, and at least where I used to work was the only way that any decent work happened. Typically, the 'submarine' projects were small groups of focused individuals who gave a crap. There was none of the political crap, bean counting to death, nor micromanagement going on. The folks on the submarine project often were even working on them after hours or on personal time.

  32. 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 slowhand · · Score: 1

      ... since 1994, the Standish Group has been publishing the results and reasons of IT projects...

      You beat me to it. Now, 10 years later its coming to light.... with a reference to the Standish Group CHAOS REPORT. More study is a good thing. Lots of replies above seem to reflect a lot of "who cares, just get it done", combined with lots of "I know what it is, its xyz..." Folks, read the CHAOS REPORT report if you havent.

      --
      Busy aligning my non-linear thoughts.
    2. Re:This has already been done by glh · · Score: 1

      Great link- I used a lot of the Standish report for some masters work.

      Time and maturity are important considerations, but I don't think software development is totally an "engineering science" that can be likened to traditional engineering (mechanical, civil, etc.) Primarily because software development is so "chaotic" in nature. The chaos is not due to the lack of maturity, but more because of the human element. Simply put- software does not have the same level of objectivity as a bridge or sewer system might have.

    3. Re:This has already been done by Neurowiz · · Score: 1

      I've been through this discussion a few times, the "art" versus "engineering" debate. I'm sure back when people were first figuring out how to move water or build bridges, it seemed just as unobjective.

      I disagree, and I think that's perpetuated by a number of bad habits, bad practices and simple job protectionism coming into play. It's much easier to keep a job if I'm seen as the only "craftsman" who can maintain a system.

      As we move more into component architectures, I think you'll see less of this. I think that's becoming more true simply because of the complexity of the systems being written. The more complex, the more need for objectivity and the less that "craftsman" mentality can hold the line.

      --
      Neurowiz
    4. Re:This has already been done by glh · · Score: 1

      I disagree, and I think that's perpetuated by a number of bad habits, bad practices and simple job protectionism coming into play. It's much easier to keep a job if I'm seen as the only "craftsman" who can maintain a system.

      There is some truth to that. In an ideal world, it may be possible to build a system once that could do everything perfect. But given the speed and chaos at which business requirements, applications, and technology change it is unlikely that the "art" aspect of software development will change any time soon.

    5. 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.

    6. Re:This has already been done by Neurowiz · · Score: 1

      I've been thinking about this subject for some time, and the best I can say is that the real art is not about the actual software construction, but about the art of dealing with people. At least that's my experience.

      I would say the majority of problems stem from not having a process in place that recognizes change, mitigates risk and allows a system to evolve. Any methodology, XP, RUP, even waterfall, will produce good software and from an engineering standpoint, the methodologies provide, even in Internet time. The issue is people.

      To me, negotiation is the art - and usually negotiation is required to manage scope, deal with change and perceptions and get the software done in Internet time.

      I think the construction aspect will become easier and easier, as components proliferate. The hard part will continue to be managing expectations and teach people how software *should* be developed.

      --
      Neurowiz
  33. 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.

    1. Re:Do you have evidence of this? by scottme · · Score: 1

      "Preparing for battle I have always found that plans are useless, but planning is indispensable."
      - Dwight D Eisenhower

    2. Re:Do you have evidence of this? by Anonymous Coward · · Score: 1, Insightful
      Please share that evidence.

      I've seen companies burn $15 million in "stealth mode" waiting to perfect their product, while competors with "inferior crap" take the whole market.

    3. Re:Do you have evidence of this? by iabervon · · Score: 1

      On the other hand, years of thought and discussion don't help at all without a certain amount of experience trying to implement the project. You don't find out until you try to write the code what exactly the issues that you're trying to plan to avoid are. If you try to plan before coding at all, you come up with something like EJB, which very elegantly solves problems which don't exist, and doesn't work for reasons that don't impact theory.

      The most reliable approach, in my opinion, is to start coding without any planning at all. It won't work, but when you then go into the planning phase, you'll have some clue as to what the pitfalls are that you have to avoid (as well as what things turn out not to be a problem). Then you can write a version that actually works somewhat. There will be new problems and things you didn't get to trying in the first failed attempt, so you'll need a redesign. After a few iterations, you'll have something that's simple and solid.

      My personal bias is that you should assume that your project is going to fail and have a lot of scavengable parts, such that your future projects will have a high chance of success (or, at least, start out further ahead).

    4. Re:Do you have evidence of this? by SoSueMe · · Score: 1

      I have also seen another type of planning that is lacking, the planning for success.
      What if your small in-house project become wildly successful? Yes, it can happen.
      How do you follow up?
      Are you ready to meet the challenge?

      Sometimes the only way to fail lays in the failure in planning for success.

    5. Re:Do you have evidence of this? by expro · · Score: 1

      On the other hand, years of thought and discussion don't help at all without a certain amount of experience trying to implement the project.

      Certainly without experience at all, it is hopeless so if you employ people with no practical experience in the domain, I guess producing something worthless is no worse than what they did at the University. Of course, without planning and design, the experience is often completely wasted, and I watch companies go into cycle after cycle making exactly the same mistakes because without careful analysis, creating a model, etc. they learned nothing, and they blame everyone but themselves because they didn't write any incriminating principles to follow in the first place.

      You don't find out until you try to write the code what exactly the issues that you're trying to plan to avoid are.

      Perhaps you should speak for yourself. I can imagine that some people are poor at avoiding problems by thinking ahead, but I have great success that way. A well understood abstract model is far less error-prone than spaghetti code with no forethought or put together by team members each pursuing a different vision. If evolution were the best way to design things, perhaps we should just wait for evolution to do it, but I prefer to use my brain to model in advance, which is the one thing the brain does well -- otherwise we might as well just be single-celled organisms.

      If you try to plan before coding at all, you come up with something like EJB, which very elegantly solves problems which don't exist, and doesn't work for reasons that don't impact theory.

      This arises from diving into a project without understanding requirements, not from studying ways of fulfilling requirements. Your extreme position that any planning before coding is wasted effort is not supported by any experience I have ever had on any project.

      The most reliable approach, in my opinion, is to start coding without any planning at all. It won't work, but when you then go into the planning phase, you'll have some clue as to what the pitfalls are that you have to avoid (as well as what things turn out not to be a problem). Then you can write a version that actually works somewhat. There will be new problems and things you didn't get to trying in the first failed attempt, so you'll need a redesign. After a few iterations, you'll have something that's simple and solid.

      That is the Extreme Programming myth that things will just fall together that way, and if you are lucky with a good programmer or small team and simple project, it may.

      Unfortunately, reality seldom works out that way in my experience. You get something that seems to work without realizing the basic inconsistencies in the self-competing fragmented model. Management refuses to throw away the code since it superficially seems to work (superficial design, superficial results). And you go into a mode where you are spending all your time trying to make up for things that the model does not provide, which will never get near the consistency of a simple original design, so the model just gets worse as you go on.

      My personal bias is that you should assume that your project is going to fail and have a lot of scavengable parts, such that your future projects will have a high chance of success (or, at least, start out further ahead).

      If you are employing people with no domain expertise or process to obtain such, perhaps, but coding is not necessarily the best way to foster domain expertise, even if it is the only successful method you have ever pursued.

    6. Re:Do you have evidence of this? by wrook · · Score: 1

      > Of course, for those incapable of such forethought, why not fail earlier rather than later.

      Exactly! Don't wait until the last minute to fail. Fail early on so you have time to fix it!

      Really. I'm not joking...

      Bah... no one takes me seriously....

  34. Is it a sinking ship? Nah... by Anonymous Coward · · Score: 0

    It sank, and got redefined. It's now a sinking submarine.

  35. The Golden Rule of PM by ip_freely_2000 · · Score: 1

    "90% of the effort to finish the last 10% of the project."

    Personally, I've been most successful when the project worked 'good enough' when 90% of it was done.

    I completely agree with others above me on this thread who have said "Never look for perfection". Getting the system to something that 'just works' should always be the goal.

  36. 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).

    1. Re:Smart People by Anonymous Coward · · Score: 0

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

      Unfortunately, good process can also be independent of good results. Remember a process is like a hammer, it needs intelligence to determine which nail to hit or if you need a screwdriver instead.

      >Good process amplifies the effectiveness of all participants.

      It also amplifies and masks the incompetence of all the participants. Many clueless hunks of deadwood hang onto their jobs because they look like they are productive when in reality they are only squirreling away at the process, filling in forms and reports and going to meetings, but not producing results. This pattern is sometimes known as "Feed the Monkey".

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

      Unfortunately, the tracking data is only good for determining what went wrong, not for predicting the future. Unless you are doing something not innovative, in which case, prepare for you job to be outsourced. As for the value of the collected tracking data see "Lies, Damn Lies, and Statistics". And as for the negotiation, it usually goes something like this:

      Developer: I think it's gonna slip, we should update the schedule, here's the data to back up what has happened.

      Manager: Well unfortunately we can't slip anymore, so you'll just have to work evenings and weekends to GIOTD (get it out the door) otherwise, start looking for work.

      Personally, I'd rather see something run by smart people with just a tiny little bit of process to hold it together, but such that the process is not allowed to overtax the people in the project.

      Sort of like the libertarian view of government.

    2. Re:Smart People by persaud · · Score: 1

      Good process does not overtax project people, that would be bad process.

      Tracking data does not predict the future, but it can change the future by correcting earlier judgements.

      One simple change made possibly by tracking data is a change in resource (people) assignments. Place people where they have proven (by tracking data) to be effective.

      There is always a choice between schedule changes and scope changes. Working harder is only an option if your team was slacking. But most teams are already working near capacity.

      Increased schedule pressure can motivate better scope management, which means working harder at not doing cuttable or deferrable tasks.

  37. 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.
    1. Re:Construction Analogy Fundamentally Incorrect by arudloff · · Score: 1

      That's because construction's design patterns have been defined for thousands of years.

      I'm sure cavemen had a hardtime gauging the difficulty behind building a dome or even a door for that matter..

    2. Re:Construction Analogy Fundamentally Incorrect by zulux · · Score: 1

      In 90% of the subprojects of construction, a manager can walk by in a few seconds gauge

      I respectfully disagree - especially on large projects!

      I write construction management software and work with construction project managers - they have the same problems as we do.

      Does the concrete have enough water to sure properly, with the rebar rust in two years, will the subcontractors change order spur more change orders?

      You'd think id be east for a construction project manager to figure out the state of a project - but there's so many different levels of completion:

      Accounting measures completion by progress payments.
      Employees measure completion by hours left to finish.
      Subs may measure by deliverables.
      Owners measure compleation by what looks good and looks finished.
      Foreman measure completion by some random method that nobody can figure out.

      Etc... Being a PM in construction, or software or on an assembly line is just plain hard!

      --

      Moneyed corporations, non-working 'poor' and criminal prisoners are turning productive citizens into tax-slaves.

    3. Re:Construction Analogy Fundamentally Incorrect by Anonymous Coward · · Score: 0

      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.

      Tell that to the Big Dig and Bay Bridge Eastern Span project managers. Can't even see most of it.

    4. Re:Construction Analogy Fundamentally Incorrect by Anonymous Coward · · Score: 0

      And while building my brother's house, the construction workers still managed to put in a closet that didn't have a door (the door was on the blue prints). And an aquaintance of mine moved into his house and found out that there were no phone jacks because the jacks weren't listed on the blue prints.

    5. Re:Construction Analogy Fundamentally Incorrect by Anonymous Coward · · Score: 0

      It sure is hard. A large project is a large project, difficult to manage.

      Every large construction project that I've ever heard of has been late, over budget and failed to meet expectations. Check out:

      1) Athens Olympics

      The final cost of the Athens Olympics has soared to about 9bn (£6.2bn), at least 2.4bn more than estimated, the Greek government said yesterday.

      http://www.guardian.co.uk/international/story/0, 36 04,1350220,00.html

      2) London's Jubilee Line

      London's Jubilee tube line was two years late and £1.5 billion over budget.
      http://www.economist.com/displayStory.cfm ?Story_ID =1547268

      3) Boston's "Big Dig":

      When Congress originally approved construction of the project, it was to cost $2.5 billion and be completed by 1998. According to the audit, the project's total cost could reach a staggering $13.6 billion - $2.8 billion more than projected just six months ago.

      http://www.taxpayer.net/TCS/wastebasket/transpor ta tion/4-12-00.htm

      And it took twice as long as scheduled.

      4) Toronto Sky Dome

      I seem to remember this required a $200m bailout from the provincial govt. ... any other sporting arena ...

      And those are just the ones that come to the top of my head.

    6. Re:Construction Analogy Fundamentally Incorrect by 10am-bedtime · · Score: 1

      maybe you can't but there are indeed some people who can do just that. those are the people i try to learn from.

      what is software?

      software is codified thought.

      if you can understand the thought behind it all, that is a first step in being able to judge the merit (or suckiness) of the artifact. the second step is to understand the codification process. the third step is understanding this from different points of view. the last step is understanding all these points of view as they change over time.

      not every piece of software can be subject to this analysis (the primary reason is usually you do not have enough access or inclination to find out a person's point of view, much less their pov over time), but just start w/ the zeroth step (sturgeon's law) and you can reduce the raw data to digestable amounts, hopefully within your pattern-matching comfort level.

      in sum, to hone your craft: hang around a mailing list for any project a bit, scan the code and the comments, make a prediction on where that project is going, revisit in six months. make systematic corrections to your predictive heuristics. over time, you will develop ability to make the call. this is not dissimilar to what a construction foreman/manager does. are you saying their codified thought is more refined than yours?!

      it's not a magic cauldron, people. it's not easy, but there are no newts feet or virgin's blood involved (ok, maybe for this crowd that last bit is not guaranteed... ;-).

  38. 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
    1. Re:It's not magical by Anonymous Coward · · Score: 1, Insightful

      Go read! Better than that, get a university degree. The more liberal the better. Honestly, it is worth it.

      Yeah a good old liberal education. That's the ticket!

      Then there'll be no need for stringent project requirements. Your design committe can concentrate on making sure the user interface is esthetically pleasing, non-offensive, accessible to the visually challenged, the mentally challenged and all other differently-abled beings regardless of their gender and sexual preferences, culturally neutral, politically correct in all ways, environmentally friendly and completely sanctioned by the UN and Amnesty International and Greenpeace.

    2. Re:It's not magical by Anonymous Coward · · Score: 0

      I was thinking the same thing while reading this.

      Had a project manager once, that bragged he'd never written a program. Our team of 16 suffered under his idiotic wrath of over-design and over-documentation for 6 months, producing a shit product no one wanted, and late at that.

      One does not need 60page formal test plans for a 100 lines of non-tricky C code.

      And he had the gall to put "Keep It Simple Stupid" outside his office!

      Management, after losing that much money, sometimes does good things though.... they pushed him into the new position of "Research" where he could do no harm, and promoted a really good programmer to manager....magically, the next bunch of project we did came in on time, with everyone happy.

    3. Re:It's not magical by Anonymous Coward · · Score: 0

      Well said!

      I agree with you when you say that only straight white men should be using computers. We should develope a prenatal test to detect the gays and then abort, blacks should learn their place and go back to agriculture, and women should learn their place and go back to the kitchen.

      It's a breath of fresh air to see a fellow conservative here.

    4. Re:It's not magical by Anonymous Coward · · Score: 0

      Software is different than other big projects, it doesn't *need* big design and documentation up front. All my successful software projects were very light on documentation, but high in communication.

      It takes 1) agility and 2) willingness to say NO. In fact #2 is the most important. You (the project manager) must keep the project focused.

    5. Re:It's not magical by ednopantz · · Score: 1

      Go read! Better than that, get a university degree. The more liberal the better.
      Couldn't agree more. I have stopped hiring interns from deep within the CS department. They just couldn't grasp the user issues. They thought specs just fell from the sky. They were unable to connect their software to the people who actually used it all day. My liberal arts college grads (who majored in CS or econ or history or whatever) instinctively understood that their job was solving people's problems. The engineers didn't. They were trained how to build stuff, but they weren't trained to think about people's needs. The tech stuff they can always learn. I'm not so sure about the thinking patterns.

    6. Re:It's not magical by tom's+a-cold · · Score: 1

      Some old psychologist (name long forgotten) distinguished between field-dependent and field-independent cognitive styles. The former needs the boundary conditions of the problem to be very clear before they proceed; the latter doesn't.

      I've worked with a lot of very bright field-dependent developers. Their intolerance of flux and ambiguity makes them mediocre analysts and even worse project managers. Yeah, PM's need to run a tight ship, but you also have to know when enough analysis is enough. And even more, you need to know how to deal with lots of different people with different agendas. Just about any PHB can build a chart in MS Project (gag) and mush a team through the milestones. But knowing what to make those milestones be, and convincing the buyer that they mean anything, that's the art.

      And that's why I seldom build an all-techie team.

      --
      Get your teeth into a small slice: the cake of liberty
    7. Re:It's not magical by beldraen · · Score: 1

      I have never said "no" to anyone. First of all, saying "no" is negative and, like it or not, being political is part of the process. What I have always done instead is said, "Sure, I can do that. Give me a day and I'll tell you want it will cost us." If you have actually done correct project planning, it should not be hard to estimate the required changes and put them into the MS Project Gantt chart. Then, you come back and say, "well, after tallying up the documentation requirements, changes in programming shifts, new testing procedures, etc, etc, it will cost us an additional five weeks."

      Now, what does this mean? Does it mean the manager is causing us a problem?

      You see, software is a business. Just like any other business, it is not about saying "no" at the right time, it is about the evalutation of opportunity costs. Let's just say for the moment that the change is necessary to meet ISO9000 for the company and it must be met in two months or the company is out $10,000,000 on the project as a whole. Guess what? Saying "no" not only makes you look like a non-player, but you're costing the company one hundred times your salary.

      As for light on documentation, the systems that I have been apart of have comprised of hundreds of systems and thousands of modules. It is simply not possible to expect every aspect to be changed correctly through communication since no single person has total comprehension of the entire system.

      --
      Bel, the mostly sane.. "Of course I can't see anything! I'm standing on the shoulders of idiots." -- Me
    8. Re:It's not magical by beldraen · · Score: 1

      Yes, this is one of the reining complaints with companies these days. They can code up a wicked loop, but cannot see anything greater than their job mandate. I've seen a lot of effort in Universities to force CS students to get some business classes so they can at least have some appreciation of what the business is actually about.

      --
      Bel, the mostly sane.. "Of course I can't see anything! I'm standing on the shoulders of idiots." -- Me
    9. Re:It's not magical by beldraen · · Score: 1

      This is a perfect example of an technological myopia. That the only thing that is necessary to solve the software development is to focus on the project requirments. Anything else is a disparaging waste of effort. A business is about serving people, regardless of what it creates, modifies, delievers or manages. That means having a diverse understanding of the project requirements so that one can figure out what the project requirements are.

      --
      Bel, the mostly sane.. "Of course I can't see anything! I'm standing on the shoulders of idiots." -- Me
  39. Lack of widgets by BestNicksRTaken · · Score: 0, Offtopic

    My main personal project is at a standstill for now until I can figure out how to make my own wxWidgets widgets and wxPython wrapper.

    I basically need a way of putting a checkbox into the last column of a wxListCtrl, kinda like a ColumnSorterMixin in the wxDemo, but I need a checkbox widget, not just a bitmap.

    If anyone knows how to do this, it would mean I could do a lot more development (maybe even finish) my cross-platform Livejournal client.

    Where I used to work, the decision was to go with Qt for all C++ GUI work, mainly because of lack of widgets in GTK+ and wxWindows as it then was known, plus it's easy to make your own custom widgets in QtDesigner.

    My Perl ethereal clone is coming along nicely, I would convert it to Python, but don't have time to research libpcap support.

    --
    #include <sig.h>
  40. 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
    1. Re:I utterly agree by killjoe · · Score: 1

      The problem is the smart people are rare and fickle. A company can not afford to rely on a few smart people who can and will abandon them at the drop of a hat.

      It's better to hire 10 mediocre programmers (with a decent work ethic) then one smart programmer. I know nobody wants to hear that but it's true.

      --
      evil is as evil does
    2. Re:I utterly agree by Rich0 · · Score: 1

      Of course, the problem is that most companies will hire two mediocre programmers rather than one smart one.

      At work we've deployed a fairly large software application which was written by a total of about four people. This replaced a software application written by an office-building full of people which lacked the functionality and flexibility of our new software. Within its niche this small company has gone on to steal most of the larger company's customers.

      Sometimes lean-and-mean does the trick. And smart programmers don't abandon you at the drop of a hat - only at the offer of more money. If you pay them the wages of 10 mediocre programmers they won't be going anywhere, and you actually save money when overhead is factored in...

    3. Re:I utterly agree by EvilTwinSkippy · · Score: 1

      Hmmm, I see someone has never worked with ISO9000, or Six Sigma.

      --
      "Learning is not compulsory... neither is survival."
      --Dr.W.Edwards Deming
    4. Re:I utterly agree by SunFan · · Score: 1

      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.

      What do people think about software process flunkies as compared to No Child Left Behind?

      --
      -- Microsoft is the most expensive commodity operating system and office suite vendor in the marketplace.
    5. Re:I utterly agree by Red+Pointy+Tail · · Score: 1

      What does Sarbanes-Oxley have to do with process streamlining? Isn't that the US legislation clobbered together to improve corporate governance after Enron?

    6. Re:I utterly agree by killjoe · · Score: 1

      "And smart programmers don't abandon you at the drop of a hat - only at the offer of more money. If you pay them the wages of 10 mediocre programmers they won't be going anywhere, and you actually save money when overhead is factored in..."

      If you are paying 10 mediocre programmers 35K a piece are you really going to pay one smart programmer 350K? Of course not.

      --
      evil is as evil does
    7. Re:I utterly agree by Carewolf · · Score: 1

      Maybe that is because they don't make money in proportion to their work effort. If they are 10 times as productive they should make ten times as much, until they do that they will leave you anytime they get a better offer because they know you are screwing them.

      * The reason it happens is because it is incredible hard to convince your direct management you should have a higher wage than him. No manager will ever accept that.

    8. Re:I utterly agree by severoon · · Score: 1

      If the guy's worth it, why wouldn't you pay that? It's a free market problem...if I do the work of ten men...why not make the money of as many?

      --
      but have you considered the following argument: shut up.
  41. 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.

    1. Re:Quilty Software by BullfrogJones · · Score: 1

      My grandmother used to make Quilty Software to warm our wee little beds.

    2. Re:Quilty Software by RManning · · Score: 1

      Funny.

      Hitting the submit button with a misspeling is like locking your keys in the car. It happens in slow motion. :)

  42. I question by joeflies · · Score: 1
    what the metric for success is. In some parts of the article, it sounds like the metric for success is executing on the project plan. If the plan was a bad design, but the engineers delivered 100% on project deliverables, then the project is measured as a failure - through no fault of the engineering team or the project management team. This is a bad design that was properly engineered and project managed, but eventually didn't satisfy the requirement. You can be a full six sigma and build properly constructed junk.

    In other parts of the document, it sounds like measure of success is being able to change the goal and then having the engineers adapt to the changing goals. The article calls that "innovation" but often that's pulling a rabbit out of the hat. That's bad project management with flexible design and hit/miss engineering, with time being a mitigating factor.

    What I'm driving at is that I don't know if it's so easy to categorize risk nor attribute success to a one-minute drill or "embedded knowledge drivers" and "execution coordination drivers".

  43. Poor implementation by Anonymous Coward · · Score: 0

    If you guys designed it as:

    if (featureX_enabled(customername)) {
    // customizations for customer1
    // ... and other with similar needs!
    } else if (featureY_enabled(customername)) {
    }

    You'd be doing both yoursleves and future customers a favor.
    If one customer has a need, it's likely others you'll see in the future have similar needs.

    1. Re:Poor implementation by Anonymous Coward · · Score: 0

      I think that was his point.

    2. Re:Poor implementation by WinterSolstice · · Score: 1
      Most stuff I see seems to work like this:

      while( getMoreMoney( cost ) ){
      releasePatch();
      quality++;
      cost = cost * 2;
      }

      Of course, maybe that's just me being cynical.

      -WS

      --
      An operating system should be like a light switch... simple, effective, easy to use, and designed for everyone.
    3. Re:Poor implementation by Anonymous Coward · · Score: 0

      No, the orginal posters point was having conditionals on the customer variable. He had not implemented a feature set api, which could clean up the code a little.

  44. How long by Timesprout · · Score: 1

    Before someone can finally admit they were part of a team of fuckwits who promised way more than they could actually deliver and so kicked off the cycle of overexpectation?

    --
    Do not try to read the dupe, thats impossible. Instead, only try to realize the truth
    What truth?
    There is no dupe
  45. 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.

    1. Re:Remove cloud cover by Bill+Dog · · Score: 1

      (Wow, parent deserves an Insightful mod.)
      I love it -- create an entry in the bug tracking system for the unrealistic schedule, as a manager-created unresolved "defect" in the project.

      --
      Attention zealots and haters: 00100 00100
    2. Re:Remove cloud cover by persaud · · Score: 1

      When you have collected enough data on such defects, have a script total the impact every minute and update a status web page available on the intranet and on a wall-mounted status monitor, where you report other defects. It takes a bit of political design to make this work properly (judicious use of color and anonymity), but it can bring everyone around to taking responsibility for schedule changes. The key is unemotional data collection and reporting.

  46. 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 Anonymous Coward · · Score: 0
      You deserve an insightful mod.

      Looked at that way, underperforming projects are a stellar success with 93% well spent.

      I bet "overperforming projects" couldn't stack up to that.

    2. 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!
    3. Re:Please check my math by Squid · · Score: 1

      Maybe it's to do with how they counted 'failure'. It shipped reasonably close to when they said it would, features don't work right, customers hate it, developers acknowledge that it needs a rewrite, but someone surveyed (in upper management, who does not eat the dog food) considers it a success.

      Would you consider Microsoft Windows a success or a failure?

  47. 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 glh · · Score: 1

      Correct,

      "Technology and development tools are usually the issue..." should read

      "Technology and development tools are usually NOT the issue..."

      In other words, developers are perfect.

      Not :)

      But.. they are usually not the biggest problem.

    2. 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.

  48. MOD PARENT "+5 TROLL DAT" by Anonymous Coward · · Score: 0

    The hard truth moderation that gets no play here at Slashdot.

  49. 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!
    1. Re:laziness and negligent behavior by 2A · · Score: 1

      In my experience it's usually because that the project [is or has been made] so goddamn boring! If you want your project finished on time, make it interesting for people to work on! The brain doesn't work well in a production line environment, it needs stimulation (heh, that goes back to your 'drugs' statement ;-))

  50. In my personal experience... by papasui · · Score: 1

    It's because of poor project managers who don't fully understand the project and the marketing departments that want to change the scope of the project every 15 minutes. Much to the point that a project that had 4 months of work completed and the original project was within a few hours of being 100% completed that it ended up being outsource and later scrapped completely. Read some Dilbert comics, marketing departments can mess things up hardcore sometimes.

  51. 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.

    1. Re:Over design by Bill+Dog · · Score: 1
      Although such effort can be misdirected, it's still a noble and worthwhile goal. Chasing imaginary potential requirements without any basis is detrimental, but if you've done your job and grilled the customer and got inklings of likely future directions, or your prior experience with that customer or that problem space or industry gives you a strong almost panic-like urging to architect in certain kinds of flexibility, that's a good thing.

      It's also good to look at loosely the cost of each proposed "overdesign". If it's adding all kinds of complexity and extra work, for a requirement that potentially might never come, then maybe it's not worth it. But there are some such things that are relatively free. That is, you have to design something anyways, so you just think about it a while beforehand and design in the things that don't add to the work, but just yield a different design than might have first come to mind.

      --
      Attention zealots and haters: 00100 00100
    2. Re:Over design by grahamsz · · Score: 1

      I'm certainly not arguing that you shouldn't take a view towards the future direction of the project, and plan your initial design to accomodate that.

      I've just seen projects where people have gone to lengths to design functionality that (from my perspective) seems uncalled for and unsuited to the project.

    3. Re:Over design by llefler · · Score: 1

      I've just seen projects where people have gone to lengths to design functionality that (from my perspective) seems uncalled for and unsuited to the project.

      "We need that feature because the old system had it."

      Do you use that feature?

      "No."

      Then why spend the time to implement it?

      "Because the old system had it."

      --
      It is amazing what you can accomplish if you do not care who gets the credit. -- Harry Truman
    4. Re:Over design by grahamsz · · Score: 1

      Sounds like my life...

  52. Visualization Problem by persaud · · Score: 1

    If you have an automated QA process and a decent release management system that generate tracking data, you can create "dashboard" status displays on wall-mounted monitors that show everything you listed. Although this may seem draconian, it actually brings management into the schedule as an early risk management participant, rather than an outside observer who offers little input into daily tactics.

  53. 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.
    1. Re:I'll RTFA in my next comment but first... by museumpeace · · Score: 1

      Well, it looks like I'll get to read it after a few thousand other /. readers have had a go at it:(

      --
      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.
    2. Re:I'll RTFA in my next comment but first... by Anonymous Coward · · Score: 0

      The Brooks effect: adding more developers to a late project makes it later.

      But Brooks didn't even come up with it. Werner Von Braun is reputed to have said "Nine women cannot make a baby in one month".

    3. Re:I'll RTFA in my next comment but first... by Anonymous Coward · · Score: 1, Insightful

      I wonder if that actually has worked for anyone:-(

      The risk based spiral I read about in Rapid Development many years ago has done the job for me (I rarely deliver late). Any changing requirements come in a later version and after an early version is available the customer has a lot more focus on what they actually want (because its an impossible task for them to know before development begins).

      Risk based spiral also catches gotcha operational problems early on and forces me to be more formal with the release/unittests. It also keeps the customer onside since they see the project evolving. Any changes are fine and are all part of the process. Although this is only for small projects and YMMV as ever.

    4. Re:I'll RTFA in my next comment but first... by cpeterso · · Score: 1


      Brooks' Law differs from Werner Von Braun's comment. Sure, nine women cannot make a baby in one month, but the extra eight do not make the first woman's baby take LONGER than nine months. Brooks' Law says that adding more developers can make a project LATER because of increased communication overhead.

    5. Re:I'll RTFA in my next comment but first... by cranos · · Score: 1

      Yes but nine women can make nine babies in nine months, this is the sort of thinking that causes developer bloat - "If One Developer can do this amount of work in a month then Nine Developers should be able to do nine times the amount of work". Then they go off and think about trying to make nine women pregnant in one day.

    6. Re:I'll RTFA in my next comment but first... by CharlieG · · Score: 1

      Add in "Peopleware" and you can explain about 80% of what goes on.

      Sigh.

      --
      -- 73 de KG2V For the Children - RKBA! "You are what you do when it counts" - the Masso
  54. project managers? by Anonymous Coward · · Score: 0

    as reported by development project managers

    in my experience, project managers are why projects fail.

    Too much pushing paper and trying to use stupid metrics that they don't understand. The biggest concern seems to be to assign as much time as possible to non-project timecodes so that it looks like the project is going well when it isn't.

  55. Re:"changing requiresments" less bad than no chang by tchuladdiass · · Score: 1

    Based on your logic, if you put a bunch of money in an S&L account that isn't FDIC insurred, and the president of the S&L decides to squander your life savings on booze, parties and yachts, then your money hasn't really dissapeared... it has gone to the liquore and yacht manufactures who in turn pay their employees who buy consumer goods & services, some of which comes from the company you work for and ultimately ends up in your paycheck. :-)

  56. Pretty well known by now by HeyLaughingBoy · · Score: 1

    The problem of poor requirements management being the leading cause of software project failure is very well known.
    So well known that in addition to constantly pounding it into our heads during my Software Project Management course, the very last thing the instructor said on the last day of class was "if you take nothing else home from this course, what is the most common reason a development project fails?"
    Class responds in chorus: "failure to manage requirements!"

  57. Responsibility by marko123 · · Score: 1

    It is hard, but as a concientious programmer, if you are not the project manager repeat after me:
    THE FAILURE OF THIS PROJECT IS NOT MY RESPONSIBILITY

    There. You and your self-worth can sleep now, whether it works out or not. Took me five years to work that one out.

    --
    http://pcblues.com - Digits and Wood
  58. Simple answer by kc3lai · · Score: 0

    Is Your Development Project a Sinking Ship? YES

  59. From the original, unedited article... by Swamii · · Score: 1

    Researchers found that more than 80% of projects were due to the developers slacking off reading sites such as Slashdot.org. The other 20% were busy posting to the developer-friendly, productivity-munching nerd news site.

    --
    Tech, life, family, faith: Give me a visit
  60. Construction Analogy and Project Transparency by Astreja · · Score: 1

    Could this account for the success of the open source model vs. big, flashy proprietary projects?

    Think of each contributor as a subcontractor who has the authority to actually do something. Lots of well-trained eyes look at every support beam and make sure the nuts and bolts are all there.

    And no one has to spend aeons in contract negotiations in order to fix an obvious flaw... Just stroll down to the hardware store for a device driver, or machine a custom widget yourself.

  61. We're waaay beyond sinking... by Anonymous Coward · · Score: 1, Interesting

    We start with unrealistic schedule (READ: what have management been smoking?) leads to short cuts (READ: code it first, worry later) compound it with requirement changes (READ: customer doesn't know what it wants) then wrap the whole thing up with zillions and zillions of bugs that are difficult to fix (READ: short cuts that had to be paid sooner or later...)

    In the end what management estimate would take six months (which engineering insist can't be done in less than a year) took a year and a half, and is entirely unmaintainable.

    A cow-orker uses the bulldozer metaphore to describe our project(s); every short cut we take is like dirt collecting in front of the bulldozer. At some point we either need a bigger bulldozer or we start from scratch...

  62. Geeks are too geeky by scottjpearson · · Score: 1

    This is caused by computer programmers knowing too much computer science and too little about the end-users' needs. This is why companies like MS succeed. If techies spent more time reading about the world at large, the technical community would be a better place as a whole.

    1. Re:Geeks are too geeky by KagatoLNX · · Score: 1

      The above comment is caused by not having enough experience or knowledge. I'm not sure which.

      Do you have any idea how much CS actually goes on at MS? They have more Computer Scientists on staff than you probably realize.

      The lack of knowledge of real, hard Computer Science (hereafter CS) is a serious liability. I'm not talking about reading Slashdot here. I'm talking about standard algorithms, the ability to write real datastructures, and all of the stuff that makes a real CS degree basically include a math minor.

      Knowing your customers and knowing CS are unrelated. Failure can be due to not knowing your customers. Failure can be due to not knowing enough CS. It doesn't take a rocket scientist to determine, from the above, that failure can be due to not knowing your customers AND not knowing enough CS--INDEPENDENTLY OF EACH OTHER.

      The sad reality is that most of the developers I deal with on a daily basis know virtually no CS. CS simply gives a developer real tools and real methods for accomplishing their job. A developer without CS knowledge is like a carpenter without a table saw. They can do their job, but it will never be the same--and the difference in quality will always show.

      --
      I think Mauve has the most RAM. --PHB (Dilbert Comic)
    2. Re:Geeks are too geeky by scottjpearson · · Score: 1

      I was intending to make a comment on the provincialism (i.e., lack of breadth) of Computer Scientists and nothing more. I proudly use MS products and believe in their engineering. MS's design process as a whole seems to emphasize the end-user more than other operations. This makes their design superior. Please take this as a compliment, not as a critique. In my university research lab, I run into computer scientists who know little outside of computer science, little about how the rest of the world works. This hurts product design. MS understands users' needs and has superior product design. That's all I was trying to say, and I think a rereading of my entry will yield such a reading.

  63. Re:"changing requiresments" less bad than no chang by Anonymous Coward · · Score: 0
    You know, there's something to your logic.

    Money sitting horded in some estate really doesn't help the economy as much as money spent. Consider my startup. I'd much rather have $5 million in revenue than $5 million more investment or loans.

    I think you were tring to be sarcastic; but I think you have a very good point about how that economy works.

  64. 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
    1. Re:Dissimilarity and Some Insights. by Fulcrum+of+Evil · · Score: 1

      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.

      That's exactly when you have to use proper design (simple and clear) and write one or two prototypes.

      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
  65. 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.

  66. Recipe for failure by SilverspurG · · Score: 1

    There are 300 hours allotted for the project.

    32 of those hours will be spent by upper management deciding if they want the contract.
    24 of those hours will be spent by the PM filling out the required cost analysis and estimate.
    32 of those hours will be spent by upper management holding business meetings with the potential client to determine if the estimate is agreeable.
    24 of those hours will be spent by the PM revising the estimate at the request of upper management.
    8 hours spent obtaining client approval.
    32 hours spent writing a project plan and summary.
    32 hours spent chasing down every upper managers and QA auditors whose signatures are required on the project plan and summary.
    32 more hours spent rewriting the project plan and summary to fulfill the requests of the upper managers and QA auditors.
    32 hours spent researching the existing technology to support the proposed project plan and summary.
    160 hours following the test plan.

    Are we over budget?

    32 hours negotiating with the client for more funding.
    40 more hours finalizing the work.
    80 hours writing up the required reports demanded by upper management, QA, and the client.

    --
    fast as fast can be. you'll never catch me.
  67. Too much PM and not enough sales involvement by Anonymous Coward · · Score: 1, Insightful
    In your example, the problem is not the sales guy. It's the PM not understanding the customer needs.

    All too often the PM is some MBA who couldn't keep his job during the .com downturn, and now makes "specs" out of a vacuum, or worse, textbooks from experts; without understanding the customers needs.

    At least when the sales guy sold a feature, you know that it's important to the customer.

    1. Re:Too much PM and not enough sales involvement by Zonnald · · Score: 0

      But is is important enough for the customer that they are willing to Pay the x months of development time to get the whole product?

      If they are not willing to do that then they will move on to the competitors product.

      If my sales guy want to sell my product as is with the sweetner that Function Y will be available to them free of charge within X months, then he understands both the customer needs. And that non existant functionality does take time to build.

      I remember a few years back at the bank I worked at - the Marketing guys put out an ad campaign for a new lending product then went to the dev. team to get it implemented, on the friday afternoon before the weekend the ad campaign went live.

    2. Re:Too much PM and not enough sales involvement by WaterBreath · · Score: 1

      It's not always the PM's fault. Some companies, like my ex-employer until not long before I left, do not allow the PM to have contact with the customer directly. Often the sale is made first, including guaranteed features and delivery date, and then this information is handed down to the PM. There's not much the PM can do about it once he realizes the timeline is impossible except beg his boss to get a renegotiation going. Unfortunately the company is usually willing rather to sacrifice the good treatment of their own employees rather than have to promise a lower price in exchange for a later deadline.

      I always felt bad for my PM in these cases, because I understood the stress and the dilemma. It's not too different a position than the developers themselves are put into when the PM is the incompetent one.

      Nowadays (at my ex-employer) there's always a representative of the development department included in negotiations, and he makes sure that any promises are evaluated for feasability before any contracts are signed.

    3. Re:Too much PM and not enough sales involvement by Anonymous Coward · · Score: 0
      Often the sale is made first, including guaranteed features and delivery date, and then this information is handed down to the PM.

      It sounds like your project "manager" is actually a project scapegoat.

    4. Re:Too much PM and not enough sales involvement by Theatetus · · Score: 1
      and then this information is handed down to the PM. There's not much the PM can do about it once he realizes the timeline is impossible except beg his boss to get a renegotiation going.

      Then he's not a project manager, and giving him that title doesn't make it so. He's a team leader. If he doesn't interact with the clients, there's no way you can call him a project manager.

      --
      All's true that is mistrusted
    5. Re:Too much PM and not enough sales involvement by WaterBreath · · Score: 1

      I know that the situation there wasn't typical, but I also know it's not totally rare either. I've heard similar stories from friends at other companies, especially due to growing pains. This was the case with us. Most of the "managers" were so-so engineers who decided their true calling was management, and were moved up and placed over new developers. They either had no real experience in leadership, or were in the process of getting their Masters and eager to indiscriminately apply all the shiny new book smarts they were getting. From what I hear from friends still employed there things have gotten better.

  68. 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.
  69. This is Old Hat by Anonymous Coward · · Score: 0

    Scores of people have investigated this in the past. A good reference is Steve McConnell's "Software Project Survivial Guide". He has a company, Construx, with some excellent tools for scoring a software project.

  70. YES!! by javaxman · · Score: 1
    Am I the only non-delusional, honest person reading slashdot? Answer the question, people!

    Is your development project a sinking ship?

    ( actually, I don't have a hard deadline on my current project, so eventually, I do expect it to succeed, but I am a couple of months behind my goal, from posting on slashdot too often, so maybe I've already failed... )

    Which reminds me, they left off number 6: team members reading slashdot instead of working...

  71. 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.

  72. never spoke, or spoke too much.. by E+IS+mC(Square) · · Score: 1

    Or spoke too much to customers??

    I have had similar experiences where the sales team had promised suns and moons, and we had to slog it out to meet deadlines. And yeah, all of them were MBAs. Bastards.

  73. This is not new..... by jeffc128ca · · Score: 1

    How timely that this comes up. I have been reading into Software management and there are lots of books on the subject that go back to the 70's. The ones I am reading at the moment are "Agile Software Development" (by Cockburn) and "Fact's and Fallacies of Software Engineering" (by Glass). I was unable to follow the link to read what the guys had found but I have a guess it's pretty much a rehash what these other books are saying in more depth. There are a lot more books like the above out there, just search Amazon.

    The books are interesting in that they show a hell of a lot of detail and history around problems of development projects. Companies like IBM have been studying the problems since the 50's. That fact that these guys have looked into it and produced yet another report shows that both programmers and managers are not looking into the volumes of books and case studies all ready out there.

    1. Re:This is not new..... by Inthewire · · Score: 1

      You have got to be shitting me.

      You didn't read the report.
      You concluded that they found the same information that was available in previous reports.
      Then you bag on them for (you assume) not reading the literature.

      --


      Writers imply. Readers infer.
  74. HUH? Re:Remove cloud cover by SMQ · · Score: 1

    Collect the data in advance so you can fix the schedule in retrospect.

    I don't know whether that's +1 Insightful or just plain nuts. I've got mod points today, but there's no "Say What?!" option...


    --
    SMQ 90AE4B2BC4F6BEAF7340F0B40BA2DEF7340F6BC2D0392
  75. 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.

  76. 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
  77. Management is just plain stupid... by SurfTheWorld · · Score: 1

    CEO from CompanyA approaches CEO from CompanyB to discuss a merger. Both motivated by a common goal (make more $$ for the shareholders), they agree to the merger. Now it comes time to make their systems integrate.

    Upon investigation, it turns out that CompanyA uses a transaction based accounting system that updates a just-in-time inventory management system. Moreoever, CompanyA has selected CORBA as their enterprise architecture, and have specifically gone with ORB vendors A1, A2, and A3.

    It also so happens that CompanyB uses a batch based accounting system that is updated every night (and twice on Saturday for some reason). They use a guy name Earl to manage their inventory of goods. CompanyB settled upon the .NET framework as their entprise architecture, and they use the latest version of Windows.

    Do you see the problem?

    Management makes decisions based upon meta-information about the business. Perspectus, and filings with the SEC are what CompanyA looks at when deciding if they should buy/merge with CompanyB. Rarely do companies look at internal systems for potential compatibility. They throw out an essentially random number that's supposed to represent "the cost of the merger" (this is what is supposed to be spent on integrating the two wild beasts), and for some reason everyone accepts that number.

    In all due honesty, that's about as insane as trying to conjoin two independent grown adults.

    I've seen this happen time and time again, up and down the management chain. At the lower levels, management thinks that SystemA can talk to SystemB because SystemA produces XML and SystemB accepts SOAP, not realizing that SOAP is a document retrieval / RPC mechanism and not a generic self-describing data language.

    At the upper levels management thinks that CompanyA should purchase CompanyB because they're both in the tire manufacturing business, not realizing that the machinery used to produce truck tires (CompanyA's product) WILL NOT WORK to produce automobile tires (CompanyB's product).

    It's the same thing over and over again. Management is often too disconnect from the innerworkings of an organization, and doesn't understand the key interaction mechanisms making them ineffective at evaluating whether a merger/buyout will be successful.

    So is it any wonder why software projects fail?

    Software is extremely specific (generalizations rarely work), requiring very careful attention to detail. Management, fundamentally, is at odds with this requirement. Unfortunately people believe that to be an effective manager, you must keep your "head above the fray" to "keep the team on task".

    The truly effective program managers are those that continue programming after being promoted, and fully understand the system that they manage.

    --
    Do it for da shorties
    1. Re:Management is just plain stupid... by furball · · Score: 1

      Are you saying that companies should merge based on technical details instead of actual business goals? That's some form of lunacy. No two companies are sufficiently compatible enough that integration after a merger is easy. That's why they call it "work."

    2. Re:Management is just plain stupid... by fishbowl · · Score: 1


      "It's the same thing over and over again. Management is often too disconnect from the innerworkings of an organization, and doesn't understand the key interaction mechanisms making them ineffective at evaluating whether a merger/buyout will be successful.

      So is it any wonder why software projects fail?"

      No. My question here is more along the lines of "Why doesn't management fail?"

      Or even, if the people at the lower rungs of an organization are so smart, why haven't they used this superior intelligence to better their careers, and replace this inept management?

      --
      -fb Everything not expressly forbidden is now mandatory.
    3. Re:Management is just plain stupid... by SurfTheWorld · · Score: 1

      I don't mean to suggest that two companies should merge based upon technical details alone. I was trying illustrate how management at ALL levels has a tendency to underestimate the difficulties (and costs) of the tasks they set out to accomplish. They have unrealistic expectations if they believe a merger will succeed without first considering how each companies accounting, HR, IT, procurement, and sales departments function.

      Likewise, a project manager has unrealistic expectations that his project will integrate cleanly with another project simply because both use the word "XML" somewhere in their interface documentation.

      The real message in this is that: the details make a difference. Ignore them, as many in management do, and they'll come back to haunt your project. Understand them, and that will allow you to manage them.

      --
      Do it for da shorties
    4. Re:Management is just plain stupid... by SurfTheWorld · · Score: 1
      My question here is more along the lines of "Why doesn't management fail?"

      Or even, if the people at the lower rungs of an organization are so smart, why haven't they used this superior intelligence to better their careers, and replace this inept management?


      I believe that most people surround themselves with similarly minded people. Take slashdot for instance - most people that read/write to this board are left-leaning anti-patriot-act IT professionals. Why is there not a sudden influx of right-wing pro-christian anti-abortion posters/postees? Because they're off on a right-leaning website somewhere!

      In my experience, the techs that understand the key interactions are not blessed with intrinsic knowledge of their project at birth. They acquire this knowledge through learning. They are expert learners, and are effective in whatever job they accept.

      In contrast, the ineffective managers I've served under did not possess the same ambition as the techs. They happily led Joe the IT guy install their computer's OS, setup their email client, configure their printer, etc. They weren't interested in learning, or expanding their understanding - they were interested in managing a project. I'm not trying to speak ill of management, I'm trying to point out their fundamental difference from the techs.

      Following my "like-follows-like", it makes no sense for the techs to rise up in some sort of Zion fashion. What I would predict, based upon my "like-follows-like" premise, is the following:
      1.) Skilled and effective techs leave large companies for smaller ones with less management
      2.) Ineffective techs, by way of more time-on-the-job, are promoted to fill the vacancies left by the skilled techs leaving.

      The net result of this a transferrance of highly skilled labor out of large organizations and into small companies, where the skilled techs feel more connected to people with similar aptitude and desire. Likewise, large organizations (federal govt for example), attract the slow and dim witted. Consider the job prospect of: "Show up at 5am, leave at 2pm, read the paper for 3 hours, skip 'lunch', and attend meetings all day" and ask yourself who is more likely to take that job: Linus Torvalds or Bill Gates?

      The bottom line: techs don't want to unseat management. They'd rather:
      1.) Form a new company
      2.) Re-establish relationships with customers from previous company
      3.) Unseat the old company altogether
      4.) Profit.

      --
      Do it for da shorties
  78. What is considered a success by fedork · · Score: 1

    What if project scores high on this - the way it is managed, but then no one needs/buys it, is that still considered a success? There were quite a few such in dotcom period...

    --
    ...remember good 'ol times when IP used to mean Internet Protocol....
  79. 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 Anonymous Coward · · Score: 0
      All significant software projects are the product of incremental development.
      • Google didn't start with GFS, but developed it when it saw the need.
      • Linux didn't start cross-platform, but these features were added when the need arose.
      • Yahoo didn't start out as an email/download/web-hosting/businness-hosting/e-com merce company; but these features were added in an ad-hoc manner as business cases made sense.
      Yeah, you can create yet-another-billing-system-for-financials by copying the spec of someone who went through this incremental process.

      All advances in software (as opposed to copying) are the result of ad-hoc development - where continuous customer feedback defines what the product will become.

    2. Re:Traceability by persaud · · Score: 1

      Agree, if we differentiate ad-hoc requirement discovery from ad-hoc requirement implementation.

      Google, Linux, Yahoo all appear to have flexible architectures and motivated architects, who integrated new requirements into the existing system without creating a house of cards.

    3. Re:Traceability by SoSueMe · · Score: 1
      There is an article on Stickyminds this week about applying different requirements managemewnt techniques to different types of projects. The title is "Why Software Quality Assurance Practices Become Evil!". It is also quite relevent to this topic.
      Are your organization's software quality assurance practices (SQA) working well? Would some developers even say they cause discomfort or are destructive? If so, maybe you are focusing too much on the processes and not enough on the underlying principles.
    4. Re:Traceability by Anonymous Coward · · Score: 0

      "All significant software projects are the product of incremental development."

      "All advances in software (as opposed to copying) are the result of ad-hoc development - where continuous customer feedback defines what the product will become."

      All significant slashdot posts are the product of incredible, unfounded generalizations.

      Seriously, you don't admit that any significant software was written from scratch to do one specific new thing, and do it well? Like Mosaic for example?

    5. 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.
    6. Re:Traceability by Anonymous Coward · · Score: 0

      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.

    7. 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.
    8. Re:Traceability by serutan · · Score: 1

      Controlling requirements is essential, but there's more than one way to achieve that goal. As the article points out: "A one-methodology-fits-all mentality can lead to uneducated choices that can raise rather than lower project risk." When somebody says, "We use TSP for all our development," they are saying, "Our toolbox is a hammer."

      I recently walked away from an outsourced, TSP-driven project that involved 6 or 8 local people and I think 10 in India. It took 3 weeks just to plan the 3-month dev schedule for an ASP.Net query/update app that consisted of 2 fairly complex pages and 6 or 8 dialog boxes. It was the type of project I and a couple other people could have pounded out in 6 or 8 weeks using a RAD approach. For small projects I strongly believe in RAD. It avoids the panicky finger-pointing and sense of failure that ensue when a rigid methodology encounters mistakes and omissions halfway down the road.

    9. Re:Traceability by tom's+a-cold · · Score: 1
      One result of government regulation has been the emergence of requirements management tools like Borland's CaliberRM and Telelogic's DOORS.
      Nope. Requirement management tools have been around for at least 15 years as commercial products and existed long before that as home-brew. I used them at the time. The first one I worked with was in 1981. The use of traceability tools to satisfy GMP regulations in pharma was formalized long after that. The financial industry also came relatively late to that game.

      And they weren't used originally because of government regulation. They were used because complex projects (aerospace and telecoms) couldn't be managed without them. With no way to manage requirements, meaningful testing is an impossibility, for one thing. I worked on big system integration projects in aerospace; governments were our customers and we were doing it before they required us to. Aerospace firms liked traceability because it took some of the haggling out of system sell-off.

      Requirements management tools can indeed facilitate risk management. But they are often used as a substitute for engineering judgement and cannot replace formal risk analysis methodologies.

      I do agree with the parent post, though, that doing traceability right is a necessary (though far from sufficient) condition for project success. The other precondition that I'd say is even more important is to have the habit of analyzing the impact of every proposed requirement change. You won't get it right every time, but over time you'll get good at it and that will make a huge difference in your success rate. Especially if your metrics are good enough that they include both your estimates and the actuals when you do the change. You can learn a lot from those numbers really fast. If nothing else, they can tell you whose estimates are soundest. It's not always who you think it is.

      --
      Get your teeth into a small slice: the cake of liberty
  80. 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
  81. Construction isn't as smooth as you might think by Anonymous Coward · · Score: 0
  82. If you wait until the schedule is broken by persaud · · Score: 1

    you are unlikely to have the tracking data needed to justify your proposal (e.g. stopping/slowing changes).

    You need to collect tracking data (task estimated effort and actual effort, linked to change requests) before there is a visible impact on the schedule.

    Think of it as defensive data collection.

  83. Kidding yourself by alienmole · · Score: 1
    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..
    This is a false analogy, in all sorts of ways. That's not to say project management couldn't be improved, but if it was as easy as construction, you wouldn't be seeing many of the problems that we do see.

    As one way to understand the difference, what's the equivalent of the halting problem, in construction? In fact, I would argue that anyone who claims that software development is like building construction is part of the problem, since you need an extraordinarily weak grasp of computing theory to believe that this is the case.

    Most physical construction solves the same basic problem, and all that varies are various trivial physical properties like dimension, materials, etc. Computer systems solve a much wider variety of problems, including many entirely new ones. It's certainly not true that "every system we can dream of has been built". In fact, where we do see the same problems being solved over and over, we also see a much higher success rate - things like mainstream accounting systems are a good example. In that case, a body of domain-specific knowledge builds up over time, and implementing systems in that area becomes easier as a result. It would be more accurate to compare the construction industry to the industry which develops horizontal-market accounting packages. (Vertical market packages tend to introduce new twists that can put you right back into unexplored territory.)

  84. 100% of projects that are never released fail. by navigator · · Score: 1

    This may sound obvious but software projects get in trouble when they aren't released. The usual reason for not releasing is management's unwillingness to ship software that doesn't work. What fools!

    Experience shows that the marketplace will tolerate horrible performance if the user interface is comprehensive, kool and has all the expected switches, bells and whistles that may actually work someday.

    So all projects should start with the GUI and worry about the algorithms later. Get those version 1.0's (user interfaces hooked up to simulations if necessary) out the door and in your customers' hands. Throw in a free year of "bug" fixes and start working on 2.0.

    Hey, it worked for Bill Gates.

  85. Read The Pragmatic Programmer immediately. by Jerk+City+Troll · · Score: 1

    It's sad you work in an environment where developers do not understand the very simple concept of 'decoupling'. I am not going to sit here and expound upon the virtues of this practice because Andrew Hunt and Dave Thomas have already done this in The Pragmatic Programmer: From Journeyman to Master. If you haven't yet read this book, do so immediately. If your development staff hasn't read this book, make them. If they refuse or fail to understand it, fire them. I am convinced that 90% of our software development woes would be solved if project managers, tech-leads, and juniors alike all read and understood the concepts contained therein.

    1. Re:Read The Pragmatic Programmer immediately. by Duhavid · · Score: 1

      If he was highly placed enough to hire/fire, then you would think that he would have been able to enforce the idea that the structures seen were bad style. And he would have nothing to complain about... Just a thought.

      --
      emt 377 emt 4
  86. "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
  87. Sausage and Software by bulach · · Score: 1

    nobody should eat sausage, or use software, if they know how it's done...
    Heard this one from a former manager of mine, when I was trying to get a little more time to clean up some code...

  88. Early Prototyping by persaud · · Score: 1

    Did the customer see an early prototype or previous incarnation of the system before signing the initial contract?

    If the first prototype seen by the customer occurs after negotiation of scope, the scenario you outline is almost unavoidable (unless the product/market is well defined by existing products, in which case a custom solution probably wouldn't be on the table).

  89. Exactly backwards? by raider_red · · Score: 1

    Does anyone else think they got this almost exactly backwards? Requirements volatility would be my number one issue, followed by dissimilarity to previous projects. Also, there doesn't seem to be a mention of bad resource allocation and scheduling.

    --
    It's good to use your head, but not as a battering ram.
  90. Did they... by Anonymous Coward · · Score: 0
    ... Admit their own studies' failure:

    Recall that these results are based on MIS managers' assessments, and the bias toward managerially controllable risk drivers might be a function of this stakeholder pool.

    Further research is needed to determine whether other stakeholders, such as project managers or system users, share MIS directors' views, incorporate other risk drivers such as organizational politics that were not captured here.

    So many of the project failures I've been on is the result of managers ignoring the risks raised by the development team.

  91. Ah, the requirements... by Anonymous Coward · · Score: 0

    It's funny isn't it, a full-blown software project employs managers, architects, designers, software engineers, quality engineers, configuration managers, usability engineers, technical writers, etc. but never a "requirements engineer." Worse, there are no requirements professionals, no specialized requirements engineering degrees in colleges and universities, no specialized usenet groups, nothing. Yet, requirements are one of the most critical part of the project...

    The problem with so many software projects is that requirements are left to be written by people not trained in doing so. Many projects will just ask the client to write the requirements, or the project manager. But requirements are like usability (but not the same, and that's why many state that projects should start with usability tests, because they confuse those with the very similar requirements): they're critical to implementing something useful. You want to have someone with experience talk to the client and the users, and figure out what they want. Clients and users won't tell you that directly, because they're not trained in figuring it out, a trained professional must talk to them, watch them work, ask them what gives them headaches and what makes them happy, and turn these findings into requirements.

    One day, the software industry will finally start giving a lot of importance to requirements and usability engineers. That day, the industry will be as successful as, well, Apple.

    1. Re:Ah, the requirements... by duffbeer703 · · Score: 1

      The problem is that users or consumers don't know about requirements and new software often introduces new business processes that create additional requirements.

      Consider email. Once upon a time, your secretary would type up a memo and call a messenger to deliver your memo to whomever you were contacting. Alot of older managers initially envisioned email as a way to eliminate the messenger boy. Then all of the sudden they realized "hey we can eliminate those secretaries too, if only the computers would manage our schedules too!"

      --
      Conformity is the jailer of freedom and enemy of growth. -JFK
    2. Re:Ah, the requirements... by Anonymous Coward · · Score: 0

      That sounds like quite possibly the most thankless job available. I say this as an ex-software tester. I thought we used to get shafted on a regular basis, but now a Requirements Manager would get it from seven directions at once!

    3. Re:Ah, the requirements... by Anonymous Coward · · Score: 0

      Alot of older managers initially envisioned email as a way to eliminate the messenger boy.

      You said it! You relied on the clients themselves to determine what's the best of use of the system, and it turned out to be wrong, or at least not right enough. If an experienced third party could sit back and look at the whole picture, without any of the clients' and users' emotional attachments, they could well figure out the best solution right-away.

    4. Re:Ah, the requirements... by Anonymous Coward · · Score: 0

      Really?? I've written requirements before, i.e. I talked (many many times) to the client and users, figured out what they wanted, wrote up the requirements and handed them over to the developers. The client thanked me for finding out what they really wanted (as opposed to what they thought they wanted), the developers thanked me because the requirements changed little during the implementation, and the director credited the project manager for a job well done. OK, the director didn't thank me, but everybody was happy... Do any job well, and you'll be thanked for it. Screw up any job, and you'll deservedly get screwed yourself.

    5. Re:Ah, the requirements... by duffbeer703 · · Score: 1

      Those experienced third parties are called "consultants".

      Their experience and wisdom are often valuable, but often over relied-upon.

      --
      Conformity is the jailer of freedom and enemy of growth. -JFK
    6. Re:Ah, the requirements... by Anonymous Coward · · Score: 0

      Their experience and wisdom are often valuable, but often over relied-upon.

      That's too bad, because as we know, those with a degree in consultancy have all the training they need to do a good job :=/ ... Seriously, what's a consultant? Where did they get the training to write requirements? Perhaps some of them have actually studied for their job and do it well, while others just call themselves consultans to charge lots of money. You get the former and you're happy, you get the latter and you end up cursing all "consultants".

      You wouldn't hire a generic consultant to do high-level design, usability tests, or configuration management, don't hire one to write your requirements either.

    7. Re:Ah, the requirements... by Anonymous Coward · · Score: 0

      Sounds like you got lucky. Here our PM's do the requirements gathering, and frankly the resulting documents should be filed at the national library under "Fiction".

  92. Re:"changing requiresments" less bad than no chang by Anonymous Coward · · Score: 0

    How about frozen specs, deadlines, and pricing set by marketing without consulting the techs to determine if the project is even doable?

  93. 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.
    1. Re:Married with Children quote by SunFan · · Score: 1

      Ah, a show whose complete lack of class makes it a classic. Those were the glory days of Fox.

      --
      -- Microsoft is the most expensive commodity operating system and office suite vendor in the marketplace.
    2. Re:Married with Children quote by vettemph · · Score: 1
      No, Peg. Your fat makes you look fat.

      It would be funnier if he said:
      "No, Peg. Your ass makes you look fat."

      --
      The government which is strong enough to protect you from everything is strong enough to take everything from you.
  94. Answer by bonch · · Score: 5, Funny

    "Is Your Development Project a Sinking Ship?"

    Why yes, we make submarines. Hoo-hah!

    1. Re:Answer by spitefulcrow · · Score: 1

      If I had mod points I'd give you some Funny.

      --
      Sorry, my karma just ran over your dogma.
  95. Not to get into it... by Run4yourlives · · Score: 1

    But you do realize that all you're doing is moving around the location of "if" (should really be a switch) statements?

    That's really not going to help you a hell of a lot unless you fully understand how to use objects. Even that though, is rarely the cause of failed projects.

    1. Re:Not to get into it... by emiddlec · · Score: 1
      Sure, one way of looking at this is that it "just moves the location of the if." But let's consider the potential benefits of doing so..
      • The locality of the code is improved. Customizations are grouped in one place per customer, not scattered around in the code that uses the customizations.
      • Adding new customer types is easier. You just add the new customer type and instantiate it, etc. The alternative is to update all the conditionals everywhere when adding new customers, which is highly error prone, touches a lot of files at once, and is time consuming.
      • The code is easier to read and maintain. Customizations become methods; code using the customizations is shorter and clearer. Although the code example above only has 2 "if" clauses, it might as be 10 or 100.
      • The code is more efficient. "Evaluation" of the "if" moves to the use of a particular object. Rather than evaluate conditionals to determine which code to execute, you do a polymorphic method invocation, which is probably faster in most cases.
  96. 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/.

  97. Re: 'doghouse' theory of software by Anonymous Coward · · Score: 0


    I call this the 'doghouse' theory -- building software should be simple, like building a doghouse, if we could just get our act together.


    No, but to imply that it is more complex than putting up a bridge or skyscraper also misses the point.

  98. That's one sexy graphic! by woods · · Score: 1

    Wow, for people who like books like Tufte's The Visual Display of Quantitative Information, these guys produced a really good graphic as part of their article:

    http://www.acmqueue.com/figures/issue019/tiwana3.g if
    It takes a little bit of study to understand everything that it's saying, but it's an amazingly compact representation! It shows five values at once:
    1. The set of all risk drivers (name of each sphere).
    2. The relative importance of each risk driver (size of each sphere).
    3. How much influence a manager has on each risk driver (horizontal position of each sphere).
    4. The relative risk of each driver (proximity of sphere to center of graph).
    5. The relative type of risk that each driver represents (vertical position of each sphere).

    That's an extremely elegant graph that conveys all of the most important points of the paper, and would still manage to fit legibly on a small card.

    Mmmm, mmmm! Nothing satisfies like elegant design!

    1. Re:That's one sexy graphic! by fred+fleenblat · · Score: 1

      and yet there is no sphere for "ignoring what your three best developers all said to you in that meeting yesterday and instead doing some CYA or politics-based thing even if it causes the project to fail"

  99. My Development Project is a Pirate Ship by dexter+riley · · Score: 1

    Ahrrrrrr! Batten down the code base, ya scurvy dogs!

  100. methodology? by belmolis · · Score: 1

    I wonder how sound the methodology of this study is. The data consist of the opinions of MIS managers. Now I don't mean to claim that MIS managers don't know anything about the success and failure of projects in their organization, but they do have a certain perspective and certain interests and so may have a biased view of things. I'd feel a lot more confident of the conclusions if the study were based on a set of case studies in which they had interviewed not only MIS managers but other people involved, including the actual programmers. I wouldn't be surprised, for example, to learn that programmers think that changing requirements are more of a problem than MIS managers do.

  101. It's all about white goods by 91degrees · · Score: 1

    A company I worked for had a perfectly good kettle. Sadly, between the 60 or so of us, an electric kettle would not kast long. We didn't really care. Every couple of months a company dogsbody would be dispatched to the nearby electrical shop to buy a replacement.

    Then the disaster happened. They replaced it with a horrible slow oversized industrial kettle. This took forever to boil and was impossible to fill. Naturally the comapny soon went bankrupt. When I was looking for another job, I had a choice of two offers. One of them was with a company that had an identical kettle. So I chose the other. I seem to have chosen correctly. The company I rejected only had another 5 months left to live.

    Is it al down to the kettle? No, of course not. Sometimes it's all about the fridge. But it's usually the kettle.

    As evidence that the corollory is also true, a friend of mine works in an office that was previously used by a manufacturer for testing kettles. When the previous tenants moved out, they left several dozen prototypes behind. The company is going from strength to strength.

    It's all about white goods.

  102. Bizarre scale by Freddles · · Score: 1

    The assessment leads to an "overall project risk score". And a higher "overall project risk score" actually implies a lower project risk.

    Were any users involved in the design of the risk assessment tool?

  103. 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.

    1. Re:Sources of open source project failure by FooBarWidget · · Score: 1

      Come on, what do you expect from volunteer software? It's no different than all those closed source Win32 freeware programs that disappear after a while.

    2. Re:Sources of open source project failure by Bootsy+Collins · · Score: 1

      Your response was a non-sequitur. What "expectation" did I suggest, and what does your response have to do with the question I posed?

    3. Re:Sources of open source project failure by fred+fleenblat · · Score: 1

      1. open source projects don't really have deadlines, so they cannot fail. There is no manager to say "stop working on this" so there always exists the possibility that someone will take up the torch and finish the project or add the finishing touches that make it interesting to users.

      2. The cost of an open-source failure is nearly zero. Sure, somebody sunk some time into it, but disappointed customers aren't going to sue, management isn't going to axe anyone, nobody spent money on ads or PR campaigns. So what if the product doesn't ship, or it's 12 months late, big deal.

      3. Since there is no political or management pressure to succeed, open source projects have the luxury of failing early and allowing people to work on more interesting or worthwhile projects right away, rather than dragging on months or years waiting for management to realize how messed up something is.

    4. Re:Sources of open source project failure by SunFan · · Score: 1

      why open source/free software projects fail.

      1) Person gets an idea. Hey wouldn't it be cool...
      2) Person starts a project on SourceForge. I'm part of the movement, now!
      3) Person starts thinking about this idea. Uh, oh, builing this looks like some work...
      4) Project sits idle on SourceForge for eternity.

      The people behind the most successful OSS projects tend to be highly unusually motivated. Also, most of them are much smarter than they let on.

      --
      -- Microsoft is the most expensive commodity operating system and office suite vendor in the marketplace.
    5. Re:Sources of open source project failure by Bootsy+Collins · · Score: 1

      Sigh.

      Again, my comment (to which you replied) explicitly stated, in so many words that of course some projects fail for the reasons you outline, but that it's the failed projects that get beyond the stage(s) you outline that are the interesting ones for the purpose of this question.

    6. Re:Sources of open source project failure by Bootsy+Collins · · Score: 1

      1. open source projects don't really have deadlines, so they cannot fail. There is no manager to say "stop working on this" so there always exists the possibility that someone will take up the torch and finish the project or add the finishing touches that make it interesting to users.

      Sure. But I think it's safe to say that often, no one will. This could be because there are now other projects that solve the problem better, serve the users better, pose more interesting challenges to developers, etc. Or it could be because technology has moved on and a project isn't really useful or needed anymore (dot matrix prettyprinting packages?). Or it could be because of a fork or spinoff occurring for whatever reason, and the original project dying from developer disinterest as its spinoff moves on. Or it could be something else entirely.

      Let me put what I'm getting at another way. Suppose you're the manager/lead developer/HMFWIC of an open source project that's moderately successful: you have code, it runs, you have some interested contributors and a small but growing userbase. At this point, you might be interested in answers to the questions "what ought I to do right now to help my project continue to grow, and at least prevent it from withering?" Treatises like ESR's etc. make some specific suggestions (e.g. "release often," "encourage and facilitate bug reporting," "be willing to delegate some responsibility over chunks of the project," etc.). But I can imagine that a systematic look at the history of projects that finally withered might provide more insight into what the most important things to do/not do are than anecdotal evidence does.

    7. Re:Sources of open source project failure by SunFan · · Score: 1


      Okay. The same logic applies, but over a slightly longer term. Even projects that start out well get burdened by the fact that it is more work than anyone originally thought. As software grows more complex (exponentially, so), it takes a special level of motivation and intelligence to really keep going.

      Also, having survived the complexity, people learn more about their problem domain. They may start realizing that their project really doesn't address it properly. Given the options of starting from scratch or quitting, the latter eats up yet another batch of projects.

      There are also the "walking dead" projects. These are the projects that keep on going and are popular in spite of not addressing the problem well nor being well liked by anyone. However, given the level of effort expended so far, no one can muster the energy to really start over and come up with a better solution. The people who do attempt a better solution still miss the mark. I still consider these projects failures, even though they are still actively developed.

      --
      -- Microsoft is the most expensive commodity operating system and office suite vendor in the marketplace.
    8. Re:Sources of open source project failure by fred+fleenblat · · Score: 1
      Had to look it up...
      HFMWIC = "Head Military Figure What's In Charge"
      (often the MF part of the acronym is interpreted differently).
      a systematic look at the history of projects that finally withered might provide more insight into what the most important things to do/not do
      So start an open source success/failure analysis project!
    9. Re:Sources of open source project failure by Anonymous Coward · · Score: 0

      There are also the "walking dead" projects. These are the projects that keep on going and are popular in spite of not addressing the problem well nor being well liked by anyone. However, given the level of effort expended so far, no one can muster the energy to really start over and come up with a better solution. The people who do attempt a better solution still miss the mark. I still consider these projects failures, even though they are still actively developed.

      Sounds like Freenet. DOA. Java sucks.

    10. Re:Sources of open source project failure by SunFan · · Score: 1

      Sounds like Freenet. DOA. Java sucks.

      I won't mention specifics, the resulting flame war would overwhelm the noon-day sun. Vaguely, most of the "hard" things, the things that really require Ph.D. level work but no one wants to admit it, are what OSS is doing really poorly at, now. The things that require Ph.D. level work but people acknowledge it, those things do okay (like PostgreSQL).

      --
      -- Microsoft is the most expensive commodity operating system and office suite vendor in the marketplace.
    11. Re:Sources of open source project failure by FooBarWidget · · Score: 1

      You expect that all open source software are comparable commercial software, and can be analyzed like commercial software.

    12. Re:Sources of open source project failure by Anonymous Coward · · Score: 0

      This was exactly what he didn't expect.

      *sigh*

  104. OT Joke(?) by marko123 · · Score: 1

    A fat person is anorexic because when they look in a mirror they really do see a fat person.

    --
    http://pcblues.com - Digits and Wood
  105. 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

  106. 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 tanguyr · · Score: 1

      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.

      While i'm not too sure i agree about the exact percentages, but i am glad to see "Requirements volatility" at the bottom. I find it ironic that the products of the urge to hammer down requirements is one of the key enablers of outsourcing. You certainly can't "pop down the hall" to India. As for lack of a methodology, i think most developers would agree on two things: a source code control tool and a methodology are both a Good Thing. It doesn't really matter which one you use or follow - just do.

      I understand what you mean when you say it's the point of view of IT managers, not project managers or developers that's taken into account - but it's their zillion schmooleans :)

      --
      #!/usr/bin/english
    2. 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?

    3. Re:After I RTFAed... by anonymous_wombat · · Score: 1

      It's also interesting that "lack of resources" wasn't one of the six problems listed. In my experience, that is by far the number one problem. If you give an adequate number of competent developers an adequate amount of time to build software, it will generally get done on time.

    4. Re:After I RTFAed... by tanguyr · · Score: 1

      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."

      There is almost always in the life of a project, a moment in which the client can tell you *exactly* what he wants: right after you give him what he said he wanted....

      Requirements volatility is certainly a major cause of project failure, but it's been held up as "the" major cause for too long. If you look at the practice of (corporate) IT these days, you see a lot of methodologies being tried out, a lot of reorganizations, a lot of permutations to try and find the "magic" that can make the difference between a cost center and a core competitive function. A lot of people - and management consultants too - are preaching the Industrial Science of Software Engineering (everyone seems to agree that the key to making TONS of money out of your IT department starts with giving them some of it). One thing is certain: no one's cracked it yet. You would have noticed.

      --
      #!/usr/bin/english
    5. Re:After I RTFAed... by Bob9113 · · Score: 1

      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.

      Moreover, Tiwana and Keil have more business than science in their background, and neither appears to have practical experience implementing large systems.

      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.

      In addition, in the section on fitting method to project, they claim that the best place for waterfall is, "... for managing larger projects where requirements are better understood." Contrast this with some little organizations like TRW, IBM, DoD, et al who have found that waterfall is the number one cause of failure of large projects. (see Iterative and Incremental Development: A Brief History)

      How did these chimps get their snakeoil published in ACM Queue?

  107. The point of "Process" by jfw25 · · Score: 1
    The real point of following a formal process is that, at the end of the project, you know exactly what you did (because it was documented in excruciating detail). If the project goes awry, you look at your process and see where it should have been different.

    If, on the other hand, you were just making up the rules as you went along because you wanted to be "flexible", then when you're looking over the smouldering wreckage of your project, you haven't got the faintest idea exactly what you did at any step along the way, much less what you might have done wrong, so all you're left with is the finger pointing, the arbitrary assignment of blame, and the promotion of the incompetant.

    (Of course, when the problem with the process turns out that it was designed by moron managers who have no understanding of engineering, your chances of having management correctly diagnose the problem plummet, documented process or no...)

  108. MS Project & Backwards Planning by Martin71a · · Score: 1
    Some how the survey left off the number one reason for project failure. The use of MS project should be by far the number one reason. PMs spend half the project timeline trying to simply enter the plan by then the project is too far gone to be saved.

    On a more serious note how many companies actually plan backwards? In other words this is the budget make the plan fit or else!!!!! These projects are doomed to fail!

  109. 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.

  110. Otherwise known as by persaud · · Score: 1

    Rapid Prototyping.

    Throw in "All Prototypes are Finished Applications" and you have the beginning of a beautiful product.

  111. That is... by hotspur_fan · · Score: 1

    the longest website title I've ever seen.

  112. My failed project ... Itanium by Anonymous Coward · · Score: 0

    Intel's Merced, ah um, Itanic, ah um, Itanium.

    7 years on now and I still want to vent.

    What a horribly mismanaged POS.
    The blame was simply that in Santa Clara during the Internet boom every ranking lieutenant was more concerned about padding their resume for their next job than actually working on the damn chip.

    I should have known when early in my involvement in the project we had a Validation Plan review with the Validation Czar, and he informed us that what we had just done didn't conform to the Validation Plan Handbook Version 2.
    "Well, Gahsan (sp?) all we have is the VPH version 1, which we conformed to. When will the VPH version 2 be published?"
    To which he replied, "Oh, it won't be published. We don't have time for that."
    Arguments ensued. We lost.
    That was pretty typical of the whole damn project.

    The only time I felt there was truly a Captain at the helm of the ship was when Jim Miller was there. In about 3-6 months he was pushed out of the project (and eventually out of the company ~9 months later). Then we got back to the in fighting and finger pointing that promised nothing but success for that project. But, everyone's resume got a little padding.

    I don't know how many times I completely designed, implemented, and tested my part of the chip, only have it totally re-micro-architectured. (I had been promoted off of validation into logic design by then.) This problem was project wide and frequent.
    It was so bad, that since my part had only a few iterations, I started designing the interface to my part for other parts of the chip. "I know you didn't have time to write this. I know you said you'd get to it in 6 months. I wrote it. I hope you don't mind. Here it is. It is autonomous to the logical working for your functional unit block, but layout needs it physically in your section of the chip. I tested it. It has a simple 5 signal IO. And, it can be synthesized. No need for hand circuit design. Thanks. I appreciate this."

    The best part was, since I had finished my section on time and working I got blasted in one of my later annual reviews for not working hard enough. "Maybe the reason the other guys worked so hard was because they are hopelessly behind and didn't do it right the first time. Maybe they couldn't do it right because you in management have changed what they are supposed to do multiple times on them. So, my reward for being ahead of everyone else is a bad review?" Of course, I was ready to quit by then.

    Eventually engineers started to leave the project like rats on a sinking ship. But they put a stop to that. All internal transfers were frozen. So, the only way off the project became a resignation letter. Which since most of the work was in Santa Clara, wasn't a problem.

    Intel should have shut the whole Santa Clara Processor Division down and moved everything to Oregon or Israel. You complain as much as you want about Willamette and P4, but at least they worked and sold. Merced was a still birth that should have been aborted.

  113. 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.

  114. where does having confusing metrics fit in? by MegaThawt · · Score: 1

    OK so the higher the risk number, the lower the risk of the project. got it. i think.

    --
    All sigs should be as funny as possible, but no funnier.
  115. 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.

  116. Universal Elixir and Other Computing Projects Whic by plcurechax · · Score: 1

    Universal Elixir and Other Computing Projects Which Failed
    by Robert L. Glass
    (Copyright 1977)

    http://www.amazon.com/exec/obidos/tg/detail/-/06 86 236092

    ComputingFailure.com: War Stories from the Electronic Revolution
    by Robert L. Glass
    (2001)

    http://www.amazon.com/exec/obidos/tg/detail/-/01 30 917397

    Facts and Fallacies of Software Engineering
    by Robert L. Glass
    (2002)

    http://www.amazon.com/exec/obidos/tg/detail/-/03 21 117425

    Waltzing With Bears: Managing Risk on Software Projects
    by Tom Demarco, Timothy Lister

    http://www.amazon.com/exec/obidos/tg/detail/-/09 32 633609

  117. I was going to measure the validity by ndunn · · Score: 1

    . . . but my B.S. meter exploded. This is the kind of shit that business programs spew out.

    It wouldn't have been so bad, just a qualitative redeclaration of the obvious, but then they had THE formula for risk assessment. Also, keep in mind, this study was based on interviews with IT executives, not staff or customers. I'm sure that this simply consisted of a series of bubble-sheets with a few questions on it.

    I guess, this is better than nothing, but, as noted in earlier posts, common-sense is still twice as good.

  118. The real formula by Anonymous Coward · · Score: 0

    Forget whatever crap they're telling you. It's all lies. ALL LIES.. If you believe it, you're setting yourself up for a hard, fatal landing on your first job. You'll start off all bright eyed and bushy tailed, believing all the stuff they lied to you about, and then one day the whole house will come crashing down around you and kill you. Or seriously maim you. Either way, you'll be toast.

    The real deal is this; should you find yourself on a brand new project, a blank sheet in front of your project manager, they will start off with the best intentions. They will not repeat the mistakes of those other projects. Oh no. This project will use the latest techniques. Proper project plans. Waterfall development processes. Nail down the requirements before a single line of code is written; no! Before the first UML diagrams are drawn! The project will be on time, on budget and the best thing ever.

    Oh yes, it'll start good. Then the first wrinkles show; the requirements gathering is taking too long and the customer is being vague or contradictory. Someone in sales promised a feature you wern't planing until the next version to the CEO of the customer and now it has to be in this version or they'll cancel the contract. The UML is taking to long and the external dependencies are getting too large; you have to cut back on the hardware, which means you'll need to re-evaluate the middleware and the database. Once you're one month behind schedule the project manager will produce a new gantt chart. Testing time will be cut in half, but now you're back on schedule. Once you start coding, you start to run into bugs in the middleware or tickle obscure edge cases in the database, and the vendor is taking forever to respond to the ticket, so you slip by a couple more weeks. Eventually you push a version out to testing, who discover that one of your developers made one to many assumptions about the target environment and the first version only runs properly on the development system, so it takes another week to fix that and send the second version to testing, while you get on with adding those new features the idiots in sales promised, and now you've got hundreds of problem reports queued from system test! With only two weeks to delivery your UML digrams, requirements, gantt charts and waterfall process can go fuck itself; this baby has to be out now and it must work!

    It gets to the customer three months late. Then you find out that those vague requirements the customer didn't clarify...well they don't like your interpretation.

    They don't teach you this in college because it would scare the fresh meat so much you'd all take up sociology instead.

  119. Sociology... by Duhavid · · Score: 1

    Maybe they *should* be taught all the above. Then we wont have so many people who are in it strictly for the bucks. :-)

    --
    emt 377 emt 4
  120. Requirement Frequency vs. Implementation Cost by persaud · · Score: 1
    Good point.
    Rare/Easy | Often/Easy
    --+--
    Rare/Hard | Often/Hard
  121. 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.
  122. One minute Risk??!?!??!?! by DataCannibal · · Score: 1

    The reaon nearly all projects, that fail, fail, whether it is software, bridges, business transformation, or simply moving house, is inadequate risk management. Risk management is the one fundemental process that any sane PM must be able to use.

    As a PM I spend around 30-40% of my time managing risk. I've never had a project fail yet

    --
    No but, yeah but, no but...
  123. Project Timeline Equation: by Morologous · · Score: 1


    To find out how long a project will take to complete, take the amount of time you estimate the project would take in an optimal environment, multiply by two and convert to the next higher unit of measurement.

    Thus, you can determine that a job you think will take a week will take 2 months.

  124. bingo by clsc · · Score: 1

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

    Although i advocated Extreme Programming higher in the thread, i support this statement. The thing is - it's not words; it's not something you're supposed to play bingo with or talk about - you're supposed to do something.

    The prime success factor of any project is always Getting Things Done.

  125. Most of these are known and addressed by Mr_Huber · · Score: 0

    What I find interesting is how many risk factors are addressable by good modern programming practices. Customer feedback is at the heart of the extreme programming model. Identification and encapsulation of customer requirements is also a major point in XML design practices.

    Project complexity is well addressed by refactoring. If refactoring is stressed as a programming activity, the code base improves as time passes, rather than degrades. Good refactoring also heals program structure after yet another round of feature shifting. It also aids starting the project, as developers are free to start with a fairly good structure and rely on refactoring by knowledgeable developers to optimize the program structure as the project moves forward.

    Formal project management processes are a dime a dozen, but good UML documentation, updated with each refactor, will go a long way to providing the structure to support any project management process.

    Really, between UML design, XP style customer feedback and consistent refactoring, most of these risks are assessed. All of these feed nicely into methodology choice, leaving language and platform choices as the only factors undressed.

    Well, that and the true cause of most project failures: incompetence. One factor keenly missing from the list is poor performance of personnel. In my eight years as a professional developer, every one of my failed projects can be traced to idiotic decisions made by people who should not have been given the responsibility for the decisions that were made.

  126. Would you present that survey to your boss? by angel'o'sphere · · Score: 1

    Hm,

    All headlines of the article make sense. Most of the ext written to that headlines not. Bad!

    Use of an inappropriate methodology.
    Most projects don't use any. Having no clue about methodology, like obviously the authors of the survey have none, thats biggest problem in software engineering.
    To be successfull it does not matter wether you use RUP, Catalysis, XP or SCRUM. They only perform different and have different costs. Adapting a "methodology" well, we call it "tuning the software process" (as all modern projects are based on OO languages and OO methodologies with a few exceptions in functional programming and less mainstream projects like kernals etc.) comes long after establishing a basic process at all. (Versioning, requirements tracking, issue tracking, iteration planning)
    So imho, project managers need to get a clue that there are even things which are engineering or sciense in software.
    Really obvious is their lack of understanding at this two citations: For example, a methodology such as rapid prototyping relies on iteration to ... and In contrast, a structured methodology emphasizes structure over iteration and might be more useful for managing larger projects
    Thats plain wrong! ALL our day software development methods focus in iterations or increments.

    Lack of customer involvement.
    I second that. However it fits my previous topic. The guys making the survey have no clue. All methodologies above require to have a strong involvement of the customer. So they rank the same poin on position 1 and 2 ....

    Lack of formal project management practices.
    What is that? Depending on methodology (or I prefer still "software pricess") you plan in a different way. Milestones basically are oout. Making a milestone based plan contradicts the other points they bring up later. If requirements are changing, the featue X planned for milestone Y DEFINITELY will not be available at milestone Y as more important NEW features will have shown up. Or X became so important that it was finished much earlyer, sacrifysing some other feature.
    Realy good success you make with XP and/or SCRUM. Al plans are mood if you have to manouver with high speed in hostile area where everytign shoots back at you.

    Dissimilarity to previous projects.
    I second that as well. However the text is weak again.

    Project complexity
    THAT should be rank 1! Because its the mother of all failure. Why? Thinking "we do not need a software development process" comes straight from the point of view that everything is under control because "its easy", so project owners don't see the complexity and thus not the risks.

    Requirements volatility
    True, but "methodologies" like XP and SCRUM craft the software development process around the fact that requirements do change. So this again makes the very first point of the survey mood in my eys. There is no WRONG method ... only lack of any method, and finally there are some methods which are better suited than others or simply more performant/productive.

    angel'o'sphere

    --
    Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  127. I did not say perfect it. I said plan and design. by expro · · Score: 1

    Usually a plan and design shows how to get to the first basic requirements while having a model that can support most directions the person is willing to go. It is the fundamental/abstract model that has to be carefully established, not the details of every part of the implementation.

    Burning $15 million says nothing about why the plan failed or if it failed.

    Unfortunately, better technology often has little to do with business success, but I find it not a compelling argument for the crap we see many companies put out that does not meet basic reasonable requirements.

    If success is defined by your bottom line, go join Microsoft who can put anyone out of business and steal their designs without expending any effort or advancing the industry or market.

    By your criteria, Internet Explorer in any version more-widely-deployed than non-IE browsers is the better browser. I disagree. I do not consider Microsoft a success, because they do little or nothing to advance the art, and destroy it in many ways. Or we should all give up programming and become IP sharks and unethical bullies. I have no use for their work, and they are extremely antisocial, however profitable they are.

  128. The main reasons for failure by angel'o'sphere · · Score: 1

    The main reasons why software projects fail are:

    a) complete lack of funding
    Underestimation of complexity. Featureitis. Unable to prioritize. As soon as the underfunded project is in trouble more money is wasted by "just accepting" that it will take longer but the core bad habits of wrong priorities and adding features remains. So the cycle repeats until it fails or is finished over time and over budget.

    b) underestimation of complexity
    Alllreay pointed out above. Big software projects in trouble in germany, Toll Collect and Arbeitsamt (Bureau of Work/Employment) are typical examples where the project owner wanted a finsihed product in about a year. Both projects involve dozends if not hundrets of developers. Imagine, a software project of 100 man years is expected to be conducted in a year ... silly.

    c) Greed, jealousy, envy, distrust
    Wow, there is a project? It runs better than mine? What can I do to slow them a bit? So I look better with my project in relation?
    Wow that consultant from that other company ... he costs that much? Wow, they make more money than we do, how can I spoil his success (and by that spoil the projects success) and how can I gain benefit from rescuing the project later?
    Hm, the customer has no clue :D If I tell him that SOAP is much better than CORBA he wont have people to do it :D So I can sell him two more consultants and get a bonus from my company :D and we make more money :D

    I would go so far that untrue consultants (or simply incompetent consultants who do not dare to admit that they are at the wrong place) are the most evil and one of the core reasons for project failures.

    angel'o'sphere

    --
    Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  129. Bad math in article = Failure? by edge_crumbler · · Score: 1
    Erm, could bad math be one of the reasons for project failure? Just look at their One-Minute Risk Assessment Tool:

    5 x 3.0 = 15.2 ??? Huh?
    6 x 1.9 = 11.6 ??? What?
    7 x 1.1 = 7.4 ?????
    9 x 0.8 = 7.3 ?

    At least they got 1 x 1.7 and 3 x 1.5 right. Sheesh, no wonder projects fail if that's the sort of mathematical skills people have.

  130. Changing requirements? Hah! by Rorschach1 · · Score: 1

    I've watched one particular development project for several years. I won't mention the company's name, but it rhymes with Mockheed Lartin.

    I don't think they've ever had a problem with changing requirements, because the requirements were written completely without the input of the end users - they specified what THEY thought the end users should want, and then proceeded to build it and let political inertia force it on the users, despite it not being what they wanted or needed.

    Your tax dollars at work...

  131. As seen by senior IT managers by ClosedSource · · Score: 1

    I suspect that the risk factors would be inverted if the front-line implementors were surveyed instead of managers.

    Note that those items that managers feel the most comfort changing are considered the highest risk. It's a lot easier to change the methodology than to hang tough on requirements or to say no to features that might increase complexity.

  132. Don't forget the humans by Open+Council · · Score: 1

    I was hired in the early 80's to spend time at a number of big UK defence contractors to identify why the software projects were all failing or being "completed" 3 or 4 years late.

    I can agree with most of the points, especially about inappropriate technologies and methodologies, but it seems that one of the most important factors has been missed completely : the human factor.

    Regardless of the other factors, on the worst projects the developers were treated just as "resources" ... plug in humans who didn't matter because they were easily replaceable. There was little attempt to involve them in the project by asking there views on on the design or the development process. This resulted so often in the project management missing out on experience (both how to do things and how not to do them) that could have smoothed the development, as well as establishing an us-and-them division that reduced the chances of the developers responding positively to problems.

    After my work the big companies introduced formal project management methodologies and better development technologies, but this did little to change the outcomes.. The previously bad projects now had all the documentation and signed-off specs to show that everything was ok, yet still produced non-working software. The previously well run projects were now taking less time but tended not to produce all the needed documents,

    The "resource" view of development so often results in applying the wrong developers to the different parts of the project. Some developers enjoy particular bits of the development and some are just good at certain things. On the converse good developers can have weaknesses in certain parts of the process but can perform brilliantly when paired with someone who is good in those areas. To find these things out requires talking with the developers as if they are people rather that resource units in MS Project. Developers can usually spot things going wrong with a project long before it shows up on the project monitoring tools, but find it frustrating that they cannot influence the management to avoid the impending problems. Too often they found that all their managers wanted were their timesheet figures, a situation made much worse if contract programmers were being used..

    --
    Paul
    www.opencouncil.org
    Open
  133. PM is for the semi-competents by O2dude · · Score: 1

    One small item I;d like to add in the mix of comments is that in my opinion project management is mainly relevant to the grey mass of University sanctioned semi-competents. Genius has a way of coming up with the goods regardless. Unfortunatly there isn;t that much genius to go around, and most projects never get a glimpse of genius. Also, no self-respecting genius wants to do updates which means the even software that was touched by genius will at some point be FUBARred by a semi-competent on upgrade-duty.

    --
    - It took western civilisation 2000 years to ensure popular literacy, and now we work with icon driven GUI's. Go figure.
  134. Wow, that's some bad science. by Anonymous Coward · · Score: 0

    It's probably worth pointing out that these results would be totally unpublishable in most fields.

    They approached 590 (or more) MIS directors, and got 61 responses. In the world of surveys, a response rate of 10% means your results are not generalizable. Actually, a response rate of 70% may mean that; 10% means they're garbage.

    The outcome also isn't actual project "failure" or "success" -- it's what the MIS directors (or whoever actually ended up providing the information) thought were important risk factors. They do admit this, but it's not immediately obvious; and there's a big difference.

    The methodology also looks dodgy, even though it's hard to make out what they actually did. They seem to have asked 60 people to each assess the risk for 12 projects, then lumped all of those back together for a "sample" of 720 (which it isn't). Then they used structural equation modeling (which was pointless -- ordinary OLS regression looks perfectly appropriate, and, in fact, amounts to the same thing) to predict the risk assessments given. And used the regression coefficients as weightings in a "tool" people might use to assess risk.

    If the six risks picked a priori really are the most important ones; if the twelve projects provided are somehow fairly and equally representative of software projects in the real world; if the sixty directors (or whoever) are somehow representative of all directors; if the judgements of directors are objective, empirically based, and totally accurate; then there might possibly be some use to the tool.

    As it is -- oy.

  135. my experience by Anonymous Coward · · Score: 1, Interesting

    I've worked on many software projects over the last few years. Here were points of failure:

    1. No source code control. Particularly a problem if there is one key engineer holding things up.

    2. Your in a start up company. The sales and marketing departments in your company make a deal with a large customer. The customer changes the requirements on a weekly basis. The changes result in practically a new product being created. Later, you find out that the important customer is not paying a single dime for the project. They a jerking your chain. In fact, they might be mining info out of your company.

    3. The project manager does not know jack. A paper pusher but knows the lingo. e.g.. "flow", "process", "milestone","power point".

    4. Too many consultants or third parties involved. They don't want the project to end because it means no more $$$.

    5. Mergers in service companies. Typically there is hacked code on a back end nobody has ever seen. The managers want to create one system. You get a hodge podge of incompatibility.

    6. Lack of documentation and specs. Nobody even knows what to build or how to update/merge the systems.

    OK, thats my 2 cents.

  136. Readers: Is Slashdot a Sinking Ship? by Anonymous Coward · · Score: 0

    Posted by michael on Tuesday Januar 04, @04:45PM (but we are stupid enough to not type timezone)
    from the down-down-down-and-the-flames-went-higher dept.

    gManZboy writes "Everyone knows that some news site 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 stupid survey, and they've got some made up data on why web sites actually fail (as reported by article posting managers -- care to guess where 'changing story quality' ranks?). They've come up with a diagnostic formula posters can use to gauge the uselessness that the article has any value so we know if it is (or isn't) going to suck enough to be posted on slashdot."

  137. Insightful Sarbanes-Oxley comment by Anonymous Coward · · Score: 0

    Insightful Sarbanes-Oxley comment

  138. 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:>
    1. Re:Mmm. by tshak · · Score: 1

      Mike,

      While I agree that we should always have a top level design as well as functional requirements that describe what it is we need to build, "desiging as we go" is what developers do. It's our job. Code is the design of the software. It is impossible to design software at anything but a very high level on paper. This is because most design issues do not come out until the code is written.

      Code is the tool in which we use to design software.

      The problem is that we have a lot of bad designers who write really messy and disorganized designs. This is the reason why we have design issues, not because we don't do enough designing on paper "up front".

      --

      There is no longer anything that can be done with computers that is nontrivial and clearly legal. -- Paul Phillips
    2. Re:Mmm. by ndunn · · Score: 1

      In regards to both arguments, you do both. You design (UML, etc) general architecture and interactions, design specific tests (probably hardest thing to do), code a % of the design (this is where a good PM helps), test, and start over (i.e., iterate), hopefully with fewer and fewer changes to the design and code, as you go.

      Though, I do think that there is an overemphasis on design, since, almost without exception, you won't know what the final design will be until you've begun to code it. Additionally, a season programmer shouldn't waste time on designing simple patterns (i.e., singletons or command-factories), other than remarking that certain portions of the code will need a singleton or command-factory.

      In general, though, you sound like a highly sane PM.

    3. Re:Mmm. by mwillems · · Score: 1

      Indeed - not disagreeing (I don't mean about the sane bit - I mean about tackling the problem from both ends. :-)

      --

      ---
      BDOS ERR ON A:>
  139. Then there's the Road-worker effect by mcrbids · · Score: 1

    I maintain a groupware application for a school. One of the things to coordinate is scheduling for classes.

    There's two systems: One that's currently active, and a new (vastly improved) one under development. The currently active system was initially developed by somebody not particularly familiar with relational databases, and so is very, very cumbersome to work with.

    People need *something* today. We can't commit our resources to something new without providing something today for people to use. But, the current one is so kludgy and terribly designed that it takes massive amounts of time just to keep that bug-infested, terrible thing alive.

    So, 80% of the available time goes to maintaining something that really should be deleted, only because the new stuff isn't done yet.

    AUGH!

    --
    I have no problem with your religion until you decide it's reason to deprive others of the truth.
  140. Requirements by Theatetus · · Score: 1

    In my time as a programmer I heard a lot of people complaining about requirements changes. My inclination was to say it's not the client's job to make good requirements. If the client was in a place to make non-vague requirements he probably wouldn't need your help programming them.

    A good project manager will listen to the client's end user vision of the product before the project starts, and (this is the key part) during the development make the client aware of consequences of their delays or changes.

    --
    All's true that is mistrusted
    1. Re:Requirements by Anonymous Coward · · Score: 0

      But gathering requirements is different from managing a project, why do you want the project manager to do both?? And how would the end user have the know-how to define the product?? The end users know about their own business which probably isn't related to software systems, how are they qualified to tell anyone what the software product should look like?

      Furthermore, most end users, i.e. people, aren't even good at telling you what they do. Ask anybody to teach you their work, or write a book about their job. Most will fail. Only a small portion of people are good at analyzing their jobs, breaking it down into step-by-step tasks, into business rules. And that's what it takes to write requirements.

      The "good project manager" that you talk about just happens to be good at two fields: project managing and gathering requirements. But why look for such a rare person? Why not hire two separate people each trained in their own specialty? And why should requirement gathering be any different from other portions of software development? Why isn't it studied and formally defined like everything else?

      That's the problem with you folks. You are too static. Requirements have been done by PMs so they will continue to be done by PMs. Whoopee. lots of innovation there! Lots of analysis and problem solving... :-P

  141. Mod up reply above this one! by Anonymous Coward · · Score: 0

    Mod this reply up even if poster can't spell project. That last paragraph is right on!

  142. Overlooked by RomulusNR · · Score: 1

    The biggest one for me is:

    7. Project is fucking impossible

    --
    Terrorists can attack freedom, but only Congress can destroy it.
  143. 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.

    1. Re:Bias by psykocrime · · Score: 1

      I also think that the chosen dimensions are not orthogonal.

      That was my first thought when I read the article. Too much overlap between those categories. Requirements flux is (potentially) addressed by your choice of methodology, for example.

      Actually, "Use of inappropriate methodology" is proobably just a euphemism for "did a lot of stuff wrong," in this case. As such, that category is so broad, vague, and all-encompassing as to be useless for gathering any kind of metric. IMHO, of course.

      --
      // TODO: Insert Cool Sig
  144. Coding should be like building a house by cheekyboy · · Score: 1

    How many builders/bricklayers/electricians/cabinet makers do you know that will "moddify" the original plan or do extra work for free? NONE!

    Even if you ask a builder to use bigger door handles or woodgrain, or more kitchen space, they will charge you per hour for EVERYTHING, and EVERY item. Why cant clients just get a damn clue and respect the software people.

    --
    Liberty freedom are no1, not dicks in suits.
    1. Re:Coding should be like building a house by fiber_halo · · Score: 1
      Why cant clients just get a damn clue and respect the software people

      I'm a little off topic here, but that is so true... Why is it that if we have acquaintances who work in construction, medical or legal professions, etc. they insist on charging for any and all services? "Oh you need a little help pouring some concrete? Let me give you a price quote."

      But if they need help fixing their computer, satellite system, or figuring out how to work their new vehicle GPS, they expect us to jump at the chance to do it for free.

      I guess I'm too nice because I don't mind helping "friends" or relatives. I guarantee most of them would be appalled if I tried to charge them even half of what I would charge a real customer.

  145. Success Metrics by persaud · · Score: 1

    From a requirements management point of view, the challenge is asking questions that result in testable assertions. A project is work that is bounded by a start and end date, where the end is defined by a set of testable completion assertions (functional, performance, quality).

    We need not completely understand the market, but we need to understand the immediate customer to a point where a robust Q&A session with either developer or customer yields no "surprises". Robust Q&A implies sanity checks against other (markets | customers | projects | technology) of comparable complexity.

    Everyone must manage up at least as much as down. That goes for the developer, release manager and even yes, the customer. Customers have customers too. We can only reduce risk and characterize uncertainty within the limits of our domain expertise. At the same time, we both educate and learn from those immediately up and downstream.

    When these learning boundaries start to number in the dozens, and the system boundaries start to number in the hundreds, a good requirements management tool can perform instant impact assessment for any proposed change or discovered defect. Such a tool is the difference between saying "That's a bad idea" and "That will endanger component X, functionality Y, development path Z and customer schedule T".

  146. Re: 'doghouse' theory of software by Anonymous Coward · · Score: 0

    BULLSHIT. Most large software development *is* much more complicated than putting up a skyscrapper.

  147. Small teams with a strong vision by Anonymous Coward · · Score: 1, Insightful

    Projects work best when done by a small team with a strong vision. Even if the small team is a team-within-a-team. You can add project managers, junior coders, analysts, other support people, etc. But when the project gets moving, no matter how many people on the team it seems like it's always the same three or four guys who are doing the lifting. And they become very good at humoring the project managers.

  148. 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.
  149. Have we meet before by RodeoBoy · · Score: 1

    Weren't we on a project together onetime.

  150. methodology... by DrVomact · · Score: 1
    Now, while a lack of any sort of methodology is a disaster waiting to happen...

    I don't know about that, but I firmly believe that anyone who uses the word "methodology" when he really means "method" should be summarily fed to rabid minks.

    --
    Great men are almost always bad men--Lord Acton's Corollary
  151. EverQuest Online Adventures development by Anonymous Coward · · Score: 0

    Anyone know what's going on at Sony's internals that this game is being so neglected? I've been playing EQOA a while now and they never update, some important quests have been broken for over a year, new content is usually god-awful quests that are taken down a week later. This article really got me thinking about this in a serious light.

    A good example of how NOT to develop and maintain an MMORPG.

  152. Tommy Boy quote by danish · · Score: 1

    Related quote from a truly classic film.

    Tommy: Does this suit make me look fat?
    Richard: No, no. Your face does.

    Oh, Chris Farley, how we miss thee.

  153. RTFA by Bush+Pig · · Score: 1

    It's interesting that everyone seems to be focussing on requirements creep (granted it's _really_ fucking annoying), whereas TFA explicitly states that the biggest risk factor is a poor choice of methodology (eg, force-fitting every project to extreme programming, or OO, or whatever the currently fashionable methodology might be). This relates quite well to what's in Robert Glass's "Facts and Fallacies of Software Engineering" (recently reviewed on Slashdot, but I'm too lazy to look up the reference). I'm not completely convinced myself, but I believe that selecting the methodology before _any_ other work starts can cause problems.

    --
    What a long, strange trip it's been.
    1. Re:RTFA by llefler · · Score: 1

      Also under methodologies was: do you put together requirements that are cast in stone or do you make incremental (iterative) releases as feature sets are completed.

      One of the big factors here is how well you understand the environment of your customers. Rigid requirements will get the project done faster, but there is more risk since the requirements may be wrong. Incremental releases gives you flexibility to change your product to be what the customer really wants, but it takes longer to develop.

      As an aside; I personally prefer the incremental approach. I think the process of recertifying existing features with each release improves overall testing. It also improves communication between the developers and the customers.

      --
      It is amazing what you can accomplish if you do not care who gets the credit. -- Harry Truman
  154. From an ex-project manager by Anonymous Coward · · Score: 0

    Why do so many development projects fail?

    Because the programmers spend all day reading Slashdot! Get back to work!

  155. Govt is a master at that by Anonymous Coward · · Score: 0

    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.

    I guess when the NWS spent 10 years planning a new weather data system and 2 years coding, it must have been super well managed!

    (The 10 years were from 1985-1995. I think you can figure out the rest.)

  156. Sinking Ships! by poonbanger · · Score: 0

    I've been on a few sinking ships, and it is very easy to know when the ship is sinking.

    The rats are the first to flee from a sinking ship. So if you see the rats getting out make escape plans.

  157. one reason... by the-build-chicken · · Score: 1

    ...lack of courage...client wants to change the requirements, have the balls to charge him more and tell him the deadline's going to move. There are very few management failures that can't be nailed down to good old fashion lacking of the steel ones.

  158. I don't think rare people are that fickle... by SuperKendall · · Score: 1

    I think good programmers may be kind of rare (though I'm not sure they are as rare as we think).

    However I don't think rare people are often fickle. I do think rare people are often mistreated, and mis/underused (I hope you get the gist of my combo word there) and thus leave a company in annoyance. A good person treated well will tend to stay at a company as long as the work is interesting - after all, why should they look elsewhere if they are happy? Usually events that make you leave a company like moving and so forth, are brought about by a company themselves.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:I don't think rare people are that fickle... by killjoe · · Score: 1

      What you mean is that they are divas. They want to get paid a lot, they don't want to do work they consider menial (debug? maintain? What me? You must be kidding!), and they want to be catered to.

      Again, I know that's not what you want to hear but it's true. Smart programmers don't make good employees. they are not interested in doing the day to day work required to make a company function.

      --
      evil is as evil does
  159. How I've been successful by fzammett · · Score: 1

    Over the past five years I have successfully completed six projects for my employer that most people would consider major projects. Three of them had multi-million-dollar budgets and all of them had multi-million-dollar goals (i.e., saving the company ten million, opening up a new market that should account for 20 million, etc.)

    I've been a "professional" developer for over 10 years, and a developer in general for over 20. From a technical standpoint I am generally acknowledged by my peers as one of the best around.

    Want to know how those projects got done, on time, on budget, and fulfilled their requirements (and even exceeded them in some places)?

    I can tell you this... there was never any formal methodology involved (although subconsciously we did follow many best-practices without even realizing it). None of these projects required any death-marches (one got a little tight at the end, but nothing crazy), and all were stunning successes in the end.

    Simply put, they handed me the reigns and got out of my way, mostly anyway. I wasn't bugged daily by PM's looking for statuses. I wasn't constantly bothered by users looking for access to development work. I wasn't always called by management to discuss were the project was.

    I was involved in the business analysis for all of them, although I was not primarily a business analyst, we had a "real" one of those, I just participated to keep the requirements gathering phase somewhat realistic in terms of the technology that might implement the solutions (of course at that phase you aren't focused on technology, your barely thinking about it actually, but it helps to have someone involved that knows what may or may not be possible and let the business analyst focus more on the business side of things).

    Then, I did 90%-95% of the architecting of the systems. There were others involve, but the vast majority of the final decisions were mine.

    Then, I did 90%-95% of the actual coding. In fact, three of the six projects I did ALL the coding on, the others I distributed some portions of work to other developers.

    I then did my unit testing and handed off small pieces of the system TO ACTUAL USERS, at whatever increments I could (i.e., put something real in front of the user ASAP, even if they aren't going to actually use it in a real way immediately, you just want to keep them engaged and invested in the work). All of these projects were iterative, although I found that there wasn't a large amount of scope/feature-creep, nor was there a lot of reworking of things I got wrong. Sure, there was some of that, but it was perfectly manageable because the design phase (what I call requirements gathering plus architecting) was done pretty well.

    And it is very important to point out that at virtually NO POINT IN TIME did I work more than my usual 40 hour week. Maybe a couple of 40-45 hour weeks here or there, but generally 40 hours on the button (some weeks even less frankly).

    Some of the coding I farmed out to others, I even let them do some of the design work on small units of work, but it is fair to say that I am single-handedly responsible for 90% or so of all of these systems, from start to finish.

    Now, I'm not saying any of this to toot my own horn. I'm just trying to make a point, which is this...

    If you have talented, capable people working for you, and you let them "do their thing" and trust in them, success tends to happen. People tend not to work to their full potential when they feel people are constantly looking over their shoulder (even when they are, it should be in a non-invasive way).

    Naturally, you have to find the right people, and you have to get that level of trust, which isn't usually automatic upon hiring someone, but it's a worth-wild exercise to partake. This isn't easy, but my experience is that it is worth the time, and will lead to better results than going nuts implementing some majestic methodology, forcing particular tools on people, or otherwise bein

    --
    If a pion (n-) collides with a proton in the woods & noone is there to hear it, does lamdba decay into the source pa
    1. Re:How I've been successful by Anonymous Coward · · Score: 0

      wooo aren't you great!

    2. Re:How I've been successful by Trillan · · Score: 1

      Well said. Assuming the workers are talented... and why are you keeping them employed if they're not?... the more management interferes, the slower a project goes and the more likely it is to fail.

      Now, I don't think there's anything wrong with using more formal methodologies. But when the goal is a completed project and a working product, make sure you're using your tools towards the goal instead of against it.

  160. scaling doesn't work the way you described by tallbill · · Score: 0

    You don't understand constructin and you don't understand software either as far as I can tell. You can't just stack a room on top of another room just like you can't test a single software transaction and then say the same methodology will work if that is multipled by some n For example a building was constructed, a Library, at a major Massachusetts university. The engineer who designed it didn't consider that the weight of the books was a significant aspect. So concrete started falling off. With software if you scale it things can break in a way that you will not understand later. Look at what happened with that airline during Christmas. And so I conclude is that one of the bigest problems in software is that people don't understand that scaling things doesn't work. IE: and example from C code: int myarray[100]; Well, we can add an zero to that and have: int myarray[1000]; What about just one more zero? soon we have : int myarray[100000000]; And that just probably, I am going to guess, is going to cause a resource allocation problem. You will blow up the heap. You won't be able to load your code. And then the manager asks and the amatuer software guy says: "I only added one zero" But he multiplied it by 10. And then the product doesn't work. It was just a zero.

  161. 10 year old article by tallbill · · Score: 1, Insightful

    You link in a ten year old article and this is supposed to be relevant? Software Engineering suffers because software can be made to seem to work and managers see it and say: ship it. They can't get away with this in construction or in electionics. But software is not as mature a discipline. But engineering for quality is a very important thing to do. And engineering is not something that software schools tend to teach. Why? Because anyone with a brain in their head went out and got rich. And they didn't care about doing things as engineers because they got seduced by the money and the stock options. The best software engineers, as far as I can tell, are the ones who were trained in another engineering discipline and then moved over to software. And then there was a whole generation of software accedemics who got seduced by the money and tried to patent their way into an easy retirement. They acted like experts and know it alls and stood in the way of real engineers trying to do real work. But engineering when applied to software has very strong results. It might not make people rich and so managers aren't interested. In software often when things are not engineered the software doesn't work. No big deal. In Civil, Electrical, and Mechanical engineering if things don't work correctly often times it means that people die, the building falls on them, they get electricuted. Fortunately there are what are known as real-time software engineers. And these are the people who do real software engineering. They aren't just trying to push through standards that they have patented clandestenly so that they can get royalties. The greed of the first generation of software engineers is why software engineering suffered. These people got rich, cashed in, and then got out of the business.

    1. Re:10 year old article by fyrie · · Score: 1

      Did you read it? Yes the article is 10 years old, but if you look at what Shaw suggests needs to be done before software can become a true engineering discipline, you will see that we aren't there yet. I think the implication that this article makes (SE being in its infancy stage) still holds to be true.

      I can't say that what you have posted is really exclusive to anything in the article. The examples you give of people following the bottom line are definitely a factor impeding the progression of the discipline. However, I think you need to define the term "software engineering" What is it, and is it a reality. When you say "And engineering is not something that software schools tend to teach." I would say that they don't teach it because the markers defining "engineering" as defined by Shaw do not yet exist. It's still craft.

      Quoting the article:

      "Where is software? Where, then, does current software practice lie on the path to engineering? It is still in some cases craft and in some cases commercial practice. A science is beginning to contribute results, and, for isolated examples, you can argue that professional engineering is taking place... That is not, however, the common case."

      In her article she implies that chemical engineering was not engineering until atomic theory and unit operations came along. By her reasoning professional engineering didn't come along until 100 years after industrialization of chemical processing began. Before that it was craft and innovation from virtuosos. Science needs to be feeding back into the process before it can be considered engineering (by Shaw's definition).

      By her account, 10 years ago, this is what still has to happen in software:

      1. Understanding the nature of expertise. "...the engineering of software would be better supported if we knew better what specific content a software engineer should know. We could organize the teaching of this material so useful subsets are learned first, followed by progressively more sophisticated subsets. We could also develop standard reference materials as carries of the content."

      2. Recognize different ways to get information. "Software engineering requires investment in the infrastructure cost - in creating the materials required to organize information, especially reference material for practitioners."

      3. Encourage routine practice. I can paraphrase this section as: Stop reinventing the wheel (happens on a routine basis still does it not?), and give incentive and place value on innovation.

      - I think there is progress being made in the above with advancement in auto documentation, patterns, UML, wiki, message boards, etc... but there is no handbook analogous to the one described in the article for chemical engineering. Furthermore, UML and patterns are relatively new, and until they or something similar has matured, software will be something that is very difficult to talk about, therefore keeping a lot of knowledge in the folklore area. Everyone knows what a for loop, if/else, and a singleton are. This type of communicable language needs to be applied to other concepts which are now painfully difficult to talk about even amongst experienced developers.

      4. Expect professional specializations. By and large, developers are still expected to be jack of all trades.

      5. Improved the coupling between science and commercial practice. Currently there is not a lot of science generated from or contributing to typical "software engineering".

      I still think this article is very relevant.

    2. Re:10 year old article by tallbill · · Score: 1

      Engineering can be applied to anything.
      Because it is not typically applied to SWEngineering means not that there is not SW engineering, but that people get away with not applying engineering principles to software.

      Why? Because they get rich anyway.

      No, I did not read the article all through.
      When I saw that it was ten years old I figured that it was not worth reading. Shame on me.

  162. Codified thought? by tallbill · · Score: 0

    Codified thought?

    I am not sure what you mean.

    I picture software as data and methods. And in some cases the data is the method/process.

    When you start to think of software as memory fields and a processor that works on the memory fields based upon what is in another part of memory then you start to have a better handle on how to engineer software.

    Abstractions such a memory managers are a good for learning. But when you want to engineer things, you have to think of the data that is in memory, both the data that is the code that executes as a method and the data that is the data used by the methods.

    You start to think about the stack and the heap and what a line of code does to the memory space. You start to think of how the process starts, how it proceeds, how it branches.

    There is not thought in the software itself, but just bits and a processor or two. It takes thought to make software, but I don't believe that software is codified thought. Not even a little.

    What would you then call firmware? What about hardware when a chip is burned to do things in a specific way (an ASIC)?

    Oh, and a virus is an exploit of the fact that methods are really just data. You put the programm counter to an address that is supposed to be data, but it is really a method. that is what a stack overflow trys to do.

    Software is more like stacked dominoes. It takes thought to stack the dominoes but the dominoes are not themsleves codified thought.

    I agree there is no magic. But are you sure that there isn't just a little bit of newts feet? ; )

  163. some software as objective as bridge or sewer by tallbill · · Score: 0

    Some software is engineered traditionally like a bridge or a sewer.

    You are build bit fields that will be read by a processor.

    It is just like setting up dominoes that you then push one and the thing does what it does.

    it is like putting a train on a track and then letting it run.

    If you don't see it that way, then you abstract the software to a point where, yes, you can't engineer it.

    Then you are a coder and a theorist and you can get things to work but only if you use tools that are created by a real engineer.

    Engineering is engineering. You apply it to anything. You either are or are not an engineer. If you are not an engineer then if you do mechanics you are a tinkerer. If you do software then you are a script kiddie. Software has the same objectivity from an engineering stand point as any other technical field. The problem is that so many who say that there are software engineers are just script-kiddies with no degree or any understanding of engineering or even how memory and microprocessors work together.

    And these people get rich any way. And when their stuff don't work, it doesn't matter because they have already cashed in their stock options and bought their beach front.

    If they designed a bad bridge and people died from their incompetance, then they could be held criminally liable. We don't hold software up to any standard at all in most cases. If our OS stops working because of a poorly designed browser the company assumes no liability at all. They tell us it is our own fault because we didn't install anti-virus software.

    Fortunately their are still parts of the software world where real engineering is required. Fortunately for the toy operating systems, like the predominate desktop OS, the worst that really happens when the stuff don't boot anymore is that the owner has to reinstall or, better, install a different OS that doesn't have the same problems.

    But for software that runs real machines, heart monitors, robotics in factories, automobile control systems, there are real engineers doing real engineering and applying it to software. And this application is just as objective as a bridge or a sewer. How about the software that controls the flow of a sewer? Or the software that raises or lowers a drawbridge? It it doesn't work bad things happen. So, of course, real engineering applies to that software. But for the software that lets you watch DVD's, who cares? If you can't watch the DVD then you go and get a different player. No one is hurt.

  164. It's jealousy... by chuckw · · Score: 1

    Jealousy, that's what it is. Women have those goofy magazine quizzes, so us geeks "gotta" go out and come up with something to quiz ourselves against. "Is your project doomed to failure?", "How to drive your project manager wild.", "The 25 code tricks that get your regression testers revving.", "Lose 25 lines of code a week in three easy steps." and my personal favorite, "Are you good at passing the buck? Take our quiz to find out!".

    Yeah, I got karma...

    --
    *Condense fact from the vapor of nuance*
  165. What a buncha cry-babies! by Anonymous Coward · · Score: 1, Funny
    The project I've been assigned to as QA replaces the COBOL-we've-been-using-for-fifteen-years production software with a modern GUI'd, rules engine based, fully OOP enterprise-class system. It was requested by Ops for inhouse use. Since all we have are COBOL programmers, we hired an outside company to send in a few ex-dot-com Visual Basic programmers and a QA; they work onsite. Inhouse QA wasn't up to the task, but I'm newly hired and was put on the project.

    The project has been going for a year, but QA is being added three months before the release date, which will *not* be missed since not missing release dates is pretty much the only thing that upper management is judged on for bonuses. No, I'm not kidding.

    We've got one upper managment guy for all of IT and his prior experience was...an actuary. Doesn't want the QA, programmers and Business Analysts to *ever* communicate or have meetings since "it's not cost effective, just a waste of time. They each know their job". Classic waterfall, except there is *no process* formally put in place. None. I yearn for the old days of sneakernet when at least you knew where the *correct* code to be tested was physically located! Specs? Oh, yeah, there are plenty, many differently-named ones out in many folders on many servers; pick the one that uses the prettiest font and follow that until someone makes a new one to match the latest new requirements. Just be careful when you do a filename search because different people call the project by different names; not even the working name has been standardized.

    There is no middle management. There is a project manager, (well we actually use our Business Analysts as Project Managers), but she said in our first (of three total for the project) meeting "I'm more of a conduit for communication, so I am going to stay hands-off". Wanna know who is actually running the entire project for us? Yup, the hired guns that are doing the programming.

    Oh, did I mention that two months before implementation into production we have yet to receive a stable prototype? Have I forgotton to mention that as a company, we have no version control and no issue/bug tracking? Oh, and we don't get merit raises, just a match to the lower 1/4 of the salary for the position for the region.

    Soooooo, do you still think you have it that bad?

  166. Experience by overlordhab · · Score: 1

    It is easy to become a programmer. Pick up VB for dummies and off you go. Managers for some reason think that all programmers are the same and does not put a high enough value on experience

  167. 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 ...

  168. Ask John Carmack by HogynCymraeg · · Score: 1

    He'd have a few experiences to share!

  169. Dashboards by hughk · · Score: 1

    This technique is generically known i current project-manager-speak as Project Dashboards, referencing the instrument panel of a car. The idea is essentially what anon stated, to summarise and present progress, budget and quality level in as near to real-time as possible. For us, this generally meant at best daily rather than on a 'minute by minute' basis.

    --
    See my journal, I write things there
  170. bang on the money by RMH101 · · Score: 1

    in the pharma world, FDA-regulation and GxP has led to a number of methodologies for formally validating IT projects - the stuff I work on is detailed down to Little Rubber Feet level - including firmware revision numbers...!
    Horrible to work in if you're used to improvising projects, but essential if you're going to have 1005 reproducability and a bulletproof project.
    Users come up with a formal User Requirement Spec which they sign off, IT comes up with a Functional Requirement Spec and a Technical Requirement Spec, and then formally maps using a traceability matrix everything the customer's asked for against those documents - so nothing can be left out, and the users can't say they've not got precisely what they've asked for...

  171. Easy! by burdalane · · Score: 1

    All my software projects fail for one very obvious reason: I'm lazy. I spend the first year of a 2-week software project doing other things like reading Slashdot. Of course the project is bound to fail because I'm not going to start it until a year after it was supposed to be done. I'm self-employed and have very little other experience, so I can't say about team projects.

  172. 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
  173. OT: Re:Correct, but there is more by Anonymous Coward · · Score: 0
    i have been part of a project (past tense) where:

    Ackshly, this is a present tense - the present perfect. If you had wanted to use the past, you should have written "I was a part of a project" which would have been more appropriate.

    The present perfect places the event(s) described in a stretch of time between now (because it is the present perfect) and an earlier time, whereas the simple past refers to a single event some time in the past. In this case, to get the full power of the present perfect you need to refer to more than one past project, which is beyond the scope of the simple past tense.

    We have wonderful, elegant tenses and tense structures in English (although we are conspicuously lacking a future tense) so let's learn how to use them to explicitly express things other languages can only imply!

    !GrammarNazi

  174. 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.

  175. Re:"changing requiresments" less bad than no chang by llefler · · Score: 1

    You've just described trickle down economics.

    --
    It is amazing what you can accomplish if you do not care who gets the credit. -- Harry Truman
  176. You would think so but... by SuperKendall · · Score: 1

    Here are some examples of the kinds of changes I have seen, all under the flag of SOX:

    * No developers allowed to touch data in production systems. Furthermore, no developer allowed acounts on production boxes. You are of course allowed to use a GUI or instruct someone else to make the change...

    * All code must be run through QA test plan 100% before drop to production.

    Yes it's true that the purpose of SOX is to improve fiscal responsibility of comapanies. But the wording is very loose, and open to interpretation - this interprition is helpfully provided by consulting firms that decide the extent of the process changes you must implment in order for their auitors to sign of on complianes.

    Because upper management is scared witless of any lawsuit against them personally, they go for the most extreme of changes without question.

    I think in the long term it will be a huge incentivew for a comapny to NOT go public because of all the extra overhead you must endure to comply.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  177. Not true at all by SuperKendall · · Score: 1

    I have seen many great, fairly egoless programmers. In fact the people you describe I would say could NEVER be a great programmer exactly for the traits you describe - they could not work well in a team.

    A great programmer is one that can come up with elegant designs but then can shift into an equally elegant production and support of same system. It might be good to move them around after a while but all really good programmers I have seen relish the thought of supporting a real system in production, as it is another chance to learn how a system should be changed to best meet the needs of the people using it. Real programmers are not ones that live only in the deisgn or build phase, they can and do span all worlds.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  178. Re:I did not say perfect it. I said plan and desig by llefler · · Score: 1

    From a customer standpoint you don't consider Microsoft a success.

    From a business standpoint, would you rather be a stakeholder in Microsoft or Netscape? I think your viewpoint is jaded by your opinion of their products.

    --
    It is amazing what you can accomplish if you do not care who gets the credit. -- Harry Truman
  179. One flaw with the survey... by SweetImpact · · Score: 1

    ...is the fact that it is a survey. I think that this type of analysis would have shed more accurate insight if outside 3rd parties had analyzed the development projects rather than having people involved with the project(with their own biases, attachments, perspectives etc...) complete a questionnaire. 1) Outside parties would have fewer biases about why a project fails. 2) The usability adage "trust what people do, rather than what they say they do" applies here. 3) There is a possibility that the people that were surveyed were major contributors to the failure, and hence should we trust their judgment?

  180. I only control technology. by expro · · Score: 1

    From a technological standpoint, IE is quite bad. But from a business perspective, it could be Hello World, and it would be successful, as the years of Microsoft dominance with very bad products shows.

    Or is Chinese communism an unqualified success because it serves so many people.

  181. My pior answer was too short. by expro · · Score: 1

    If you have never used anything but IE before, I can imagine you somehow feeling that IE served users' needs.

    A short list that is more than a year old is found here.

    Anyone with a lot of knowledge of both products or the products of other browser makers could come up with many more significant differences. It is horrible to have a Windows user telling of all his problems pleading you to come help and then you are forced to stumble through the web with IE for him because he is too short-sighted to use anything else. That is why he is on Windows with all the problems in the first place, because he was incapable of good analysis.

    If IE had never existed, the World Wide Web experience of the user would be just as universal and far richer. If Netscape or others had never existed, it would be far poorer. That is the bottom line, however you want to define the success or failure of technology that has nothing to do with solid technology. What did Microsoft contribute... Active X? There is a real winner. Broken/incompetent standards support to make pages only work in IE if written by IE users? Security holes galore, generally not present in the other browsers? A monoculture (even if the technology had been good, this is a bad thing). Declaring IE a technological success is a statement about you. At Microsoft, the only real success is something that can be abused to dominate, and a rusty, infected blade seems to be of more use to them in surgury to threaten the patient than a good one, so define success in their terms if you like.

  182. 2 More cents by Anonymous Coward · · Score: 0

    Cent 1: Poor methedology by coders. Yes, when code monkyeys :) don't comment there code, use good variable/method names, and are generally lazy they increase the overall complexity of the project making it more likely to fails

    Cent 2: Poor communication. Communication between all of the players (project managment monkeys, business mangement monkeys, code monkeys, QA monkeys, and customer monkeys) is critcal to success of any project. A breakdown in communication between any of these groups is always costly and sometimes fatal. This aspect of project management is why the old "we will just add some more programmers to the project" generally just makes things worse.