Is Software Done?
More than twenty years ago, my team lead at IBM taught me to play the board game Go. At first I was quite confused, because unlike all the other board games I knew, there was no clear ending condition. The game doesn’t end when the score reaches a certain value, or certain pieces are in particular positions, or all of your pieces are taken. It ends with a strange kind of consensus between opponents when both players agree that the game is done. That happens when each player looks at the board and realises that to make another move would not improve their position, and may even make it worse.
In anything at all, perfection is finally attained not when there is no longer anything to add, but when there is no longer anything to take away…
I used to think software was like this.
