I’m currently somewhere near the middle of a huge project I've undertaken at work. A total refactor of the web app's CSS. Over the 6 or so years we've been working on the product, the CSS codebase has grown bigger and messier as we’ve added features and redesigned certain aspects. When features have been built on a tight deadline, refactoring old CSS to fix specificity clashes has been pretty low on the list of priorities, and so the number and length of selectors has grown.
More recently, with feature production now stabilised, I figured it would be a good idea and a pretty good time to refactor EVERYTHING. Doing this by halves would just not get the job done. I needed to get everything fixed at once. Rid the source of specificity clashes and tidy up old code. Everything would be solid and modular again and much easier to deal with when new features are added in the future.
At this point in the process I’m starting to feel a little over-faced by the massive task still ahead of me.
My son has a lot of Lego. He's always been into Lego. He started with Duplo, then the basic Lego sets, then City, Ninjago and later the Star Wars franchised Lego sets. He has a lot of them. I daren't think how much it would all add up to. He's an only-child. He may be a little spoiled.
In the last couple of years though, as he approaches his teenage years, he's been getting more into the Xbox and his Lego collection has been ignored and neglected. Over that time the models he (and I) painstakingly put together have been dismantled; either partially or fully, deliberately or accidentally. Pieces have been borrowed from one to patch another. Eventually, the majority have ended up as a box full of loose bricks in various shades of battleship grey.
This Summer, during the school holidays, my son is also undertaking a mammoth project. Finally bored of the Xbox, he’s decided to revisit his Star Wars Lego. He started with his Clone Turbo Tank - one of the biggest of his models and one that when first built, he abandoned after a day and I spent the next two days completing it myself. Of course, originally we had neat little bags with all the correct pieces in. This time we have two huge plastic boxes containing all the dark grey remains of his various dismantled fighters, vehicles, and bases.
So far, he’s sticking with it. He’s finished the Turbo Tank and is onto the next model. Diligently sifting through the ever-shrinking pile of loose bricks to find the specific piece he needs for a certain instruction. He knows that it’s going to be a lot of work and at times it’s mind-numbing (as well as knee and fingertip numbing), but in the end he’ll have a room full of perfectly put-together Lego models and, I imagine, a bunch of loose bricks that he’ll decide he didn’t need anyway.
Whilst it's a fun task to start, and a daunting task in the middle, at the end he'll have created something that is as it should be. All his fighters and bases and vehicles will be whole and independent. One won't rely on any pieces borrowed or shared with another.
Then he'll promise himself that he'll never have to go through that again.