I wanted toast this morning. To get it, I unpacked 3 boxes and grouped a bunch of other things together, and it took me about 30 minutes. #refactoring
We just moved house, after 9 years in one place. And we moved from a late-70s rambler to an Arts & Crafts foursquare. So right now, all of my views are like this chaos:
It’s overwhelming. It’s like all the cruft of a decade has been taken out of its neat containers and piled up to become an obstacle course. My tidy sewing room had cubbies and shelving and custom tables designed for the space. All that is now scattered across literally 4 stories, and I don’t actually know where it will end up in the long run.
But back to the toast. To get to the toaster, I needed to move 2 boxes and find space on the counter. To find space on the counter, I needed to put the spices someplace else, but these cupboards are not right for the spice racks we have…
I realized that this is a lot like the classic problem of refactoring – do you just buckle down and get one room at a time perfect, which means that it’s not really usable in the interim, or do you refactor as you try to do a task, which means you’ll probably end up redoing some work? (the spices still need a home that is not a bin on the stovetop) One way, what you are working on is wholly unusable, but you probably don’t waste effort. The other way, you can get a lot of minimum viable tasks done, but you’ll spend more effort overall. And on the gripping hand, your conception of how you’ll use the space changes as you use it.
I think there isn’t a right way to refactor. Your best option has to do with whether you can afford to have that code segment/room totally out of commission while you’re working, and whether you need minimum viable more than you need perfect efficiency.
I can tell you that I got toast this morning, and that it felt like progress, even if I may end up reworking it next week.