Slashdot Mirror


Why New Systems Fail

bfwebster writes "Over the last forty years, a small set of classic works on risks and pitfalls in software engineering and IT project management have been published and remained in print. The authors are well known, or should be: Gerry Weinberg, Fred Brooks, Ed Yourdon, Capers Jones, Stephen Flowers, Robert Glass, Tom DeMarco, Tim Lister, Steve McConnell, Steve Maguire, and so on. These books all focus largely on projects where actual software development is going on. A new book by Phil Simon, Why New Systems Fail, is likewise a risks-and-pitfalls book, but Simon covers largely uncharted territory for the genre: selection and implementation of enterprise-level, customizable, off-the-shelf (COTS) software packages, such as accounting systems, human resource systems, and enterprise resource planning (ERP) software. As such, Simon's book is not only useful, it is important." Read on for the rest of Bruce's thoughts on this book. Why New Systems Fail: Theory and Practice Collide author Phil Simon pages 251 publisher AuthorHouse, 2009 rating 8/10 reviewer Bruce F. Webster ISBN 9781-4389-4424-1 summary Risks and pitfalls of enterprise COTS projects Phil Simon has written a long-needed and long-overdue book. Most risks-and-pitfalls book in the IT category focus primarily on projects where actual software engineering is the principal activity. However, many of the large, expensive and often spectacular IT project failures over the past 20 years have little to do with software design and development. Instead, they involve a given organization selecting and implementing — or trying to implement — a commercial off-the-shelf (COTS) software package to replace existing legacy systems, either homegrown or also commercial. The reasons for such a move can be many: standardizing IT and data management across the enterprise, seeking new functionality, retiring systems that are no longer supported or supportable, and so on. By so doing, the firm (usually rightly) thinks to avoid the risks and expense of from-scratch custom software development. However, the firm (usually wrongly) thinks that such a project comprises nothing more than installing the software, training some users, converting some data, and turning a switch. A quick search on the terms "ERP" and "lawsuit" shows just how mistaken that idea can be.

Simon's book is far more informative and instructive than a Google search and should be required reading for all CIOs, IT project managers, and involved business managers prior to starting any such enterprise COTS project. He covers the complete lifecycle of such projects, starting with the typical expectations by upper management ("Fantasy World") and following it through system selection, implementation, and production, along with a final section on how to maximize the chances of success. Along the way, he uses several real-word case studies (with names changed), as well as a few hypothetical ones, to demonstrate just how such efforts go wrong.

What Simon writes is spot on. For roughly 15 years now, my primary professional focus has been on why IT projects fail. I do that both as a consultant (brought in to review troubled projects to get them back on track) and as a consulting or testifying expert (brought in to review troubled or failed projects now in litigation). I have reviewed hundreds of thousands of pages of project documentation and communication; I have likewise traced or reconstructed project histories for many major IT projects, including enterprise COTS projects. It's clear that Simon knows exactly what he's talking about and knows where all the bodies are buried.

The book itself is very readable. Simon's tone is conversational and a bit humorous; he occasionally dives into technicalities that would be lost on upper management, but always comes back to basic principles. The real-world and hypothetical case studies will have those of us who have been on such projects nodding our heads even as we occasionally wince or shudder. His coverage is exhaustive (and at times a bit exhausting), but his goal appears to be to give those managing and overseeing such projects the information they need to navigate the shoals. He goes into detail about COTS pitfalls such as project estimation, vendor selection, use of consultants, group responsibility, integration with legacy systems, data conversion, and report generation.

The first section of the book covers how and why firms decide to initiate a major COTS project. Besides the "Fantasy World" section that compares management expectations to what really happens, the book also covers why firms hold onto legacy systems, why they buy new (replacement) systems, and how they can (or should) make the decision among building a custom system, buying a COTS system, and "renting" enterprise software via a web-based software-as-a-service (SaaS) vendors such as Workday and Salesforce.

The second section covers COTS system selection. The book divides current ERP and COTS vendors into four different tiers based on company size and use (e.g., SAP, Oracle and BaaN are all Tier 1) and warns of the, ah, enthusiasm of vendor salespersons. (Old-but-still-timely joke: What's the difference between a used car salesman and a software salesman? The used car salesman knows how to use his own product and knows when he's lying.) The book then raises up front an issue often left (by customers) until much later: how will business processes change as a result of the COTS system we're acquiring? It then talks about selecting, if necessary, a consulting firm to help with the installation and project management.

The third section covers the actual COTS implementation process, including the overall strategy, roles and responsibilities, providing the necessary environments, data migration, testing, reports, and documentation. This section is a bit exhausting at times, but it is critical for exactly that reason: far too many firms launch into a major COTS acquisition without fully realizing just what it will take to get the system into production.

The fourth section briefly deals with life after implementation. In theory, one of the reasons a firm buys a COTS system is to avoid doing its own maintenance and support; the reality is that the firm often doesn't like paying those large annual maintenance fees and instead goes off on its own path, which is seldom a good idea.

The fifth and final section talks about how to maximize the chance of success in a large COTS implementation. This section builds upon the rest of the book, which has provided suggestions along the way. In particularly, it talks about how to deal with a troubled project mid-course in order to get it back on track.

Throughout the book, Simon puts a significant focus on human factors in project success and failure. He identifies issues such as internal politics, kingdom-building, reluctance to learn new systems, internal project sabotage, end-user resistance, and staff allocation. Simon divides firm personnel assigned to work on the COTS project into four groups — willing and able (WAA); willing but not able (WBNA); not willing but able (NWBA); and neither willing nor able (NWNA) — and talks about how each groups helps or hurts. Similarly, he identified four dangerous type of project managers: the Yes Man, the Micromanager, the Procrastinator, and the Know-It-All. Again, those of us who have been on major IT projects, particularly those involving COTS implementations, will recognize both sets of categorization and the risks they entail.

While Simon is himself a consultant, he is also quite frank about the role consultancies can play in COTS project failures. In particularly, he notes the tendency of consulting firms to underestimate project duration and cost in order to win business, as well as the frequent unwillingness to point out risks and pitfalls to the client, particularly if they represent something the client wants to do.

My few complaints with Why New Systems Fail are mostly production-related. Simon self-published the book; as such, the book's internal layout and graphic design leaves something to be desired. Likewise, his organization and prose could use a bit of editing in spots; he has a propensity for throwing in terms and abbreviations without clarification, and the technical level can vary within a given chapter. Almost all of his footnote references come from Wikipedia; his bibliography is small (just four books) and cites only Brooks from the cadre of authors listed above. None of this makes the book's content any less important or useful, but some of the very people who should be reading this book might well skip or skim it for those reasons. My understanding is that Simon is working on finding a publisher for the book, which will likely solve all those problems.

In the meantime, if you or someone you love is about to embark on an enterprise-level COTS project, get this book; I've added it to my own short-list of recommended readings in software engineering.

You can purchase Why New Systems Fail: Theory and Practice Collide from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

