Wrong but useful beliefs
Here are some beliefs that I suggest adopting:
- Everything can be tested automatically
- There is always another way of modeling a problem
- There is always a simpler way
- It can always be faster
- It can always be more user-friendly
- There is always a way to split a task into subtasks
- There is always a better name for a variable, function, class, etc.
It would probably be wrong to say that these beliefs are true – there might be “the best” way of doing something. But we can’t know; if we believe something to be perfect or impossible, we stop trying.
There are two effects of taking this approach.
The first effect is that you will try harder to find a better design/name/whatever aspect you think of. You will not be fooled to believe that you got it perfectly the first or second time.
The second effect is that you will recognize that perfection is not attainable. If forces you to perceive the problem in terms of trade-offs – how much is worth spending on it? How beneficial is it to make it better? How much time will be saved in the future? You need to think not only about how much is the minimum but also how much is enough.
I got this idea from a book about memory techniques that recommended believing that everything, no matter how abstract, can be imagined.