The Software Balancing Act

Software development produces two distinct end products:

  1. What the customer needs
  2. The code, processes, and tools to develop and maintain the first

A software development project then tries to allocate resources fairly between the two.

Image by Wiros

Image by Wiros

The scale tilts to the first for one-off, short lived projects while strategic, long-term projects need to focus on the second. 

The hard part is explaining to your customer why you need to allocate resources to the latter instead of the first.