I was thinking about this in the context of the Bending Spoons list of acquisitions.
When you are starting out writing any piece of, it seems like there is a limitless amount of new, useful functionality to add. Yes, even sometimes reading email.
But just as a building goes through phases of construction and ends up done, I believe software can be finished too.
I do not mean that the software is abandoned either because it isn’t used any longer or because an adequate substitute for custom built software is purchased. In these cases the software is unused, not finished.
I also don’t mean theoretically complete, where it is bug free and does exactly what is in the spec, as discussed here on Reddit about /bin/true. I don’t think any non-trivial piece of software ever reaches that point.
My definition of finished is when the software is still being used, but the long term value of adding new features to the software package is exceeded by the cost of adding those features.
Finishing software in this manner is different than finishing in physical construction because:
- the software profession is newer, and doesn’t yet have great metrics on what “done is” in the way that construction does
- software is more malleable and can be repurposed in ways that are harder to do with buildings (see this Odd Lots episode on what it takes to turn a building from commercial to residential use)
But just as there’s value in personally ending projects, I think there’s value in calling software done.
What would this mean?
- the software would continue to be valuable
- the value of the software would depreciate over time
- some users would continue to use it, others would not
- most of the team which built it would move on to different endeavors
- there would need to be a team to do maintenance
Wait!, you say. Software is bits, and those don’t decay, so why would depreciation happen? It would happen in a similar way to how it happens in buildings. A building can become less useful because of:
- wear and tear, breaking down the physical infrastructure
- changing styles, making it less desirable
- new needs of inhabitants/users that it has difficulty meeting because of the way it was built
The latter two apply to software as well as buildings.
While I think it is easy to vilify companies like Bending Spoons for buying software up, laying off most folks, and changing the business model, I’m struggling to understand how it is it any different than buy up a finished building and renting it out while doing minimal maintenance.
What am I missing?