Scope Creep

I have a brand new home office setup. This all started when I planned to build a bed - a bed that doesn’t exist and that won’t be finished any time soon. How did things come to this?

My home office setup

It was a series of small changes, each of which seemed reasonable at the time:

  1. Back in December, I started planning to build a bed. I ordered the hardware but not the wood (more on that later).

  2. A friend pointed out that if I was going to replace the flooring in that room, I should do it before installing the bed so I didn’t have to remove it. We had been planning to replace a fair bit of carpet, so I started the process of getting the flooring replaced.

  3. When replacing carpet in a few rooms, it quickly becomes apparent that there are cost savings to do more rooms at once rather than booking two separate installations, so the flooring job grew to encompass half the square footage of the house. We began packing up the contents of rooms and moving them elsewhere

  4. While getting quotes for flooring, I removed the pet-stained carpet areas myself so I could treat the subfloor.

  5. While the carpet was up and the rooms were empty, we decided to paint since most of the prep work was done.

  6. While painting, we pulled most of the trim and discovered that it was in bad shape. I suspected that I could cut new trim pieces far easier than I could patch, sand down, and paint the trim and vowed to eventually replace it.

  7. The flooring was installed. For the first time in months I thought back to the bed and started planning to buy wood for it. Local store A offered delivery for a fixed rate regardless of how much you ordered. I got the bright idea to order a bunch of trim. While I was at it, why not order a few sheets of plywood for new desk tops? My old ones were sagging and smaller than I liked - the only reason I hadn’t replaced them was that I needed full-size 4’x8' sheets and can’t fit them in my vehicle. So as a trial run, I ordered a bunch of trim and wood for my desks. Still no bed boards.

  8. I compared prices at a few local stores while deciding exactly what wood finish I wanted on this bed. I eventually realized that I wasn’t going to order the bed wood through Store A after all.

  9. I started building desk tops to clear out space in my garage. I enjoyed every part of the project except carrying the finished 80 pound piece up the stairs.

  10. I put my office back together. Then the spread of COVID-19 became apparent undeniably apparent in the USA, guidance switched to self isolation, and the bed project was put on hold.

So here I am, 3 months later, with new flooring, paint, and desks in my office…but no bed. Whoops.

So what happened? A particularly bad case of scope creep. Scope creep can happen from any direction - project managers with constant new feature requests or workers who say “while I’m at it, I might as well…” In this case, there was a bit of both. It’s a useful reminder - in my career I try to be vigilant against such requests and ensure that projects are well defined and on schedule, but at home, practicing what I preach is significantly more difficult.

How do you avoid scope creep? Here’s a few tips:

  • Communication - Agree on what the goals are and aren’t at the beginning of a project. Regularly check in throughout the project and be sure that they haven’t changed.
  • Detailed Implementation Plans - Break projects down into tractable chunks, ideally no larger than a week of work (two at most). Do enough research to truly understand how many pieces are required and estimate how long something will take.
  • Prioritization - Have a ranking of your goals. Review and rerank them often.
  • Stick to the Plan - If issues come up, track them. If they’re blocking or urgent, rank them appropriately against the known tasks. If they’re not, add them to the backlog.
  • Don’t ALWAYS stick to the plan - Even if you account for the time necessary to do work “the right way”, you’ll often find little annoyances that you want to fix. I recommend booking a set amount of time to handle such issues. This kind of process has many names. My current team schedules a “Fixit Week” each quarter for engineers to work on any issues regardless of priority, and encourages team members to work on code cleanup, test improvements, or anything in the product that’s personally important to them. Most importantly, this is actual reserved time in the schedule - the feature load is such that no product work is expected during this week, so no one feels like they’re falling behind. This isn’t just a morale booster - it’s a great way to keep a codebase clean and a product polished.

If you see scope creep occurring in your job or your life, don’t be afraid to call it out. You can’t avoid it entirely - inevitably, some important scenario will be forgotten and plans will have to be adjusted - but it’s important to make that the exception, not the rule, if you ever want to finish a project.

See also