You wouldn’t think washing dishes has something to teach you about programming, would you? In fact, you’re likely to despise it and either let your partner do it, or bought yourself a machine to take care of things. But a sink full of dirty plates is not unlike a difficult, multi-faceted problem to tackle in a hairy codebase.