Clairvoyant Software Engineering
While ripping out old code and refactoring late last night, I muttered out something that I just had to write down: one of the most profound skills of a software engineer is the ability to foresee the moment when the negative consequences of implementing a feature outweigh its benefits. Quickly. Perhaps, that’s why the 37signals folks came up with their “It just doesn’t matter” mantra. Obviously, the other important skill is the ability to communicate and argue the point. Perhaps, that’s why all too often, software engineering fails massively on a larger scale.