Spent the day tackling complexity and wondering how it all got there. We’ve gotta keep refactoring if we are going to get a grip on the product. My first solution to a nasty bug failed the code review. Talking it over the penny dropped and the bug was fixed with a change to a single method. It turned out to be a case of mistaken responsibility and a change of object was all that was needed. Why does talking about a problem, or for that matter writing about it, make it clearer? In this case my victim wasn’t technical and I think that helps, you need to take another step back and make things completely clear if they’re going to understand and that seems to inspire new solutions.