When I talk to developers about code complexity, they often say that they want to write simple code, but deadline pressure or underlying issues mean that they just don't have the time or knowledge necessary to both complete the task and refine it to simplicity.
Well, it's certainly true that putting time pressure on developers tends to lead to them writing complex code. However, deadlines don't have to lead to complexity. Instead of saying "This deadline prevents me from writing simple code," one could equally say, "I am not a fast-enough programmer to make this simple." That is, the faster you are as a programmer, the less your code quality has to be affected by deadlines.
Now, that's nice to say, but how does one actually become faster? Is it a magic skill that people are born with? Do you become fast by being somehow "smarter" than other people?
No, it's not magic or in-born at all. In fact, there is just one simple rule that, if...