Let's build software like an axe.
feature
n.
A prominent or distinctive aspect, quality, or characteristic: a feature of one's personality; a feature of the landscape.
Properties of an axe:
- Does not have "features".
- Useful to ordinary people.
- Does only one thing & does it well.
- Simple to obtain, use, and maintain.
- Does not have "upgrades".
- Works on a platform that nearly everybody has.
- Is the property of the owner.
For the task of chopping wood the axe is a perfect technology.
An axe is made to do one thing and do it well. It has no features.
An axe is finished. You buy the axe from the store and it chops wood.
The axe design changes only over millenia: slowly and carefully. The axe itself does not change.
An axe does not receive upgrades. Nobody wants "continuous delivery" for their axe. The axe is immutable.
Software axes
Let's build software like an axe.
- Let's remove all the "features".
- Let's do one thing and do it well.
- Let's build things simple enough to secure.
- Let's finish the software before we release it.
- Let's release immutable, self-contained artifacts.
By all means, experiment. When it comes time to release let's be disciplined and craft something secure, wholesome, and complete.