Seeing Beyond Edge Cases

I used to take great pride in being “helpful” by spotting edge case flaws in designs and “helping” people avoid pursuing flawed solutions by pointing them out. In retrospect, that was not the most productive mode in which to operate.

The real world is messy, and the most impactful solutions are generally not “perfect” but rather an encoding of an elegant balance of tradeoffs. Imperfections in one corner that are contained and more than paid for by simplicity and elegance in another.

For most problems worth solving, every solution comes with tradeoffs. The most helpful colleagues/leaders are those who can help you make the judgement call of when a solution is worth pursuing despite its imperfections.

I think a career progression in software often looks like:

  • Cannot identify edge cases

  • Can identify edge cases as they crop up

  • Can predict edge cases that will crop up

  • Can predict cases, and intuitively know if they will be solve-able when they do

  • Can predict unsolvable edge cases that will crop up

  • Can identify mitigations/tradeoffs for unsolvable edge cases that will make them acceptable