Let us sing the praises of ruthless editing. Focus on what is important and delete the rest. This is a lesson I keep learning and re-learning. What is true of copywriting is also true of software code.
Early in my career, a programmer told me that ‘non-existent code doesn’t crash’. He was describing his approach to debugging obscure crashes but he spoke wiser than he knew: Less is more.
- Simple projects cost less to maintain than complex ones
- If you're worried about something not working reliably, use something simpler. For example, don't spend a million dollars inventing a space pen. Use a pencil instead. (Actually the million-dollar space pen is a bit of a myth but never let the truth get in the way of the a good story.)
- Adding more people to a late project makes it later (see: The Mythical Man Month)
- Kill failing projects to concentrate on successful ones
- Accept the 90 percent solution and move on
- Outsource necessary but non-core activities
- It’s a mistake to hire more people than you need
- A big office doesn’t make a big company, it just adds overheads
- You probably don’t need to go to that meeting
I was thinking about this a lot recently because we deleted some little-used elements in Turbine to focus our efforts on more popular features. It’s hard to kill your darlings but necessary sometimes.
And the results can be spectacular. The graph at the top shows code additions (in green), deletions (in red) and total lines of code (in blue). The changes in Turbine in the last month have allowed us to cut the code base by about a third. That’s about 40,000 lines of code that can’t crash and don’t need support or maintenance in future.
Google does it regularly. Anyone remember Google Wave? And Steve Jobs was a master at killing projects. Did you know that Apple used to make printers? Cameras? Scanners? Exactly.
The Hollywood myth of management is that the boss that makes a bold decision to do something. In fact, one of the boss’s most important jobs is to decide what not to do.