Today I read a nice blog post about finishing your projects on hackernews, then read the comments and after a while came across a bunch of people ranting about how analogies are bad. https://news.ycombinator.com/item?id=9837915
After this I started thinking about what a software chair would be like.
- Software has bugs. This is equivalent to a chair that breaks when someone sits on it at a strange angle.
- Software must be updated to support changes on the platform. Essentially a chair standing on a floor that someone keeps making uneven in new ways, or if someone kept adjusting friction and gravity, or the strength of the materials you used.
- Software can be copied. Those copies can be altered and the changes merged back into the original. Essentially a play-doh chair created with a 3D scanner and 3D printer.
- Software is not feature complete. The seller at the shop is selling you a new comfy chair, but what is delivered in a stool and a note saying that there will be updates.