Jonathan Bennett

šŸ˜± "When will the project be done?"

This is one of the hardest questions in a software project. Most custom software is original, meaning no one has solved this problems in this way before. It is hard to give a fixed deadline when you donā€™t know for certain what you are going to make.

That said, there are some unnecessary reasons projects fall off schedule:

  1. Scope creep
  2. Missing definition of done
  3. Defined features not outcomes

Scope Creep

Scope creep is when a project includes work A, B, and C, but later on X, Y, and Z get slipped in. The problem with scope creep is that the project is never finished.

All software is never ā€œcompleteā€, so waiting for everything in you project to be 100% done is running a race with no finish line.

Missing Definition of Done

Project completion should be based on quantifiable metrics. For instance ā€œfaster websiteā€ is not good, ā€œ30% faster websiteā€ is better, and ā€œ30% faster website based on report X in comparison in Aug 2024ā€ best.

Defined Features, Not Outcomes

The best tool I know of for keeping projects under control is to define the project in the context of outcomes, not features. Lets look at a quick example!

If I said our app should have a calendar feature, this leads to a long list of sub-features:

  • repeating events
  • multiple calendars
  • colours
  • agenda/week/month view
  • sharing

There are about a thousand things still missing from this list!

Lets contrast that with an outcome based project. We want users to be able to easily see a daily agenda and use a calendar style picker to easily switch to other days.

You can probably imaging a screen showing a list of events for today with a simple grid based month calendar with days highlighted that have events on them.

Doing this greatly reduces the complexity and scope of the project. This reduction in complexity is key to keeping a project on time. It also leads to tighter and more focused software that just works better.

How about you? Ever have a run away project? How did you deal with it?