For better or for worse, the phrase “Math is hard, let’s go shopping” is one that I use every now and then during design meetings.
There are typically two situations that will prompt this.
- We’re about to do something hard to implement that’s not worth it. Sometimes adding just a bit more of functionality to a feature requires a vastly more difficult and larger implementation. In practice, this means that we have a higher chance of having bugs in this area, and that we’ll spend a disproportionate amount of time and effort effort that can probably be put to better use. Doing things that are hard is OK, but they have to be worth the effort.
- We’re about to do something hard to explain. If we’re designing a feature and it’s hard to explain how it works, we’re probably getting ourselves and our customers in trouble. Simplicity matters.
One of the things I love about the phrase is that it makes it obvious that we’re not taking ourselves too seriously. Design sessions are meant to explore ideas, and one sign of good developers is not getting too attached to their own – always be open for improvement and different points of view.