140 comments

  1. New Systems Fail Because... by SolarStorm · · Score: 1

    the users dont understand what I write!

  2. users? by Anonymous Coward · · Score: 0

    most new systems fail because the user doesn't read what he is doing, and then they blame it on the system

  3. Too Many Words in Sentence by Haffner · · Score: 0, Offtopic

    "Similarly, he identified four dangerous type of project managers: the Yes Man, the Micromanager, the Procrastinator, and the Know-It-All" should read as "Similarly, he identified the four types of project managers: the Yes Man, the Micromanager, the Procrastinator, and the Know-It-All"

    --
    "Going to war without the French is like going deer hunting without your accordion." ~General Norman Schwarzkopf
    1. Re:Too Many Words in Sentence by Anonymous Coward · · Score: 0

      That's actually the same number of words in both versions.

    2. Re:Too Many Words in Sentence by Anonymous Coward · · Score: 0

      Congratulations, you can count. I hope your achievement was worth it.

    3. Re:Too Many Words in Sentence by FishWithAHammer · · Score: 1

      Except that there very much is a fifth. A good project manager enables his people to get their jobs done more effectively, and shields them from administrative bullshit.

      Just because your PMs have sucked doesn't mean the rest of us haven't worked for great ones.

      --
      "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
    4. Re:Too Many Words in Sentence by Anonymous Coward · · Score: 0

      Anon doesn't achieve anything. /smirk

    5. Re:Too Many Words in Sentence by Hognoxious · · Score: 2, Funny

      A competent project manager? I wondered who that unicorn in the parking lot belonged to.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  4. Software Projects vs. Traditional Projects by religious+freak · · Score: 4, Interesting

    I was discussing with a friend how software projects are probably the most difficult to run and predict, especially with very large projects. He disagreed and said that all large projects are difficult - when you're building a bridge a multitude of things can and do go wrong.

    That's obviously true, but how many bridges never get finished compared to the number of software projects that never get finished? It seems project management is very difficult for IT related stuff. So am I just being IT centric in thinking our projects are more difficult than most?

    --
    If you can read this... 01110101 01110010 00100000 01100001 00100000 01100111 01100101 01100101 01101011
    1. Re:Software Projects vs. Traditional Projects by characterZer0 · · Score: 1

      Simple. If you build a bridge, and it falls over, you have just wasted a lot of money in materials and labor that you have to reinvest. Plus you have to dispose again of the broken bridge. It is worth it to have a reasonable schedule and proper design.

      If your software fails, you just fix the bug and recompile. It simply makes economic sense to rush it out the door.

      --
      Go green: turn off your refrigerator.
    2. Re:Software Projects vs. Traditional Projects by MightyYar · · Score: 5, Insightful

      how many bridges never get finished compared to the number of software projects that never get finished?

      All bridges are essentially "open source". Plenty of bridges have failed, but the failures are right out there in the open, ready to be studied by anyone who wants to build another bridge.

      In contrast, when a company's software project fails, the only people who learn from it are the ones involved with the project.

      --
      W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
    3. Re:Software Projects vs. Traditional Projects by Splab · · Score: 3, Insightful

      Not quite, you could do the same with a bridge, if parts of it collapse you can rebuild it.

      The reason why software is so buggy is no one is being hold responsible. Software is the only product out there where catastrophic failures are accepted and people happily sit around waiting for new stuff.

      If a bridge fails, some contractor is going to lose a lot of money, if someone is killed in the process they will be out of money (most likely). If software fails people just get a new update.

    4. Re:Software Projects vs. Traditional Projects by Dr_Barnowl · · Score: 2, Insightful

      Indeed. With a bridge, the requirements are simple and obvious - you want a structure that permits transit from one side of some geographical divide to the other. All the detail is just detail, the end requirement is invariable.

      With a software project, the requirements are often poorly understood or even unknown - a nebulous sense that things could be better if only we had better software. Often the software itself will reveal the real requirements.

    5. Re:Software Projects vs. Traditional Projects by PainKilleR-CE · · Score: 1

      "Software Engineers" are one of the few types of engineers that are not liable for the failure of the systems they create. They're also one of the few engineers that usually see construction start before the designs are complete.

      Additionally, software prototypes don't live in the same realm as other prototypes. You can show a proof of concept in software, and then something happens when you scale it up that you weren't expecting, or someone just screws up writing their piece of the code and it takes two years to track down a mis-placed keystroke. If it's a third-party product (as with this book's subject matter), it's even worse, because you call support and everyone's trying to determine how they can shift the blame to someone else and clear their support tickets rather than actually help someone out.

      --
      -PainKilleR-[CE]
    6. Re:Software Projects vs. Traditional Projects by fuzzyfuzzyfungus · · Score: 4, Interesting

      Software certainly does have the disadvantage of being extremely complex(Both internally and, perhaps ultimately more serious, in its interfaces to other software and systems.) What gives it an extra edge of danger, I suspect, versus some other complex projects is the difficulty(particularly for those of limited technical understanding who happen to be involved) of intuitively grasping how the project is going.

      You wouldn't want a non-engineer trying to micromanage bridge construction; but anybody can stick his head out the window and see how far across the water the bridge is today. The incipient cracks in the foundation might well be missed(as they often are), and the project can still easily go over time, or over budget; but it is hard(er) for fundamental delusions about progress to crop up.

      A layman looking at a complex piece of software doesn't have nearly the same chances. A "nearly there" system with a few serious but non-systemic bugs looks like a broken unusable mess. A brittle demo being coaxed through by a guy who knows the system better than the back of his hand looks a lot like an intuitive interface. If your institutional structure or culture has any of the factors that encourage delusions, lying, yes-manning, or similar, the people who are supposed to have a grand vision of the project won't have the foggiest idea what is going on.

    7. Re:Software Projects vs. Traditional Projects by Z34107 · · Score: 1

      My theory: If you build a bridge, and it falls over, you go to jail. Additionally, people die.

      I guess the kinds of project managers described ("the know-it-all, the micromanager") that evidently exist in IT would all be felons in the bridge-building world. But dammit Jim, IANACE (I Am Not a Civil Engineer), nor a project manager, nor an IT manager.

      --
      DATABASE WOW WOW
    8. Re:Software Projects vs. Traditional Projects by hemp · · Score: 1

      In contrast, when a company's software project fails, the only people who learn from it are the ones involved with the project.

      And a lot of times, the ones involved don't learn from it either, but merely continue on their merry way selling their consulting services to the next client.

      --
      Skip ------ See the latest from http://www.anArchyFortWorth.com
    9. Re:Software Projects vs. Traditional Projects by JobyOne · · Score: 1

      I think it has something to do with the fact that it's easier for bigshot investors/CEOs/bigwigs to wrap their head around physical problems brought up by engineers.

      If a structural engineer says "this cabling isn't strong enough, we need this other type and it will cost X more," that's a pretty concrete statement. And nobody wants to argue with a structural engineer.

      If a software engineer says "we should just buy X software package so I won't have to spend the next 2 weeks reinventing the wheel," a bad manager could pretty easily decide that they would rather pay their own people $2,000 to get a crappy knockoff of a tool they could have bought for $1,000. Then when that crappy reinvented wheel breaks they can just blame the coder who didn't even want to write it in the first place.

      Also people at the top rarely understand software, and can't be bothered to even learn the basics. Saying "do it" and expecting it to magically get done does not make a good manager.

      --
      Porquoi?
    10. Re:Software Projects vs. Traditional Projects by Anonymous Coward · · Score: 0

      Usually people calling themselves software engineers are not Engineers at all.
      In Canada to legally use the term Engineer you must be registered with a provincal Engineering Society and you are indeed liable.

      We still have the problem on non Engineers taking a six month course and then claiming to be a "Software Engineer". This is like taking a first aid course and claiming to be a neurosurgeon.

      That being said, as an Engineer in the IT field , I can say that in my experiece Engineers are great at running projects just don't let them write code that others may need to read and support later :(

    11. Re:Software Projects vs. Traditional Projects by dkleinsc · · Score: 1

      In contrast, when a company's software project fails, the only people who learn from it are some of the ones involved with the project.

      You make an incorrect assumption, namely that all those involved in the project will learn anything. Least of all the guy who decided to start the (possibly completely doomed) project with insufficient time available for things to go wrong, who has managed to successfully blame the failures completely on his most junior subordinate.

      --
      I am officially gone from /. Long live http://www.soylentnews.com/
    12. Re:Software Projects vs. Traditional Projects by Chirs · · Score: 1

      While it's true that things can go wrong building a bridge, it's also true that the fundamental physics of bridge-building are fairly well understood. There are standard tables that are used to spec girder strength, fastener type, etc. I suspect that most bridges don't involve custom-making the metal alloys specifically for that bridge, or nonstandard concrete mixes.

      With software, for many fields it just isn't standardized. I suspect that there are many more original problems being solved in software than in bridge building.

      Add to that the fact that there really isn't any professional responsibility attached to software designers. (I won't dignify them with the term "engineers".) If a bridge fails, the engineer who signed off on it gets in a lot of trouble.

    13. Re:Software Projects vs. Traditional Projects by iamhigh · · Score: 1

      Oh, so you have to be registered huh? Well according to the always-correct wikipedia, engineering is "the discipline, art and profession of acquiring and applying technical, scientific and mathematical knowledge to design and implement materials, structures, machines, devices, systems, and processes that safely realize a desired objective or inventions."

      If you take requirements from users, manager and process owners, create a system that satifies the requirements and produces the desired output, then you are an Engineer. Not you, you're an idiot (and all the other... but I'm a real engineer!), but the plural form of you.

      --
      No comprende? Let me type that a little slower for you...
    14. Re:Software Projects vs. Traditional Projects by FishWithAHammer · · Score: 1

      This is exactly why I don't call myself a software engineer, nor would I.

      --
      "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
    15. Re:Software Projects vs. Traditional Projects by Splab · · Score: 2, Interesting

      And just to add to my own post (give us a friggin edit slashdot!), EU is currently working on adding the same form of guarantee for software that hardware manufacturers has to supply, this means, any bug found within 6 months of purchase has to be fixed within a reasonable time (rule of thumb, 4 weeks), if not the customer has option of full refund.

      This will probably mean:
      1. Software is going to be a heck of a lot simpler, most stuff I've worked on where things didn't go according to plan is the scope of the project.
      2. We are going to see a lot of specialized shops out there, when you build a building you will usually have a contractor with a lot of sub contractors for doing the actual construction - the same will hold for software.

      I think this is a very good thing, this will require software to adhere to a common API (for the specific type of work you are doing), just like any other handyman work.

      Now some specialists out there are going to claim BS, but think about it, construction was a maze until people settled on some key standards, the same will happen in our line of work, we are currently seeing the end of the wild west for computers.

    16. Re:Software Projects vs. Traditional Projects by Anonymous Coward · · Score: 0

      Took the 6 month course eh ?

    17. Re:Software Projects vs. Traditional Projects by mikael_j · · Score: 1

      Except there are plenty of software projects where the original project is a huge mess due to poor planning, impossible deadlines and all the regular management issues that it ends up taking less time rebuilding the whole thing than it would to "just fix the bug and recompile", I've been involved in a couple of them myself.

      What's disturbing is how a lot of people in management don't seem to realise what a waste of money this is, if the developers say it's gonna take three months to build it's probably not a good idea to say "ok, you've got two months" and then when the developers say "this new version will take at least two months" you probably shouldn't tell them they've got one month...

      /Mikael

      --
      Greylisting is to SMTP as NAT is to IPv4
    18. Re:Software Projects vs. Traditional Projects by slodan · · Score: 1

      In many ways, software engineering (as opposed to programming) is just leaving its infancy. I think we'll see the industry evolve to become more similar to other engineering disciplines within a decade or two. We have only recently gained the level of differentiation and specialization that other engineers have had for years.

      I also think that the constant comparisons between software engineering and civil engineering (the "bridge" analogy) are misleading. Plenty of other engineering projects fail in other disciplines, and they do it as silently as software projects. I don't have any comparison data on failure rates, but I suspect that the rates are more closely related to project size than to engineering discipline.

    19. Re:Software Projects vs. Traditional Projects by davek · · Score: 1

      All bridges are essentially "open source". Plenty of bridges have failed, but the failures are right out there in the open, ready to be studied by anyone who wants to build another bridge.

      I'm afraid I can't understand your analogy. Perhaps if it were in terms of a car design failure...

      --
      6th Street Radio @ddombrowsky
    20. Re:Software Projects vs. Traditional Projects by MightyYar · · Score: 1

      I'm afraid I can't understand your analogy. Perhaps if it were in terms of a car design failure...

      There's a good one, but that would lead to a discussion of presidential politics :)

      --
      W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
    21. Re:Software Projects vs. Traditional Projects by radtea · · Score: 1

      I was discussing with a friend how software projects are probably the most difficult to run and predict, especially with very large projects. He disagreed and said that all large projects are difficult...

      Actually, all large projects are equally easy with regard to prediction. A larger project is even more amenable to a statistical estimation approach, because the workforce and circumstances are averaged over the larger size, creating a more homogeneous, stable mass.

      For any organization that has built more than one of something, you have lots of hard data from previous schedules and estimates to base your new schedules and estimates on, if your project managers are even minimally competent. After all, it isn't exactly rocket science to keep a table of numbers ("how long we expected the project to take" and "how long it actually took.") This also requires adequate requirements documents, and that's a more difficult problem, but it's hardly surprising that "projects teams that don't know what they're building have a hard time estimating how long it will take to build it."

      The first project an organization undertakes is a bit trickier, but again, even a modestly competent project manager will track schedule progress against real time, and after about three weeks will have a correction factor to the original schedule that will bring things pretty close to reality. This should be done anyway, on all projects, of course, because circumstances do vary from project to project, but on subsequent projects the correction factor should be closer to unity than not.

      The thing that makes project scheduling and estimation "hard" is that most project managers are either incompetent, or so beaten up the first they tell the suits the truth that they spend the rest of their days lying to avoid further abuse. I've known people in both categories, and the first group are the ones who crow most loudly that project estimation is hard because it is so far beyond their modest competencies. The second group will pull it out as a backup excuse when things go badly wrong next time, and because suits are idiots they are willing to believe it, thus perpetuating the cycle whereby everyone gets off the hook for failing to do an incredibly simple job: keeping a table of numbers, and applying a simple numerical multiplier to their schedule after the first three weeks.

      Someone below quoted Tolstoy about all unhappy families being unhappy in their own way. This is funny, but it's false in the case of project management. There are very few ways projects go bad, and one of the the most common is an excessive focus on the particularities, rather than a global view that sees the individual circumstances as a valid statistical ensemble that can be averaged over meaningfully.

      There is nothing particularly difficult, intellectually, about project estimation. Virtually all the difficulty comes in the politics of the organization, and a deep grounding in solid empirical estimation practises will help you navigate those waters. McConnell's Rapid Development has some nice starter material on estimation that is well worth having a look at.

      --
      Blasphemy is a human right. Blasphemophobia kills.
    22. Re:Software Projects vs. Traditional Projects by getNewNickName · · Score: 2, Interesting

      Software projects fail more easily than their physical counterparts due to the brittleness of software programs. It is unlikely a bridge falls apart if it's missing a single screw, but for software a single line of bad code could cause the application to crash. Currently software has a very small tolerance for errors, which makes it very difficult to successfully complete large projects.

    23. Re:Software Projects vs. Traditional Projects by idontgno · · Score: 1

      All the detail is just detail, the end requirement is invariable.

      While the functional requirements for bridges tend to be invariant, the "ility" requirements often go wrong. And those performance requirements are the places where software projects often go wrong, too.

      --
      Welcome to the Panopticon. Used to be a prison, now it's your home.
    24. Re:Software Projects vs. Traditional Projects by DragonWriter · · Score: 1

      That's obviously true, but how many bridges never get finished compared to the number of software projects that never get finished?

      You tend to have to make an expensive investment in resources (securing real estate, preparing the site, etc.) to even begin building a bridge, which is less true of software projects, therefore a bridge project that gets cancelled between when the project starts and when it is complete is a lot more likely to be cancelled before any construction is done than a software project that is cancelled is likely to be cancelled before any programming is done. So IT projects are more likely to be visibly abandoned after "construction" has begun than bridges, because there tend to be less front-loaded costs in IT.

    25. Re:Software Projects vs. Traditional Projects by dave562 · · Score: 1

      Not only should not short change the developers, you should probably give them even more time. If they say they need four months, give them six. That leaves some leeway for the often frequent delays that most rookie project managers and developers fail to account for. If you come in ahead of schedule then you look good. When I was a consultant, we would always overbid our hours. Given the choice between coming in under budget, or having to go to the client with delays and ask for more money, the choice was obvious. It's a difficult strategy to use when starting out and you're hungry for work. But once you have a few successful jobs under your belt, the word of mouth buzz is good. You become, "The guy who did it in 25% less time than he said it would take."

    26. Re:Software Projects vs. Traditional Projects by Nursie · · Score: 1

      ""Software Engineers" are one of the few types of engineers that are not liable for the failure of the systems they create."

      Annnnnd... FAIL.

      You think electronic engineers are personally liable for incorrect or buggy circuit design?

      You think companies that sell software under contract are *not* liable when it doesn't perform?

      What a load of shit.

    27. Re:Software Projects vs. Traditional Projects by Rastl · · Score: 3, Insightful

      People are taken out of the equation when it comes to bridges. You don't have to teach people how to use *your* bridge since the use of a bridge is the same regardless of which bridge they use.

      People are the main reason why I see projects fail. Incomplete/incorrect requirements, artificial deadlines, glory seekers, scope creep, poor training, process change, resistance to process change, etc. These are all variables that don't have to be considered when building a physical structure.

      And unfortunately they're also variables that aren't given enough consideration in the project from start to finish.

      I'm currently waiting for my company to replace the system at the heart of our IT support functions. The one we've built around our business processes for the last 9 years. The one they honestly believe can be replaced by a Big System in about 2 months. And they wonder why I drink.

      The really sad thing is that the system they're dead set on replacing isn't broken, is still in active use out in the wild, is off the books, and has no real reason for being replaced except for a manager who wants to put his name on the replacement project and his manager who is convinced that since the system isn't one of The Big Three we shouldn't be using it any more.

    28. Re:Software Projects vs. Traditional Projects by Nursie · · Score: 1

      "Software Engineers" are one of the few types of engineers that are not liable for the failure of the systems they create."

      How so? How are they liable?

      Not every engineering projecgt outside of software involves protecting people's lives. Not evey software engineering project does not.

      Seriously, you think the engineer (and yes he's an engineer) that designed a lightswitch that fails after a few uses is *personally* liable for replacing them?

      And you think the company that sells network management software to the US government is not liable to be sued if it doesn't perform to contract?

      So screw you all, I'm a Software Engineer. And a filthy hacker. Depending on what's appropriate at the time.

    29. Re:Software Projects vs. Traditional Projects by dgreenbean · · Score: 1

      The difference between a "Programmer" and a "Software Engineer" is analogous to that between a "Mathematician" and an "Accountant." The former uses a creative process that cannot be broken into discrete parts. The entire process is design. The latter merely manipulates the work of the former in a formal, discrete process toward an end goal. This is not a value judgement on either; it is merely a definition. The problem is that, in business, there is either a lack of understanding or of acceptance of this definition. The roles then get blurred. People more inclined to the creative side are stifled with detail, while those with great attention to the details are thrown into design. Other terms can also confuse the issue: "Architect," "Developer," "Analyst," etc. all have implications that are often not natural to the industry. Next comes the systems/software divide. It seems that when people are promoted in the corporate world, their focus tends to shift from software to systems. This nearly guarantees that "Programmers" will turn into "Software Engineers," and often "System Administrators," as that is where the promotions are (note that most middle management essentially performs the role of a "System Administrator"). Unfortunately, this makes for a bad programming environment. The hybrid model that "Programmers" and "Software Engineers" are forced to live in creates this hybrid culture of creatively designing a system that takes on a new life during implementation, finally culminating in failure. Agile project models are better, but this still does not address the issue that creativity cannot be time- or resource-constrained. Management hates this because that is exactly what they are supposed to figure out how to resolve. I certainly don't have the answer, but I can at least recognize the problem for what it is. Until we change the industry to support separate "Programming" and "Software Engineering" positions, projects will continue to fail tremendously.

    30. Re:Software Projects vs. Traditional Projects by onkelonkel · · Score: 1

      Are you liable for the bugs in your system? By liable, I mean if it kills someone are you legally responsible? If it breaks at the wrong time or produces an incorrect result will you have to pay for the financial losses incurred by your users? These things are also included when you call yourself an engineer.

      --
      None of them can see the clouds; The polished wings don't care.
    31. Re:Software Projects vs. Traditional Projects by guruevi · · Score: 1

      There are plenty of projects out there that get killed everyday. Even bridge projects get killed everyday. It's just that you don't notice because it hasn't gone to the compile stage (the building of the bridge) - most bridges get stuck in the political, feasibleness or 'is this really necessary' stage. By then a bridge building project has already consumed thousands if not millions in contractors, engineers, lobbyists and hookers and then in the backlash vendors will sue because somebody already promised they would buy stuff or have stuff made for the bridge but then they cancelled the project.

      Sometimes bridges get 'compiled' or built while having a PHB (*ahem*Palin*ahem*Ted Stevens*ahem*) in charge and that's when you'll notice (the famous bridges to nowhere or unnecessary duplicate bridges) - see also: http://en.wikipedia.org/wiki/Gravina_Island_Bridge and http://en.wikipedia.org/wiki/Bridge_to_Nowhere

      It's tax payers money, it's just a line item on the state or federal budget and compared to other items on the list (defense costs, political advertisements and toilet bowls) it's really nothing to mention.

      --
      Custom electronics and digital signage for your business: www.evcircuits.com
    32. Re:Software Projects vs. Traditional Projects by religious+freak · · Score: 1

      I agree. I don't think engineer should be the vaunted title - scientist should be.

      * A scientist has likely has a PhD and does original research.
      * Being an engineer requires a good, working knowledge for whatever you're doing, and a four year degree doesn't hurt.
      * A technician is someone who can look at a documented problem and implement a documented solution (and probably took that 6 month course)

      I'm better than a tech, but not as good as a scientist, so odds are, I'm an engineer. At least, that's the way I see it.

      --
      If you can read this... 01110101 01110010 00100000 01100001 00100000 01100111 01100101 01100101 01101011
    33. Re:Software Projects vs. Traditional Projects by dougisfunny · · Score: 1

      I wonder if they'll do the same thing for laws. If its bad, it has to be fixed or repealed.

      As for what it would mean, I doubt you'll see simple software, or subcontracting.

      But you will likely see larger legal departments, they have to account for things.

      Huge EULAs that state the software is guaranteed if you click X, Y, Z, in that order any other use is not permitted and may cause damage. Similar to the safety signs on curling irons "For External Use Only" which don't make it any safer.

      --
      This is not the funny you're looking for.
    34. Re:Software Projects vs. Traditional Projects by fuzzyfuzzyfungus · · Score: 3, Insightful

      Probably a pretty good way for big vendors to squelch small and/or FOSS competitors. I'd be very nervous about the possibility that this mandate will end up requiring very little actual quality, documented and legally vetted in incredible breadth and depth, which would perfectly serve the interests of incumbents...

    35. Re:Software Projects vs. Traditional Projects by dougisfunny · · Score: 1

      Microsoft Windows 8
      EULA:
      Not for use as a personal flotation device.
      Do not ingest.
      Do not use.

      --
      This is not the funny you're looking for.
    36. Re:Software Projects vs. Traditional Projects by Anonymous Coward · · Score: 0

      Even the ones in management?

    37. Re:Software Projects vs. Traditional Projects by Anonymous Coward · · Score: 0

      Why do we always compare building/implementing software to building bridges and cars? Why not compare building/implementing software to starting and running a restaurant?

    38. Re:Software Projects vs. Traditional Projects by Anonymous Coward · · Score: 0

      Lately, I've begun to feel that a lot of the reason for project failure is the "All You Have To Do Is.." effect.

      Users get a wild idea, someone shows them some artwork, they say "It's simple! All You have to do is...".

      Unfortunately, the developers get the specs, look at it, forget how much time and effort gets wasted on obscure diversions because while the hard parts of the project often end up being simpler than imagined, some of the "simple" parts of the project turn out to be much harder than imagined. And because even before we were constantly being threatened with replacement by cheap offshore labor, few of us had the nerve to stand up and say "No, it's actually probably going to take three times that long".

      Plus, of course, there's the classic ailments like Second System Effect, Feature Creep, etc.

      Computers are stupid. They don't understand "All You Have To Do". In fact, that's one of the first lessons in programming is that a computer has to be told in excruciating detail exactly what to to.

      A recent complication has been the extensive employment of developers who were raised in cultures where the good worker has traditionally been expected to be little more than a computer him/herself. Thus, the design team has to "program" the programmers so that they can provide those Great Big Savings by programming more cheaply than Western programmers, who require relatively little programming.

      Of course, the final insult is that computers have lost their reputation for precision and reliability, because the customers frankly don't care that much about quality, as long as the work gets done fast and cheap. So even if the project doesn't fail outright, it's often pretty worthless.

    39. Re:Software Projects vs. Traditional Projects by plopez · · Score: 1

      do you carry Oand E insurance? No? Then you're not an engineer.

      --
      putting the 'B' in LGBTQ+
    40. Re:Software Projects vs. Traditional Projects by Mr+Z · · Score: 1

      Speaking of bridges going badly, the Michigan Department of Transportation issued a great report about the Zilwaukee Bridge. (Site isn't M-DOT, but the it reproduces their report.) It had all sorts of problems during its storied construction, but it eventually was completed and stands tall and strong today. The report's conclusion summarizes:

      Completion of the new high level bridge at Zilwaukee will bring to a conclusion some 20 years of planning, designing and construction of one of the biggest and most complex projects ever undertaken by MDOT. It represents a significant engineering accomplishment.

      The project has encountered problems, some of them serious and most of them related to the 1982 accident. There have been no serious injuries and no lives lost, however, and the project, including the knowledge gained from the repair process, has provided much engineering experience of value to the entire highways industry.

      The bridge, when completed, will be safe, durable and efficient, ready to serve the motoring public for many years to come. It will replace an obsolete, inadequate drawbridge that has caused numerous accidents and endless traffic delays over the years. And it will easily accommodate the more than 31,000 vehicles that travel along that section of I-75 freeway every day.

      One of the other big differences between bridge building and software construction is that the scope of the bridge's purpose is well defined: I want to get cars from point A to point B over some obstruction. The unknowns are generally confined to how that end is achieved, rather than the actual end that's being worked for. The Zilwaukee Bridge had well defined success criteria that were in place from the get-go.

      When developing a new software project (as I'm doing right now at work), I find that if I ask N people what the exact requirements are, I get N+1 descriptions. In the end, I'm left to find the overlap and do my best to fill the fringes. It's hard to measure success when different stakeholders have different goals in mind, and agreements on said goals are often superficial.

      You won't see that on a bridge. "It's supposed to be eight lanes!" "Well, it's seven traffic lanes plus a really broad shoulder. That's a total of eight lanes wide, after all." "That's not what I wanted. Make it wider!"

    41. Re:Software Projects vs. Traditional Projects by genner · · Score: 1

      I'm afraid I can't understand your analogy. Perhaps if it were in terms of a car design failure...

      There's a good one, but that would lead to a discussion of presidential politics :)

      Change! Hope!

    42. Re:Software Projects vs. Traditional Projects by religious+freak · · Score: 1

      Uh, that called E&O (Errors and Omissions) around these parts. And I do have that, though it has nothing to do with my software activities.

      And you're not the boss of me. I'm an engineer - if you prefer to call yourself something else, good for you.

      --
      If you can read this... 01110101 01110010 00100000 01100001 00100000 01100111 01100101 01100101 01101011
    43. Re:Software Projects vs. Traditional Projects by Swampash · · Score: 1

      Bridges are designed by engineers. Software is designed by people who CALL themselves engineers. There's a big difference.

    44. Re:Software Projects vs. Traditional Projects by crispytwo · · Score: 1

      Custom software is extremely hard to predict and way more difficult than most bridges.

      The most obvious problem with software is that no-one knows what it should do when you start. A bridge, on the other hand, you know that it connects one side with another side and it carries stuff across. Hell, a rope can do that! Now make it bigger!

      With software, it is a mess of user interactions with imagined unknown outcomes. Words like "maybe" and "probably" are used all the time with the major functionality. Never mind the end user is either technical or non-technical, which encompasses human psychology as much as logical inconsistencies. Even when you get something nailed down, we all know that is fleeting and next week, that's not what we meant anyway.

      Software is a moving target of unknown proportions. When you have a final product that works, ten people will have ten different descriptions of what it is. Three of them will break it in ways it wasn't intended to be used. Two of them will not be able to make it work. One will be so enamoured that changing it will be considered a sin.

      Software is an artistic expression and nothing less. Large projects are truly a group expression, which is pretty cool when you think about it.

      I believe large projects fail, not because they are big, but because either the vision is not focussed enough early, or the vision is too rigid.

    45. Re:Software Projects vs. Traditional Projects by kmoser · · Score: 1

      The laws of physics and materials' physical properties haven't changed much since we started building bridges a couple thousand years ago, but the stability of computer systems is constantly in flux. What performs flawlessly now might crash and burn with the flip of an errant bit; usually not so much for a bridge.

    46. Re:Software Projects vs. Traditional Projects by Hognoxious · · Score: 1

      We've been building bridges for thousands of years. We've been building software for a few decades.

      Nobody thinks you can turn a bridge into a hospital by moving a few spars. But changing a stock control program to do invoicing needs "just a bit of typing".

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    47. Re:Software Projects vs. Traditional Projects by Splab · · Score: 1

      I'm not sure about the entire EU, but EULA's won't cut it in Denmark, a contract requires both sides to be negotiating and there are quite a lot of rights you can't sign over.

    48. Re:Software Projects vs. Traditional Projects by Hognoxious · · Score: 1

      Software is designed by people who CALL themselves engineers.

      That's good software. Some of the software I've seen shows no evidence of being designed at all.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    49. Re:Software Projects vs. Traditional Projects by mrosgood · · Score: 1

      A/E/C (architecture, engineering, construction) is nothing like software development.

      Software is far more complex than construction. Complex, as in information content, as in how many decisions must be made. Bridges are described with a few 100 construction drawings and some supporting text.

      Construction is a far more constrained problem space, compared to software. Physics (engineering), construction materials, site location, application, and building codes pretty much predetermine what any given bridge is going to look like. A civil engineer spends most of their time "finding" the bridge design that satisfies all the constraints (a search problem). They get all excited over green field projects, because there's more room to play (e.g. highways rebuilt after St Helens blew up).

      Construction design has regular checkpoints (e.g. 30, 60, 90, 100% submittals) for full client review. Iterative development in software is the exception, not the rule. When things get tough, it always degenerates into the waterfall "model".

      The points previously made about transparency (open source) and quality of requirements also apply.

    50. Re:Software Projects vs. Traditional Projects by dublindan · · Score: 1

      If I could, I'd vote you up. People have this illusion that software is unique or different. Bullshit. Software is buggy because its become accepted. Once bad quality is something that people will not to tolerate, it will get better. I agree completely with your post and have thought this for quite a while now. Congrats for a good post!

    51. Re:Software Projects vs. Traditional Projects by dublindan · · Score: 1

      Do'h.. replied to the wrong post. Oh well, figure it out for yourself. I don't care enough.

    52. Re:Software Projects vs. Traditional Projects by dublindan · · Score: 1

      I disagree. Software is NOT different or unique. It is, however, cheaper to work on and fail at a software project than a bridge construction project. The barrier to entry is lower, so more people get a chance to try (and fail).

    53. Re:Software Projects vs. Traditional Projects by nitro-57 · · Score: 1

      It seems that projects such as bridges and tunnels have an expectation of completion no matter the cost. Once the project is started it must be finished. Take for example the "Big Dig" in Boston, original estimate 2.2 Billion USD, Current expenditures 14.6 Billion USD. (and still under litigation for poor construction practices and death ) Most any software project that late and that over budget would have long since been shelved. In keeping with the original books references here is the Wiki link http://en.wikipedia.org/wiki/Big_Dig

    54. Re:Software Projects vs. Traditional Projects by characterZer0 · · Score: 1
      --
      Go green: turn off your refrigerator.
    55. Re:Software Projects vs. Traditional Projects by Anonymous Coward · · Score: 0

      I'm not sure about the entire EU, but EULA's won't cut it in Denmark, a contract requires both sides to be negotiating and there are quite a lot of rights you can't sign over.

      It's the same in the US. EULA have never been considered contracts. It's just a myth you hear about on Slashdot. Enforceability of the terms is a complex legal issue, but that doesn't make it a contract.

    56. Re:Software Projects vs. Traditional Projects by NateTech · · Score: 1

      No one is "happy" about it. They just have no other option.

      --
      +++OK ATH
    57. Re:Software Projects vs. Traditional Projects by NateTech · · Score: 1

      In Civil Engineering, a lead Engineer SIGNS the blueprints that are checked by third parties. If they screw up, their REPUTATION is on the line. There is NO equivalent in so-called software "engineering".

      --
      +++OK ATH
    58. Re:Software Projects vs. Traditional Projects by NateTech · · Score: 1

      Yes, there are documented cases of Electrical Engineers and ESPECIALLY Civil Engineers who have been named in Manslaughter lawsuits when their "products" failed. Many "lead" Engineers in both roles have to carry personal liability insurance policies, just like Doctors. Maybe not the rank-and-file, but in Civil Engineering, for certain... the Engineer in Charge signs the blueprints and they're sent to third-parties for external review before a BUILDING PERMIT is issued. I foresee this happening first in software "engineering" in the banking industry...

      --
      +++OK ATH
    59. Re:Software Projects vs. Traditional Projects by NateTech · · Score: 1

      Horse-shit. "Brittle" software is badly designed and written. There ARE systems that aren't brittle out there. Building Avionics software, for example, also has very small tolerance for error, but the vast majority of aircraft fly just fine using that software. It's all about time, effort, money, and professionalism.

      --
      +++OK ATH
    60. Re:Software Projects vs. Traditional Projects by plopez · · Score: 1

      But not a software engineer. Which was my point. There is no such thing. Engineers need O & E, E & O or whatever (it amounts to malpractice insurance) because they are liable for what they do. Programmers are at best working a highly skilled trade or a business profession such as business process and development consulting.

      The only IT people I have heard of being successfully being sued are DBAs.

      --
      putting the 'B' in LGBTQ+
    61. Re:Software Projects vs. Traditional Projects by Anonymous Coward · · Score: 0

      I'd say that the reason for the difference is that the IT industry is more ideology-laden than the construction business. Many nerds have a near religious belief in technology's ability to "fix things".

  5. Didn't need a book to know this by Em+Emalb · · Score: 4, Informative

    Not trying to be a jerk (hah, stupid buttface!) but the reason most new "systems" fail is for one of 4 reasons:

    1) the decision maker(s) not understanding the actual requirements thereby causing a situation where they end up with a system that doesn't fit their needs

    2) the third party or in-house developers not understanding the actual requirements thereby causing a situation where the system they've created either doesn't work or doesn't work as it should

    3) the new system is too complicated/buggy/worthless and the end users of the system refuse to use it and/or complain constantly (I HATE CHANGE!)

    4) all of the above.

    There are more, but those are the big 3.

    --
    Sent from your iPad.
    1. Re:Didn't need a book to know this by MightyMartian · · Score: 4, Insightful

      I've had two projects fail ignominiously. One was my fault for not getting much more concrete requirements, and getting caught up in the "oh, and can you add this to it too?" The second was because I was basically lied to by a supplier who claimed their own product could do what it ultimately could not, and since it was a core feature of the system we were putting in place, the whole thing died, but not before consuming heap loads of money.

      I learned a few things. The first is to get exact specifications. Let there be no wiggle room, no "well I thought it would do that" crapola. Extras can be added on once the core system is demonstrated to work, not before. Have a design philosophy and stick to it. As to lying suppliers, well, it's a lot easier to assess these things nowadays than when the one project failed in the mid-1990s. Still, I always keep in the back of mind "if software/library/whatever doesn't work, is there something that can".

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    2. Re:Didn't need a book to know this by Coz · · Score: 1

      YOU may not need a book to know this. but there are intelligent-in-their-area bean-counters who get sold on these things at major companies every year. THEY need this book, and as responsible techies, it's our job to make sure they have it. Remember, if it's in a book, it's not just OUR opinion - it's Official :)

      --
      I love vegetarians - some of my favorite foods are vegetarians.
    3. Re:Didn't need a book to know this by dave562 · · Score: 4, Insightful
      As to lying suppliers, well, it's a lot easier to assess these things nowadays than when the one project failed in the mid-1990s.

      What is different now from the 1990s? I've been involved with one software project that failed because the vendor promised functionality that they couldn't deliver. The client spent a significant amount of money on the project. Once it came out that the software couldn't do what the vendor promised it could do, the client sued the vendor and recouped all of their money plus legal fees. The client was able to sue because the vendor put it in writing.

      Getting things in writing from the vendor is of paramount importance. Doing a needs analysis with the client before shopping around for software vendors is key. With a needs analysis in hand, you can present that to the vendors and ask them point blank whether or not their software fits the needs. If they say it does, make them sign a contract to back up their claims. Then they either deliver what they promised or they get sued.

    4. Re:Didn't need a book to know this by Yetihehe · · Score: 1

      2.1) Bad communication of requirements with third party coders. Happening right now with one project I'm working on ( aka "Why didn't you implement X? It's logical that it must be that way!" )

      --
      Extreme Programming - Redundant Array of Inexpensive Developers
    5. Re:Didn't need a book to know this by Purpendicular · · Score: 1

      Unfortunately, there are no "exact specifications" in the real world. As the reviewer, I thoroughly recommend reading Weinberg (Quality Software Management), but also Tom Gilb, "Principles...". Funnily enough, Craig Larman points out that the guy accused of inventing the Waterfall model did no such thing. According to his son, he has been misquoted for 30+ years.

    6. Re:Didn't need a book to know this by lazyforker · · Score: 2, Funny

      When I read your post I was reminded of this old old old picture. http://www.cubiccompass.com/blogs/main/content/binary/TireSwingCartoon.png I first saw it on paper so I had to Google around for an example.

    7. Re:Didn't need a book to know this by rgviza · · Score: 4, Interesting

      > I learned a few things. The first is to get exact specifications. Let there be no wiggle room, no "well I thought it would do that" crapola.

      This is not realistic. You _can't_ get the requirements right up front because the users don't even know what they want until they have a system that doesn't have it. They think they told you what they want, but they didn't because they don't know themselves. A more realistic approach is to get the best requirements you can, and build enough time into the project to handle 1.5-2 years worth of scope creep because that's what's going to happen with any huge system.

      If you try to hardline your users by forcing them into a corner with rigid up front requirements that they cannot possibly help you formulate, they'll simply go outside the company and work with someone who knows how to run a project better and you'll get laid off. (refer to Linus Torvald's rant about specs to see why specs and requirements done this way are useless, except as a starting point)

      If you are prepared for scope creep, and frame the first release as an alpha, you will succeed. I've been doing this for 20 years and I've seen the approach you are talking about fail over and over even with PM's that have 30 years experience. They knew better but corporate policy forced them to operate this way. Inevitably the requirements were hopelessly incomplete and the users were pissed off when they had to sign off the project as complete because of what they agreed to, and in the end, the product did not meet their needs. The whole idea is to give the users the product they need. So even if you succeed in beating them on paper, and they are forced to sign off complete, you've failed.

      Know what happens when you do this to your users? They hire contractors, who will be more flexible and give them what they want, and fire you. You are better off with a "Look this is a big system and it's going to take a while to get it right. Lets figure out what you think you need now, we'll build it, and use that as a starting point to flesh out your system."

      XP for the win for corporate development, Waterfall = FAIL. Waterfall can only succeed if you are a software company building a boxed static product produced by someone that knows what they want.

      At the end of the day a large corporate software project will take 10x longer than you think it will. I've never seen one that didn't. I've seen plenty that failed. Plan accordingly.

      -Viz

      --
      Don't kid yourself. It's the size of the regexp AND how you use it that counts.
    8. Re:Didn't need a book to know this by Anonymous Coward · · Score: 2, Insightful

      I think you need to take it one step up the abstraction chain. First, find out what the goals of the users are: what real-world problem are they trying to solve? Forget traditional "requirements" and such, which just leads to discussion about the "system" in the minds of the user and the "system" in the minds of IT. Which, by the way, are greatly different. Once you first figure out what they are trying to accomplish well above requirements, only THEN can you start to figure out the requirements to meet their goals.

      The major problem is that everyone in IT projects forget to first figure out the users' goals, but rather go straight to requirements. Requirements depend on goals.

    9. Re:Didn't need a book to know this by michael_cain · · Score: 1
      I learned a few things. The first is to get exact specifications.
      ==========
      This is not realistic. You _can't_ get the requirements right up front because the users don't even know what they want until they have a system that doesn't have it. They think they told you what they want, but they didn't because they don't know themselves.

      I have to agree with the parent. I've had an opportunity to watch the post-mortems on several large, failed software procurements by my state's government. My opinion is that the fundamental reason all of them failed was inadequate (sometimes grossly so) specification. I also agree with you, that the customer generally can't (or won't) do it. I believe the way I put it to one director was "If you can't specify the interfaces, the protocols, and a reasonably complete conceptual model of the data, you're paying $78 million for the vendor to guess." Given the price tags on large state software systems these days, government is going to have to figure out how to avoid buying $78 million prototypes that aren't going to be even close to right.

    10. Re:Didn't need a book to know this by Bacon+Bits · · Score: 1

      I think the problem there comes in that a huge proportion of corporate software is contracted. Your method, which I agree is the proper way to build a successful system, simply doesn't work when the programmers are required by a quote-to-order system to do as little work as possible and may be paid by the hour for labor, and managers are required to keep costs as low as possible.

      Yes, this means software contracting generally designs your system for failure. You absolutely must have in-house capabilities for systems analysis and project management.

      This, I'm sure you're aware, is why the cost of Windows just doesn't matter to business. Compared to the costs of everything else, the cost of the OS -- heck the cost of the OS and the cost of the hardware -- is a drop in the ocean.

      --
      The road to tyranny has always been paved with claims of necessity.
    11. Re:Didn't need a book to know this by Anonymous Coward · · Score: 0

      5) The problem cannot be solved with software despite the salesman, executive (or frequently politician) proposing the project claiming it will be.

    12. Re:Didn't need a book to know this by 3ryon · · Score: 1

      I know that this thread is too old for anyone but the author of the parent to read my comment....so this is for you. Having just come off a 2 year project I can say that your comments are the most insightful that I've read in years. Technically the project is only 85% done, but the PM has closed the project so that the deadline is met...all the remaining work is 'phase two'. Of the classic project triangle (Cost, Time, Quality) everything was deemed flexible except Time and Cost.

      In defense of our BAs they did a pretty good job asking the users what exactly they would like the soltuion to do. The problem is that the answer the users gave was something like, "I'd like unicorns to dance around my office and sing Ode to Joy. Oh, and if they could fart rainbows that'd be fabulous!"

      -Your friendly systems architect

    13. Re:Didn't need a book to know this by johannesg · · Score: 2, Insightful

      You make a good point, but it is totally unrealistic. Let me demonstrate where it will fail:

      A more realistic approach is to get the best requirements you can, and build enough time into the project to handle 1.5-2 years worth of scope creep because that's what's going to happen with any huge system.

      If you overbid by 1.5-2 years, you are sure to be outbid by a competitor who will stick to the "rigid requirements" method. So you will never receive a contract in the first place.

      If you try to hardline your users by forcing them into a corner with rigid up front requirements that they cannot possibly help you formulate, they'll simply go outside the company and work with someone who knows how to run a project better and you'll get laid off.

      Yes, but if you let the schedule slip those very same users will suddenly remember that you have a contract and force you into a corner with rigid contract stipulations about deadlines. If you want to avoid that, you'd better act first.

      Don't forget, "the users" is not a single homogenous group, they are a collection of individuals, each with their own ideas and agenda, about half of which will hate your guts on principle (you mess with their computer, their routine, and their certainty about the future for no good reason they can think of). If you listen to them, they will tug you into a hundred different directions, roughly half of which are on the wrong side of a tall cliff.

      I've been doing this for 20 years and I've seen the approach you are talking about fail over and over even with PM's that have 30 years experience. They knew better but corporate policy forced them to operate this way.

      They just know that rigid requirements don't work. But do they have an actual alternative? You've apparently chosen to work on failing projects for the last 20 years, that tells me something about how difficult it is to find a project that's managed differently.

      Inevitably the requirements were hopelessly incomplete and the users were pissed off when they had to sign off the project as complete because of what they agreed to, and in the end, the product did not meet their needs. The whole idea is to give the users the product they need. So even if you succeed in beating them on paper, and they are forced to sign off complete, you've failed.

      Actually, the whole idea is to make money building something to specification. That is (apparently) what you were hired to do. If you don't like it, set up your own company, make your own rules, and fail to get _any_ customers because you are consequently overbidding and customers cannot tell the difference between you and the huge number of penny-pinching nitwits that define the rest of the industry.

      Know what happens when you do this to your users? They hire contractors, who will be more flexible and give them what they want, and fire you.

      Contractors will either work on a fixed budget, in which case they will either demand fixed requirements or stop working once the budget has run out, or they will work on time and materials basis, in which case they will be happy sitting on your premises and drinking coffee (and the occasional bit of programming) until the sun goes out.

      You are better off with a "Look this is a big system and it's going to take a while to get it right. Lets figure out what you think you need now, we'll build it, and use that as a starting point to flesh out your system."

      And you really claim to have 20 years of experience? First of all, a lowly peon will never get to sit down with the people who make the decisions and have this sort of talk with them. If you somehow managed to do it anyway, they will smile and say that they cannot budget for an open-ended development project (which is what you are proposing), so they are just going to go with a fixed set of requirements and the associated f

    14. Re:Didn't need a book to know this by Anonymous Coward · · Score: 0

      XP promotes zero documentation, so only you the developers know about the requirements. What happen if the vendor aren't happy with your performance and decide to go with another supplier in the second iteration? The company only have code and unvalidated stories to work on. The whole busieness and domain context has to start from scratch. XP is great for the vendor to locking the client.
      I like to choose somewhere between the classical Waterfall and the fanatical XP. Spiral development works best.

    15. Re:Didn't need a book to know this by rdebath · · Score: 1

      Your "BAs" asked the wrong question, it should have been "What do you need the solution to do". Nobody needs unicorn farts.

      You then lock down that fixed specification for the fixed price.

      When the specification changes so does the price.

      Or you can work time & materials, but that needs trust.

    16. Re:Didn't need a book to know this by Matje · · Score: 1

      So what you're saying is that developers should become better at:

      - eliciting requirements
      - designing simple, usable software

      The prevailing mood on /. seems to be that users should become better at expressing their requirements. I find that baffling; it's like walking into a restaurant and having the chef come up to you to ask how many teaspoons of cumin should go into your dish. User's don't have requirements - the whole concept was made up by developers in response to complaints that they were developing sh*t software. The focus on requirements is a symptom, not a cure. Instead we should focus on empathizing with users: what is it they are trying to achieve and in what context are those goals embedded?

      [blatant self-promotion] my company actually works that way, with considerable success (measured by happy clients)[/]

    17. Re:Didn't need a book to know this by Hognoxious · · Score: 1

      What is different now from the 1990s?

      GP's got ten years more experience?

      Also, if you consider the early 90s, intarwebs.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    18. Re:Didn't need a book to know this by Hognoxious · · Score: 2, Insightful

      Unfortunately end users do not know the difference between needs, wants, and wishes. And when they go crying "it doesn't work!" and disturb the IT director's afternoon nap he doesn't care; you're mean and horrid and not customer focussed.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    19. Re:Didn't need a book to know this by nitro-57 · · Score: 1

      This was part of the requirement creep. Maybe they needed the rainbows and thought that Unicorn farts were the best source. (Unicorns are known to fart rainbows, I know because I saw it on a T-shirt) http://www.threadless.com/submission/32954/Unicorns_fart_rainbows?=

    20. Re:Didn't need a book to know this by NateTech · · Score: 1

      Your comment hides a KEY point that most software "engineers" miss: "core system" shows that you understand the concept of critical/must-have functionality and "nice to have" functionality. Many people calling themselves "engineer" think you can build/test/deploy it all at once...

      --
      +++OK ATH
    21. Re:Didn't need a book to know this by NateTech · · Score: 1

      And 10x the cost. Meaning that most management still doesn't REALLY know what the cost of the software projects they're asking for, really cost. They're long-gone by the time it's truly "finished" usually, too. Thus... if technology is supposed to make a company more competitive by spending money today on the tech that will make X work Y amount better than the previous system did... they can't really put values in for Y or compare that value to the true costs. Businesspeople should know better. SOMETIMES a fax machine, a pen, some paper, and a filing cabinet -- REALLY ARE the most efficient way to do something -- but we get convinced that a giant web-interface, database back-ended, monstrosity is a good way to say... track shipments of orders. When for many years prior to computers, the $10 solution worked just fine... tech is supposed to save or make the company money -- if it doesn't, it shouldn't have been used.

      --
      +++OK ATH
  6. PHBs is the simple answer by Finallyjoined!!! · · Score: 1

    Buying software designed to take the user 4 times longer to use, takes 4 times more key presses & takes a 4 times faster processor to do the same task as the "old" software, but it enables some sodding PHB to get a report in one click.

    --
    If I had an Ass, I'd call it Fanny Bottom, then I could slap my Ass; Fanny Bottom, on the Arse.
  7. Alot of Software is Shit by Anonymous Coward · · Score: 1, Insightful

    Let's be real here for a moment...

    People who make alot more than I do look at a list of features. They don't tend to ask peons like me if these features are implemented in a reasonable way.

    I'm not given the opportunity to warn of an impending clusterfuck until it's to late. By then it's not just my problem, it's everybody's.

    Of course by the time it gets that far it is to late to turn around.

    By the way, I heard second hand of very senior people at a company being fired because of an SAP implementation gone awry.

    Me - I cram good websites in to shitty content managements systems. Generally i could personally develop most of the features that are in these CMSes if instead of dicking around with them I was just writing code.

    I have personally spend over 3 days implementing a drop down list...

    1. Re:Alot of Software is Shit by PhxBlue · · Score: 1

      Me - I cram good websites in to shitty content managements systems. Generally i could personally develop most of the features that are in these CMSes if instead of dicking around with them I was just writing code.

      So you work with the Air Force Portal, then? *Rimshot!*

      --
      !#@%*)anks for hanging up the phone, dear.
  8. Incredible review by Anonymous Coward · · Score: 0

    "Simon's book is far more informative and instructive than a Google search and should be required reading for all CIOs, IT project managers, and involved business managers prior to starting any such enterprise COTS project."

    Who is Bruce Webster? He must a trainer of CIO's or something to presume to know what CIO's should or shouldn't read. No doubt he's an expert in risk management. I suppose he's developed seriously mission-critical systems in his time. But if that was the case, why didn't he write a book about it then?

    1. Re:Incredible review by rjstanford · · Score: 1

      Additionally, since when is being "more informative and instructive than a Google search" considered to be good enough to justify a book purchase?

      --
      You're special forces then? That's great! I just love your olympics!
  9. New Systems fail because: by vertinox · · Score: 1

    Clients are over expecting.
    Salespersons are over promising.
    Developers are over outsourcing.

    --
    "I am the king of the Romans, and am superior to rules of grammar!"
    -Sigismund, Holy Roman Emperor (1368-1437)
  10. Tolstoy's version by T.E.D. · · Score: 5, Insightful

    People have written oodles of books on this subject, because there are oodles of different ways to screw up a project.

    The best insight on this subject comes from Tolstoy, not Brooks. He was talking about families being functional, not software, but the principle is the same.

    All happy families are alike; every unhappy family is unhappy in its own way.

    A far better method of approaching this issue is to study projects that don't fail, not ones that do.

    1. Re:Tolstoy's version by ljw1004 · · Score: 1

      Why do you think the principle is the same?

      My experience is that it's the opposite. Project failures always come from the same sources (bad expectations and bad specifications and bad process control).

      But project success comes from many different reasons most of them unexpected -- and often it's enough for just a couple of these "success wildcards" to arise in order for the project to succeed. Sometimes a star programmer pulled it off, sometimes a star manager, sometimes the solution just fell out instantly, sometimes the team happened accidentally on the right architecture at the start by blind luck, sometimes there was the right synergy of people, sometimes the project got enough key parties excited about it, sometimes the right person left at the right moment to let someone else take over, sometimes re-architecting was right, sometimes it was wrong.

      That said, my experience is too limited for me to draw conclusions. I'm curious what led you to your opposite conclusion, and about what other people have found.

    2. Re:Tolstoy's version by JesseMcDonald · · Score: 1

      The original quote was overly simplistic. The causes of success and failure are both diverse, in families as much as in software.

      --
      "The state is that great fiction by which everyone tries to live at the expense of everyone else." - Bastiat
    3. Re:Tolstoy's version by dcollins · · Score: 1

      All happy families are alike; every unhappy family is unhappy in its own way.

      That's interesting. I think just yesterday I said exactly the opposite.

      Everyone I know who's furiously pusued the American married-with-2-kids nuclear family ideal is miserable. Everyone I know who has some alternative-y lifestyle (without marriage, kids, lucrative job, white picket fence, or some combination) seems a lot happier.

      --
      We know where leadership by an anti-intellectual "strongman" who scapegoats minorities and likes boisterous rallies goes
    4. Re:Tolstoy's version by Anonymous Coward · · Score: 0

      Study both, or else you'll get the halo effect. That means everything that a bad project does is bad, inversely every project that works is doing everything okay.

    5. Re:Tolstoy's version by genner · · Score: 2, Insightful

      All happy families are alike; every unhappy family is unhappy in its own way.

      That's interesting. I think just yesterday I said exactly the opposite.

      Everyone I know who's furiously pusued the American married-with-2-kids nuclear family ideal is miserable. Everyone I know who has some alternative-y lifestyle (without marriage, kids, lucrative job, white picket fence, or some combination) seems a lot happier.

      In reality everyone is miserable.

    6. Re:Tolstoy's version by korpique · · Score: 1

      In reality everyone is miserable.

      "In reality everyone is happy" is equally true.
       

      Only if you tune your meter so that it covers the variation available rather than some idealistic edge of scale, you get variation. Such as people varying between misery and happiness, nobody quite stably at either end, as moods tend to be dynamic in living things. Then you can inspect people who tend more towards one end than the other, on a reasonable timescale, not whole life, since we do tend to learn and grow.
       

      I know people from many walks of life from many places on Earth and do not perceive a clear correlation not to mention idea of causality (used to nurture one though) between how you live and your happiness or misery. Yes you have to have basic needs fulfilled, after that it's up to your ability to react constructively to your environment; a lot about communication and sympathy, it would seem. I'd risk a guess that those would even expand to one's success at work as well.
       

      As usual, reality is rather more complex and boring than extreme one-liners :)
       

      --
      I was the real korpiq until I woke up clowned.
    7. Re:Tolstoy's version by Hognoxious · · Score: 1

      The tricky bit is finding out which factors really contributed and which were concidental. Look, two projects in Minnesota succeeded - pack your bags everybody!

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  11. To buy or to build by snspdaarf · · Score: 1

    I have seen several COTS projects break up in flight, once as a participant, three times as an observer, and a big part seems to be management not wanting to change their business process to match that of the COTS package. It seems simple to me. Either do things the way the purchased software wants them done, or write your own software to automate your existing processes. Unfortunately, the people that make those kind of decisions will not be the ones that read this book.

    --
    Why, without your clothes, you're naked, Miss Dudley!
    1. Re:To buy or to build by Hognoxious · · Score: 1

      People often fail to distinguish between "can't do X" and "does X but not in the same way as the old system".

      In consequence the make or buy descision is "solved" by doing both.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  12. Tim Lister? Who's he? by davidwr · · Score: 1

    Tim who? Sure, he's probably done stuff but as long as he doesn't have a Wikipedia entry he's just a nobody.

    Counting down the seconds before I get a "there, fixed that for you."

    --
    Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
  13. Underpromise and over-deliver! That's my motto... by filesiteguy · · Score: 4, Interesting

    ...or at least one of them. I haven't read the book yet - but it is now listed as a to-do in my list of to-do items taking up space on my blackberry.

    In any case, I'd be curious what the answer is. In my short software development experience - only since '93 have I been doing enterprise-level development - I see one factor being the overwhelming key to failure.

    Communication.

    When you have analysts and developers (who are notorious for not being communicative in the first place) trying to interface with executives and managers (who are trying to CYA) then you have a perfect storm brewing.

    Add to it, the fact that COTS solutions rarely actually fit the needs of everyone, and you subscribe to failure. A classic example that I just saw this week is with the California State Child Welfare lien processing system, written by Accenture. I asked for a minor change in the file layout some months ago. Only this week did I hear that I'd need a change request and that they'd get back to me in a few months. :P

    By contrast, I've written my own in-house custom software systems for the enterprise. (One system in production has well over 500 concurrent users on any of fifteen different modules.) When teh customer(s) request a change, then it can - depending on complexity - be implemented and tested in a matter of days. Of course, harping on the communication theme, I'm in constant communication with teh customer, the end-user (if different), my developers, and my analysts. (I'm a PHB in the middle.) I make sure that we under-promise and over-delivery whenever possible.

  14. "New Systems" are never created. by goffster · · Score: 1

    A good system is one that evolves constantly from humble beginnings with smart
    people making and guiding decisions at every step in its evolution.

    You start with a good idea, implement it. Add more good ideas, discard the bad ones.

    If your system is useful, and supersedes the older slow/bloated one, then it "becomes" the "new system".

    1. Re:"New Systems" are never created. by kigrwik · · Score: 1

      A good system is indeed one that can evolve and adapt to shifting requirements.

      A good product/project manager is one that can say "NO" and prevent feature creep. But you need some backbone to say no to the boss/client.

      --
      -- don't discount flying pigs until you have good air defense
  15. requirements gathering failure by Dan667 · · Score: 1

    In my experience, the main reason software projects fail is a failure to collect adequate requirements. The tendency to jump in a code something is extremely great, but that is the absolute worst thing to do. For projects I manage, it is about a 2/3 requirements gathering to 1/3 or less code writing. A lot of people hate gathering requirements, figuring out how people do their job / what people actually need, and following up with minor changes that are extremely important in the different in a system that a user will hate to use vs one a user wants to use. Also, managing expectations is very important.

  16. 65% of all IT projects fail by Anonymous Coward · · Score: 1, Interesting

    65% of all IT projects fail (whatever "fail" means). Most projects are entered into without upper management support and are under funded and under prioritized. The vast majority of projects started by a middle manager should never have begun at all. Those cause churn in their team until they reach a point that new networking or servers are needed. Then they are stuck with all the wasted time already spent. Another failed project.

    Control the budget and resources to prevent false starts. That is the main way to increase the success ratio.

    After that, you need user buy in for any new software system deployed. Users need to find all the good things it will allow, not all the things they will need to do differently or can't do. More than a token number of real users need to be brought in during planning to ensure the new system will actually be "better" however that is defined. Better could mean - not on a mainframe or not on UNIX or not a desktop thick application.

    After working for 15+ years performing designs and installations of COTS systems across many, many servers, I'm positive most users won't change unless they have no other choice.

    Do you really need a book the say that?

    As for turning more projects into successes, you'll need to pay someone from outside your company to tell the PHB Exec-types the same thing you've been saying for years. Somehow, if someone charging $300/hr says it while wearing a suite, then it must be true.

  17. The bigger the rollout, the harder the crash by petes_PoV · · Score: 4, Insightful
    "But we don't have time for a pilot"

    Also heard as "Why, don't you have confidence in your project"

    Putting aside the sheer commonsense approach of not giving a porsche to a newly passed driver, most projects are run in a state of panic. Panic that the timetable is slipping (although this is almost always due to poor time-estimating, it seems to get presented as being due to slothful or untalented techies), Panic that it's costing too much - again due to poor cost estimation, rather than ovespending. Panic about bugs, Panic about training (ha!). Panic about compatibility with other systems. Panic about all the little patches, workarounds, working practices and hacks that have developed in the old system - that everyone knows about, but have never been documented.

    All these, could have been identified and most of them fixed just by running a small scale prototype in parallel to the existing system. However by the time the project is halfway through, most of the directors are firmly engaged in either "buyers remorse" or utter denial. They become deaf to bad news and generally take full aim at the messenger, while leaving the culprits of all the problems unscathed. This is usually because all the biggest mistakes are made right at the start - in the design stages. However, these have been completed and signed off, so by definition cannot be at fault. The blame gets transferred down the line, to the people who have their hands-on right at the time the deadline is due. It's the original smoking gun: "The project ran over time / budget today - you were working on it when that happened, therefore you must be to blame". It's simplistic, always wrong and always starts off the finger pointing part of the process. You can't get away from it.

    Although the biggest problem I see is "seagull" consultants. They fly in, make a lot of noise, crap over everything and fly off. The trouble usually only surfaces once they've disappeared.

    --
    politicians are like babies' nappies: they should both be changed regularly and for the same reasons
  18. classes of problems by rev_sanchez · · Score: 3, Insightful

    Communication - Ill defined or changing specifications and poor documentation make development and testing very difficult.
    Technical - Large systems tend to be very complicated and it's difficult and expensive to make them fault tolerant and build in the sort of redundancy, validation, and security that make critical systems reliable.
    Leadership - Decision makers on the client and supplier side often don't know enough details about various parts of the project to really know what they want much less what they need.
    Organizational - Setting deadlines before defining the scope of the project, belligerent coworkers and other HR issues, uncooperative clients, cutting testing time to meet deadlines, and other general issues within the organizations can lead to death march development and other undesirable situations.

    --
    If you didn't come to party don't bother knocking on my door. Prince '1999'
  19. Sturgeon's Law by n6kuy · · Score: 2, Funny

    90% of Everything is Crap.

    --
    If you disagree with me on social issues, then it's pretty clear that you are a narrow-minded bigot.
  20. Requirements, requirements, requirements... by rlseaman · · Score: 1

    All projects can be described by:

    1. define the problem
    2. entertain solutions
    3. iterate

    Requirements are the interface between #1 and #2. Thus, one way or another all system failures are about requirements. Either the true project requirements were never discovered - or the customer was allowed to impose unnecessary and counterproductive pseudo-requirements - or the domain requirements weren't correctly elaborated into appropriate functional requirements - or the process for managing the requirements was top down and static when it should have been bottom up and iterative (or vice versa) - or a contractor was permitted to be non-responsive to the requirements (for any of a 1000 reasons) - or...

    Which is to say that each project represents a single complex-but-inherently-self-consistent problem. There are an infinity of possible solutions. Each solution attempts to manage the complexity of the problem space, but cannot ever eliminate this complexity. Further, all real world solutions are guaranteed to be inconsistent. We often refer to these inconsistencies as bugs, but more often they are failures of the conceptual model, that is they are requirement failures.

    On the other hand, development teams often complain that requirements have changed - for instance that the customer is demanding new features. Rather, requirements never change, only our understanding of the scope of the problem changes. Discover the requirements and the Platonic ideal of a project will be laid out in front of you.

    The search for project requirements can be an adventure as rich as any our species embarks upon. Projects fail for the same reason that expeditions fail - a lack of imagination. A customer's description always fails to capture the essence of a project; customers always fail to include a broad enough vision for how the new or modified system will fit into the organization. The first stage of any project is to clarify that vision. As with Indiana Jones, the trail is fraught with dangers, but the trek is the essence of the exercise.

  21. It's one big poker game by petes_PoV · · Score: 1
    Everyone knows when a project is doomed. However, no-one is willing to report it. The reason is that so many people have bonuses, contracts and reputations at stake that they will always hold out, right up to the last, in the hope that someone else will fold first. Once the first guy admits "there might be a slight problem", everyone else piles in on top of that. Typically blaming the fall-guy for all of their problems, shortcomings, missed deliveries and failures.

    The higher up an organisation you go, the more the people in charge have to lose. Therefore the less likely they are to admit it's a disaster. This goes as far (and often a lot further) as continually pouring in money even when all the signs are screamingly obvious that nothing good will ever come out of it.

    The Emperor's New Clothes was obviously written by a long-time predecessor of this book's author.

    --
    politicians are like babies' nappies: they should both be changed regularly and for the same reasons
  22. The problem with these kinds of books... by devleopard · · Score: 1

    They're stuck in an old paradigm: plan it, build it, test it, deliver it, you're done. This may still be true for certain types of applications (think an accounting system), However, today's giant web applications written in ColdFusion, PHP, or the like are as much a system as the traditional ones. Moreover, many companies' web applications *are* their business. Therefore they have to make adjustments on the fly, or lose business. No different than other businesses - if you run a restaurant, and your competition is smokin with a new dish, you better get it on your menu. Fast. If your chefs say they can't do it, then you either get new ones or embrace the idea that you don't have the competency, at least in that area, to compete. Unfortunately this reality of online businesses tends to screw up Gantt charts and whatnot. In addition, these books assume giant teams - how many applications that drive entire companies are architected, built, and maintained by teams of less than 5? Heck, my bread and butter is building big apps, primarily in ColdFusion, where I generally am the sole developer, either building from the ground up or coming on after the application was built by a team and supposedly "finished".

    --
    The best thing about a boolean is even if you are wrong, you are only off by a bit.
  23. A better book would be "How New Systems Succeed".. by russotto · · Score: 3, Insightful

    Because why they fail is not all that interesting. A project specified mostly by people who don't know what the system is supposed to do, implemented by people who don't understand the business, replacing a legacy system containing within its labyrinthine bowels the combined knowledge of tens or hundreds of expert users past and present. What could possibly go wrong?

    Add on top of that a COTS requirement, so it's a matter of making the requirements fit the software's limitations (while still fitting the business), and you have an almost guaranteed recipe for failure. Particularly when the users _won't_ adapt.

  24. Misperception by Anonymous Coward · · Score: 0

    However, the firm (usually wrongly) thinks that such a project comprises nothing more than installing the software, training some users, converting some data, and turning a switch.

    No wonder they have problems! One doesn't "turn" a switch, one "flips" it! Problem solved.

  25. Software job titles by rlseaman · · Score: 1

    I don't think engineer should be the vaunted title - scientist should be.

    "Engineer" and "scientist" are more like different roles, not different titles. A single individual might wear both hats at one time or another. Better job titles might be "computer systems architect" versus "computer systems researcher". That is - what is the motivation for practicing either engineering or science?

    Having worked with a lot of both engineers and scientists, it is clear that there is no implicit hierarchy. I don't know about a "vaunted title", but depending on the enterprise either an engineer or a scientist might take pride of place. In academia, for instance, the science side usually rules. But with the bridge example, one certainly hopes that an engineer is in charge and hires scientists for various jobs such as researching materials or unique lighting requirements. Of course job titles associated with roles that more directly concern financial aspects of the project outvote everybody else :-)

    I prefer "programmer" as a title over "software engineer", just as "teacher" is preferable to "educator". Fancy titles obscure fundamental purposes. On the other hand, "software systems engineer" is perhaps more accurate than "system programmer" because the word software describes the type of system. Also, "system programmer" tends to have overtones of IBM System 370 era groupspeak.

    Engineering is design. Science is discovery. Both are (potentially) equally creative.

    1. Re:Software job titles by religious+freak · · Score: 1

      I don't disagree with any of your points (and your points are good ones). My point is that PHBs are looking for folks they like to call engineers - they pay these "engineers" more than they pay mere "consultants" or "analysts" and probably in some cases, even mere "programmers". In that case, I'll take engineer and not argue the point.

      Hell, you could call me a grilled cheese sandwich if you paid me enough.

      --
      If you can read this... 01110101 01110010 00100000 01100001 00100000 01100111 01100101 01100101 01101011
    2. Re:Software job titles by NateTech · · Score: 1

      Some countries reserve the title "Engineer" for those who have been through government Engineering certification Boards.

      Unfortunately, software "engineers" have always fought this process and far too many don't have enough discipline to pass a knowledge test of how to properly build software anyway...

      --
      +++OK ATH
    3. Re:Software job titles by rlseaman · · Score: 1

      Some countries reserve the title "Engineer" for those who have been through government Engineering certification Boards.

      This is yet another dimension of the problem. I distinguished job title from job function (e.g., design versus research). Certification references requirements outside the particular organization's. Such certification need not involve a government board, however. Many programmers do seek certification of various sorts - for example, Microsoft offers various finely graded levels and classes of certification.

      Contrarily, not all engineering disciplines map well onto formal certification processes. Civil engineering (there's those bridges again) is tailor made for a certification process. On the other hand, many niches for system engineers involve the development of unprecedented facilities. In that case it's hard to focus on specific best practices - even best practices for process development - when nobody has ever created a similar system in the past. Other engineering disciplines fall somewhere in the middle between these extremes.

      Certification itself is only one way to build confidence in mastery of a subject. Others are membership in professional organizations, or subscription to journals - or, of course, possession of appropriate college degrees. CS/programming/software/IT are much more diverse than the relatively small number of engineering disciplines - to begin with, software is important in every engineering discipline.

      Bottom line - the biggest distinction between the engineering of software and the engineering of hardware is that the design is finished before you even start building a hardware prototype - but a software design is not finished until the actual deliverable is finished. Software process and modeling tchotchkes like UML are all about trying to impose external order on what is intrinsically an internal creative effort. These techniques are useful for some projects, deadly poison for others, and perhaps appropriate in moderation for most projects.

      Software certification (like my framed ICONIX "diploma") is ok if enough freedom of action is preserved for (senior) personnel to decide how to apply the techniques. Forcing someone to build a robustness diagram is not going to help with non-object oriented projects.

  26. Re:A better book would be "How New Systems Succeed by fuzzyfuzzyfungus · · Score: 1

    If you know how systems succeed, why would you sell books for a few royalty bucks a copy when you could sell successes for $$$$$?

  27. Re:A better book would be "How New Systems Succeed by PeanutButterBreath · · Score: 1

    Because why they fail is not all that interesting

    Be sure to tune in for tonight's episode of "When animals don't attack".

    Please?

  28. Software is hard by plopez · · Score: 2, Insightful

    You can't see it, touch it, smell it, taste it etc. Most of it is an intellectual abstraction many programmers, not to mention the general population, isn't very good at.

    Doing software well requires being an expert in complex problem domains. The domains may require knowledge of complex financial, legal, engineering and manufacturing systems. It may require modeling human relationships. Or combinations of all of the above.

    Where people get things wrong is they do not take the time to understand their problem domain. They look for magic bullets. They need to spend time with their end users and understand the work processes. A little business process modeling goes a long way.

    --
    putting the 'B' in LGBTQ+
    1. Re:Software is hard by kramicus · · Score: 1

      you echoed my thoughts pretty well. i've worked in software engineering since 1984, and been on quite a few teams in large corporations and startups. i like to observe teams and i'm curious as to why teams succeed and fail. i've observed quite a few characteristics that contribute towards success and the ones that fail are obvious within the first 10 days of working on the team. i can sum it up this way though. in every successful team, there are 2 or 3 people that are the leaders of the team (whether small or large) that set the tone for everything. i've watched these people move into areas where they are not domain experts and they become domain experts. after observing these successful people, they are unique in that just about everything they work on is a success. they draw other talented people towards their work, the success feeds on itself. its similar to when we want to take a class because of the teacher, or join a team because of the coach.
      in the end software is really hard, software releases are harder, running a software organization is 10 times the art that software programming is. there are lots and lots of books with information on failures and success. its hard to repeat success even when attempting to do all the right things, as there truly is an art in the terms of how teams interact with each other, how priorities are made, when they are made, why they are made.
      i think the best way for people to learn how to manage software teams is to mentor under successful people. people that have repeatable successes.

  29. We need an SOB with Power to say NO !! by Anonymous Coward · · Score: 0

    You need one hard-nosed SOB with enough power to say "No!" again and again

    No to new requirement
    No to modifying requirements
    No to fixing a minor bug that can be worked around or lived with
    No to consultants design by PowerPoint solutions
    No to features that are not core to the requirment
    No to cutting 10% of the budget expecting 90% solution to work
    No to cutting testing due to schedule crunch
    No to belief that "We don't need to train users"
    No to relying on vendors without testing hardware or software
    No we are not going to change programmers in the middle of the project

    Give me 1 GOOD person who really knows a CRAPPY system
    & they will run rings around 10 so-so people using a GREAT system.

  30. Mod Parent Up by Anonymous Coward · · Score: 0

    This is the most insightful comment in this thread.

    I won't talk about bridges, because I'm a mechanical engineer who designs HVAC, Plumbing, and Fire Protection systems for buildings.
    Once a building gets beyond the foundation phase, it is fairly rare for something not to be completed, because, for one thing, once a building gets started, it may be more expensive to demolish what has been built so far than to finish the project if you take into account that the project will be worth at least something when it is done. (Abandonment might not be a legal option) However, a project sometimes gets completed only after the original builder goes bankrupt and the project is sold cheap to someone else - this will not usually be apparent to the general public.

    What is somewhat common, is projects failing during the design phase: budget gets out of control, the Owner changes their business plans, the builder can't come up with the money, or investors pull out because the project can't or won't meet the original goals, etc.

    Maybe the problem with large software projects is that the coding is being done while the design is still being worked out. This is becoming more and ore common in the construction industry, and it adds a large amount of difficulty as well as haste that makes waste, and in my opinion makes it easier to have a building that (though built a little cheaper) has problems.

  31. ERP Systems Failure by Guil+Rarey · · Score: 1

    ERP Systems fail (and this is by no means an exhaustive list, just what I have seen myself) ...because the sales pitch is to the board of directors and the implementation is at the user level. ...because I (financial analyst that I am) have a job to do. Your system helps or it doesn't, but I've got to get my job done.

    The common theme here is that ERP implementations lack humility and respect for the existing business and the people who actually run it. In pursuit of relatively nebulous "strategic" advantages, an inflexible, underdocumented, undersupported system is shoved down everyone's throat.

    A few years down the road what happens? The planning guy (me) and the accounting guy had EACH separately reimplemented Access databases to provide the information we need to do our jobs, despite the fact that a module exists in the ERP system to do exactly what we need to do.

    Except that, of course, it's been configured in such a way that it doesn't do any such thing, and we can't change it. Hell it took me 3 months (not full time) grovelling through help screens to even understand it. No, there's no budget for training. Or user support. And changing things? Get in line.

    --
    Do not taunt Happy Fun Ball
  32. The Right ISBN by TimSSG · · Score: 1

    978-1438944241 Tim S.

  33. Another good book by eyrieowl · · Score: 1

    which isn't software focused, but contains principles *absolutely* useful for software as well as other types of engineering is Inviting Disaster. It's an easy, highly entertaining read, with the bonus that you (ought to) learn something as well. I highly recommend it.

  34. Software projects only fail for one reason by 192939495969798999 · · Score: 2, Interesting

    Software projects only fail because people agree and/or commit to features or schedules that are not thought out ahead of time. Anytime such a committal is made, either that part of the project will fail, or some part that connects to that part will be forced to fail as a result of the developers being forced not to design the software properly. Software projects are supposed to be really expensive (just look at the early days for examples), but to cut costs, sales and non-technical people agree to nonsensical schedules and features. The clients won't sign onto a project unless it is cheap, so the managers/sales folks that agree to the MOST nonsensical stuff are initially seen as winners. Developers are then given the responsibility for delivering on a deal that they didn't design or agree with. Since every development outfit does this, none of the clients out there have any idea how complicated and expensive it would be to actually do things the right way.

    --
    stuff |
  35. Re:A better book would be "How New Systems Succeed by some-old-geek · · Score: 1

    A project specified mostly by people who don't know what the system is supposed to do, implemented by people who don't understand the business, replacing a legacy system containing within its labyrinthine bowels the combined knowledge of tens or hundreds of expert users past and present. What could possibly go wrong?

    You do realize you've just described most reengineering efforts, right?

  36. Software Project Failures .. by viralMeme · · Score: 1

    Another interesting read .. Software Project Failures Sabina Seifert ...