Escaping From Gilligan’s Island

I find it helpful to revisit Steve McConnell’s list of classic development process mistakes, and the accompanying case study, at least once every year. Stop me if you've heard this one before:

“Look, Mike,” Tomas said. “I can hand off my code today and call it ‘feature complete,’ but I've probably got three weeks of cleanup work to do once I hand it off.” Mike asked what Tomas meant by “cleanup.” “I haven’t gotten the company logo to show up on every page, and I haven’t gotten the agent’s name and phone number to print on the bottom of every page. It’s little stuff like that. All of the important stuff works fine. I’m 99-percent done.”

As that old software proverb goes, the first ninety percent of the task takes ninety percent of the time, and the last ten percent takes the other ninety percent.

The Classic Mistakes case study is unnerving to read; it’s like those staged re-enactments you see on America’s Most Wanted. It’s an exaggerated but strangely accurate summary of every pathological software project I’ve ever participated in, which is to say almost all of them.

This is the phenomenon McConnell likens to Gilligan’s IslandEvery week there’s some new, crazy scheme to escape the island, but at the end of the episode, the castaways always end up stuck on the island for yet another week.

The cast of Gilligan's Island

If you don’t immediately see the parallels with software development, allow me to reacquaint you with the long, dismal history of software project failureClassic mistakes are classic because they’re so seductive. You have to actively recognize when you’re falling into one of these traps. As Steve once said in an interview:

Actually succeeding in a software project depends a whole lot less on not doing a few things wrong but on doing almost everything right.

Which is why you should have every single one of the 36 classic mistakes outlined in McConnell’s Rapid Development committed to memory by now:

People MistakesProcess Mistakes
Undermined motivation
Weak personnel
Uncontrolled problem employees
Heroics
Adding people to a late project
Noisy, crowded offices
Friction between developers and customers
Unrealistic expectations
Lack of effective project sponsorship
Lack of stakeholder buy-in
Lack of user input
Politics placed over substance
Wishful thinking
Overly optimistic schedules
Insufficient risk management
Contractor failure
Insufficient planning
Abandonment of planning under pressure
Wasted time during the fuzzy front end
Shortchanged upstream activities
Inadequate design
Shortchanged quality assurance
Insufficient management controls
Premature or too frequent convergence
Omitting necessary tasks from estimates
Planning to catch up later
Code-like-hell programming

Product Mistakes

Technology Mistakes
Requirements gold-plating
Feature creep
Developer gold-plating
Push me, pull me negotiation
Research-oriented development
Silver-bullet syndrome
Overestimated savings from new tools or methods
Switching tools in the middle of a project
Lack of automated source control

I’ve increasingly come to believe the only difference between experienced and inexperienced software developers is that the experienced ones realize when they’re making mistakes. The same rule applies to software projects and project managers. If you’re not actively scanning through the list of Classic Software Development Mistakes as you run your software project, you have no idea how likely it is you’re making one of these mistakes right now.

Making mistakes is inevitable, but repeating the same ones over and over doesn’t have to be. You should endeavor to make all-new, spectacular, never-seen-before mistakes. To that end, Steve McConnell highlighted a few new classic mistakes in his blog that he’s about to add to the canon, 10 years later:

  • Confusing estimates with targets
  • Excessive multi-tasking
  • Assuming global development has a negligible impact on total effort
  • Unclear project vision
  • Trusting the map more than the terrain
  • Outsourcing to reduce cost
  • Letting a team go dark (replaces the previous “lack of management controls”)

Steve also looking published a Classic Mistakes Survey in 2010 and invited everyone to participate. The results were summarized in a PDF with a sample size of 500, showing these key results:

  1. Overly optimistic schedules — 77%
  2. Unrealistic expectations — 73%
  3. Excessive multi-tasking — 71%
  4. Shortchanged quality assurance — 70%
  5. Noisy, crowded offices — 69%
  6. Feature creep — 69%
  7. Wishful thinking — 68%
  8. Insufficient risk management — 68%
  9. Confusing estimates with targets — 65%
  10. Omitting necessary tasks from estimates — 61%

It’s true, the odds are against you. But it’s a good idea to periodically remind yourself that maybe, just maybe – if you can avoid making the same classic mistakes as so many other software projects before you – you might actually manage to escape from the island one of these days.

Related posts

What does Stack Overflow want to be when it grows up?

What does Stack Overflow want to be when it grows up?

I sometimes get asked by regular people in the actual real world what it is that I do for a living, and here’s my 15 second answer: We built a sort of Wikipedia website for computer programmers to post questions and answers. It’s called Stack Overflow. As of

By Jeff Atwood ·
Comments
Civilized Discourse Construction Kit

Civilized Discourse Construction Kit

Occasionally, startups will ask me for advice. That’s a shame, because I am a terrible person to ask for advice. The conversation usually goes something like this: We’d love to get your expert advice on our thing. I probably don’t use your thing. Even if I tried

By Jeff Atwood ·
Comments
How to Stop Sucking and Be Awesome Instead

How to Stop Sucking and Be Awesome Instead

I've been fortunate to have some measure of success in my life, primarily through this very blog over the last eight years, and in creating Stack Overflow and Stack Exchange over the last four years. With the birth of our twin girls, I've had a few

By Jeff Atwood ·
Comments
Books: Bits vs. Atoms

Books: Bits vs. Atoms

I adore words, but let's face it: books suck. More specifically, so many beautiful ideas have been helplessly trapped in physical made-of-atoms books for the last few centuries. How do books suck? Let me count the ways: * They are heavy. * They take up too much space. * They have

By Jeff Atwood ·
Comments

Recent Posts

Let's Talk About The American Dream

Let's Talk About The American Dream

A few months ago I wrote about what it means to stay gold — to hold on to the best parts of ourselves, our communities, and the American Dream itself. But staying gold isn’t passive. It takes work. It takes action. It takes hard conversations that ask us to confront

By Jeff Atwood ·
Comments
Stay Gold, America

Stay Gold, America

We are at an unprecedented point in American history, and I'm concerned we may lose sight of the American Dream.

By Jeff Atwood ·
Comments
The Great Filter Comes For Us All

The Great Filter Comes For Us All

With a 13 billion year head start on evolution, why haven’t any other forms of life in the universe contacted us by now? (Arrival is a fantastic movie. Watch it, but don’t stop there – read the Story of Your Life novella it was based on for so much

By Jeff Atwood ·
Comments