Every so often I realize that the once small and tidy codebase that I was building has grown all out of proportion. Somehow, while I wasn’t paying attention, it morphed from a little canoe to a giant battleship.
This is fine in its own way — you can get a lot of power from a sophisticated tool set. But like any Frankenstein’s monster, it starts to take on a life of its own.
After a codebase gets to beyond a certain size, it has a definite tendency to want to do some things more than others. And it’s very difficult to steer it away from that tendency, because you are no longer steering a little boat — you are steering a giant ship.
And so, every once in a while, when I want to explore something really different, I begin afresh. I don’t throw out the old Frankenstein creature, but I let it rest for a while, and start a little side project.
That little side project can’t do everything, but it can do some particular thing that I am interested in with only a very small amount of code. Which means that it is very easy to steer.
Sometimes you need to get away from your own edifice complex. Take off that captain’s hat, find yourself a nice quiet stream, and paddle a little canoe.