Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Slashdot Log In

Log In

Create Account  |  Retrieve Password

Anatomy of a Runaway Project

Posted by kdawson on Tue Jun 17, 2008 01:47 PM
from the off-the-tracks-and-ploughing-up-dirt dept.
JCWDenton recommends a piece by Bruce Webster revealing some insights into a failed multi-million-dollar IT project. "The following document is the actual text — carefully redacted — of a memo I wrote some time back after performing an IT project review; names and identifying concepts have been changed to preserve confidentiality (and protect the guilty). The project in question was a major IT re-engineering effort for a mission-critical system; at the time I did this review, the project had been going on for several years and had cost millions of dollars; it would eventually be canceled and the work products abandoned. The memo itself provides an interesting glimpse into just how a major IT project can go so far off the tracks that nothing useful is ever delivered."
+ -
story

Related Stories

This discussion has been archived. No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More
Loading... please wait.
  • Interesting line (Score:5, Insightful)

    by UnknowingFool (672806) on Tuesday June 17 2008, @01:57PM (#23826769)

    Two consultants rewrote the 140,000 lines of [original obscure language] into 4200 lines of Java. The Java version runs as fast on a laptop PC as the original version runs on a high-powered UNIX server.

    Come on now, COBOL isn't that bad. :P. But seriously Java isn't the language you would use for high performance but rather high portability. That says a lot about how bad the original code was.

    • by Chirs (87576) on Tuesday June 17 2008, @02:08PM (#23827017)
      Depending on where the bottlenecks are, Java could do reasonably well. (And I say this as a professional kernel developer that works mostly in C, assembly, and shell scripting.)

      The bulk of most apps is not a hot path and therefore the language is not as important. Even in the hot paths, algorithms often count more than the language. Once a suitable algorithm is determined, performance-critical things are often best written in other languanges (and if it's really critical, in assembly).
    • Re:Interesting line (Score:5, Interesting)

      by jd (1658) <imipak@yahoDALIo.com minus painter> on Tuesday June 17 2008, @02:13PM (#23827137) Homepage Journal
      Java isn't the language for highly compact code, either. The original could have been any one of a hundred business languages, but most archaic business languages are fairly compact. That they could get such a high level of compression does show bad coding.

      ObOwnExperience: One time, I had to do some maintenance work on a very large piece of badly-written and cruft-ridden code, ended up rewriting large tracts of it, reduced its source size by an order of magnitude and the binary size by three orders of magnitude. Also found some buffer overflow Heisenbugs which the previous maintenance guys had known about but bypassed by padding the object files. There's something... bothersome about corrupting a file in order to make a bug not be visible.

    • by SuperKendall (25149) on Tuesday June 17 2008, @02:19PM (#23827229)
      But seriously Java isn't the language you would use for high performance but rather high portability

      That old myth? That hasn't been true for many years now, for server side code anyway (which this was describing). Modern JIT compilers make java as fast, and sometimes faster (since you are optimizing code as it runs and not statically beforehand).

      But no language will help you if you lack discipline or the ability to code (both of which seemed lacking in this case).
  • by starX (306011) on Tuesday June 17 2008, @01:58PM (#23826805) Homepage
    From TFA:


    The FUBAR project keeps being touted as a world-class development team, but it is not producing world-class, or even minimally-professional, results. This already shows up in the project delays and quality issues of the releases to date. What the team is producing will not only be very difficult to support and modify, it will in all likelihood be unusable, resulting in a complete failure of the FUBAR project.


    Sounds like Vista to me...
  • by g0bshiTe (596213) on Tuesday June 17 2008, @01:58PM (#23826827)
    That "FUBAR" project is Duke Nuke Em Forever.
  • Sigh... (Score:5, Funny)

    by fahrbot-bot (874524) on Tuesday June 17 2008, @02:03PM (#23826923)
    I first read this as "Anatomy of Runway Project" and thought of Heidi Klum [bravotv.com].
    I am *so* disappointed with the actual article...
  • by analog_line (465182) on Tuesday June 17 2008, @02:23PM (#23827319)
    From large companies to small, it's the single biggest problem they all have. Decisions makers don't want to hear the truth, no matter how loudly they protest otherwise. Anyone with intellectual honesty that doesn't have a previously won huge level of trust from a decision-maker is almost invariably thought to be lying. They all want to have their cake and eat it too, and they will throw money at anyone that tells them they can. Even after getting burned by the consequences of their decisions, less than half (in my experience) bother to try and learn from the failure. Most of them blame the honest person (if they did nothing and as a result failure happened) or latch on to the next person willing and able to lie even more convincingly than the last guy.
  • Not Root Cause (Score:5, Insightful)

    by Aaron M. Renn (539) <arenn@urbanophile.com> on Tuesday June 17 2008, @03:25PM (#23828435) Homepage
    I read this with interest as I have been involved in large scale IT development projects for various corporations for the better part of 15 years. This memo makes it appear as if the problems in the project were execution related: bad management, poor quality control, bad architecture, performance problems, etc.

    In my experience, it is actually not that common for an experienced team to fail largely on execution problems. Rather, as I like to say (call it Renn's Law if you'd like): "Most failed corporate software projects failed before the kickoff meeting". Usually the signs of failure were there all along, before the project even officially got started.

    Here are some of the key things I've seen lead to problems, most of which are not directly related to the core development (design, build, and test) of the project:

    - Lack of an identified executive sponsor
    - Failure to identify a limited subset of people who are empowered and responsible for articulating the business requirements of the system
    - Lack of clarity as to the actual goals to be achieved or the underlying problem to be solved.
    - No shared vision of what a successful outcome would look like among the various stakeholders
    - Project positioned as an IT-centric solution to a business-centric problem without a corresponding business strategy, process, and change management plan in place.
    - Insufficient resources (time, money, people) allocated to the project
    - Lack of qualified staff in key roles (data architect, functional lead, etc)
    - Poor governance and scope control
    • Re:Text of Article (Score:5, Interesting)

      by IamTheRealMike (537420) * on Tuesday June 17 2008, @02:03PM (#23826915) Homepage
      It's sort of interesting, in a vague way, but you can read much more dire and funny stories on (the highly recommended) the daily WTF [thedailywtf.com]. My favourites would have to be the hotel reservation system from hell [thedailywtf.com], the story of VirtuDyne and the digital donkey [thedailywtf.com] and a case of the MUMPS [thedailywtf.com].
      • Re:Text of Article (Score:5, Insightful)

        by imidan (559239) on Tuesday June 17 2008, @03:44PM (#23828727)
        The thing that bugs me about Daily WTF is that the editor often takes great liberties with the stories to make them "more interesting." You'll often find the original submitter of the story down in the comments, telling people what really happened before the hyperbole injection that each story gets before it goes up on the front page.

        I guess I should say that's what used to bug me about the site; I stopped reading it because of the lies. Look, I understand that it's supposed to be funny, but can't it be true, also? I mean, especially if it's represented as being true. And I can understand a little exaggeration, but some of the changes I've seen between the submission and the published copy are material and, really, unnecessary.

    • Re:Text of Article (Score:5, Interesting)

      by idontgno (624372) on Tuesday June 17 2008, @02:06PM (#23826973) Journal

      thermocline of truth

      Damn. That's the exact phrase I've been looking for. I don't know how many times I've seen hard truths and unpleasant realities float up the organization and stop dead about 3 management levels below where someone could do something about it. Just like sonar, the people "listening" above the thermocline will never hear anything occurring below it.

    • by Ngarrang (1023425) on Tuesday June 17 2008, @02:18PM (#23827225) Journal
      "ISSUE: There isn't enough intellectual honesty within the FUBAR project. Managers reject or explain away bad news and real problems, looking instead for people who will tell them what they want to hear. "

      This has easily been the #1 reason I have personally witnessed for project failure. I am in the process of witnessing it right now, even, with what seems like a relatively simple project. The suits and supervisors along the way are either not responding to requests for information, or change their request for features.
    • by JaredOfEuropa (526365) on Tuesday June 17 2008, @02:20PM (#23827255) Journal

      I view these problems as a direct result in regards to a lack of IT project managers.
      I find that there's a rather shocking lack of senior, competent technical personnel in general. On a lot of larger projects, there's not a great deal of senior devs to go around so a couple of them end up as dev lead / team lead even though their managerial skills aren't so great. There's no testers to be had so the developers end up doing the testing, and the user acceptance tests end up poorly written aand poorly facilitated. Junior developers have far too much leeway in writing code because there's not enough seniors to coach them, or even do proper code reviews. Application and infrastructure architects are too busy to give each project the attention it deserves, and as a result performance and scalability are not built into the design, and are often not even tested for before release.

      In short, a lack of senior staff means a lack of attention, coaching and oversight. If you have too many juniors, your project is going to take a lot longer to correct "newbie" mistakes, and these mistakes are caught later after they're made as well. Either allow for this extra time, or end up with crappy code.

      Sadly, the idea has taken hold with upper management that IT is simply a commodity, and as a result most IT shops have become piss-poor at identifying and nurturing talent. They expect junior developer to become "mediors" automatically after a few years, where in practice they have picked up a ton of bad habits on which they've never been corrected. And I expect the shortage to increase in the future... more and more professional IT staff are starting to look for ways out.
      • by COMON$ (806135) * on Tuesday June 17 2008, @02:31PM (#23827479) Journal
        Exactly, all of which cascades from a lack of project management. IT project managers are soooo rare no adays that everyone is scrambling to hire them. A good IT project manager will manage each of the problems you noted above. Sys Admins and Dev Gurus are not Project managers. But they get put in the position of being one constantly because upper management doesn't know the difference. It is a completely different skill set. You wouldn't make a simple accountant a CFO or your HR manager a CEO. Sure there is an aspect of accounting to beinging a CFO and there is an aspect of HR to CEO but those are well defined fields that people know how to sniff out good fits for them. However the Professional IT project manager is such a new concept that general managers think any IT guy can fit the bill.

        It all comes down to the fact that somehow the common business sense that people have in every other area seems to go out the window while they are thinking about IT.

      • by Curlsman (1041022) on Tuesday June 17 2008, @03:36PM (#23828611)
        I have a theory about the missing senior managers with useful skills: My father talked about his teaching debate in high school in the mid '60 to late '70 in central California (then moving on to a community college), where he said that many of the most socially active "lets change the world for the better" students he ever taught went to Vietnam and never really came back, in one way or another. Those people would now be in their 60s, ten years older than I, and their influence would be reaching their peak. Those people are the leaders and mentors that I feel have been missing from the last third of the 20th century.
    • by Anonymous Coward on Tuesday June 17 2008, @02:27PM (#23827397)
      It is unfortunately common to knee-jerk a development problem by adding more management.

      A project manager who doesn't actually have the skills it takes to make a project successful will be as bad or worse than no project manager at all. Hiring/retaining more of them will just multiply the problem.

      It is very difficult to interview for and find good project managers. The talent pool is just teeming with people who are not skilled developers, and would to love to have a job that is, essentially, just telling other developers to do their jobs. There is tremendous incentive for people who are not competent to be a project manager (or much of anything else, for that matter) to fight tooth and nail for PM jobs. When you hire such a person, your project usually fails, or if it does succeed it is despite, and not because of, the best efforts of your project manager.

      Another problem: the best project manager in the world won't get you results if you disempower him or her. I have seen it happen often that the executives see a project slipping and shift into micromanagement mode. At that point, the project manager just becomes a mouthpiece, and the company has robbed itself of the value of their paid talent. If you can't trust your project manager to tell you when a goal cannot be achieved, or when more time must be allocated to some task that doesn't have obvious functional benefits, or that a deadline must be extended, then you have either hired a lemon or you are involving yourself too much in his job. In either case, your project will suffer because of it.

      Ok, I will stop ranting now. The bottom line is...more management doesn't solve problems. The right amount of *competent* and *properly empowered* management does.
    • by dedazo (737510) on Tuesday June 17 2008, @02:39PM (#23827667) Journal
      Not really. I've worked with shitty PMs but also with good ones (in large projects) where the fault lies entirely on the people above them.

      On a project a few years ago (your typical Fortune 500 $LARGE_COMPANY here), our PM was forced to declare that a large release that had taken 6 months to get to "it's kinda working" was "complete" and shipped to UAT even though system testing was incomplete and all we did was give the end users a pile of steaming shit. But the director of the group got to "meet" his deadline, and therefore get his much-desire performance rating.

      Of course fixing bugs once the app is in UAT is four times as difficult as in the integration environment, with the corresponding lag in defect correction time. So UAT went on and on and on... until it was supposed to be the final release date. Said users were hysterical and pissed off, and said director was out of his fucking mind trying to come up with inventive ways to ship said steaming pile of shit to production while blaming someone else for the smell of said pile.

      His first executive action was to fire the PM and have him escorted out of the building (he was a contractor like me). His second action was to request that the Offshore Solutions team add four more developers to the already swelled-beyond-comprehension development team in India. You know, throwing bodies at the problem. The next thing was to go to his VP and claim that he had been misled by the PM, who by this time was checking out the classifieds at home and therefore unavailable for comment.

      In the end, we all went through the usual death march and shipped the thing about three weeks late. The director got his rating (not his fault you understand) and the users had to deal with the remnants of the steaming pile of shit. I get paid either way so no skin off my ass.

      Projects are late (or they fail) because the people who are supposed to be in charge of delivering them have no fucking clue as to how software is developed. Fix that problem, and you'll ship all the software you want on time and under budget.

      I'm fortunate to be in a project right now where the guy in charge is a former developer who doesn't require a bonus to pay his mortgage, and all the two PMs do is move little bars on an MS Project file while mercifully leaving me and my team alone to actually write the software. We've released two major versions of the app so far the past two years and are on track to deliver the third version sometime this October. On time and under budget. The secret? Iterative development (SCRUM-like) with heavy user involvement in feature sprints. No waterfall bullshit for me anymore, thank $DEITY.

      /Rant over, back to work.

    • Re:Merit? (Score:5, Informative)

      by bfwebster (90513) on Tuesday June 17 2008, @03:05PM (#23828103) Homepage
      I'm not sure how carefully the manager you quote read my post, since some of your 'quotes' are wrong (as well as the apparent assumptions as to my own role), and some of the manager's responses are non sequiturs.

      I was brought in from the outside specifically to conduct a review and summarize my findings in a memo for one specific person in upper management at BigFirm who was above the FUBAR project and who had grave concerns about it, given that at that point the project was years late and millions over budget, and which showed few signs of making it into production anytime soon.

      I was not one of the "coders" -- I was not even a project member -- and I certainly wasn't a "new kid out of college"; I graduated with BSCS in 1978; my first programming languages were 360 assembly, PL/1 and FORTRAN, and by the time I conducted this review, I had personally done professional software engineering (including project management, architecture, and consulting) in a wide range of operating systems and programming languages over quite a few fifferent industries.

      The ABC consultants, to a person, were likewise very senior software engineers with many years of hands-on coding experience and well-established track records of successful project delivery.

      I'm surprised that an IT manager doesn't know what "very fragile code" means. "Fragile code" means that efforts to modify one section of code -- to fix a bug, add functionality, or improve performance -- frequently results in the code "breaking" elsewhere, usually in multiple places. The opposite of "fragile code" is "robust code".

      The memo states clearly that previous architects had left (not "project managers"); the problem was that the FUBAR project manager (with no technical background) kept driving them off and, as the memo notes, fancied himself a software architect.

      The syndrome of "kingdom building" through increased head-count has long been a major cause of IT project failure; in this case, there were far too many programmers than the problem actually required.

      As for my "amateur" status, I'll simply point here [brucefwebster.com]; is the manager willing to do the same? (Sorry about the server problems; I'm raising hell with my hosting service, given what I pay each month for a dedicated server.) ..bruce..