The sphinx riddled "What walks on four legs in the morning, two legs in the afternoon, and three legs in the evening?" The answer is man. Man crawls as an infant, walks as an adult, and uses a cane as an elder.
I was noodling with the idea that a code base passes through phases of life.
For a new project with a clean slate choices are relatively unbounded but initial features can take some time to develop because there's little or no infrastructure yet. A new code base must crawl before it can walk.
As a code base matures feature implementation should become easier. There's something to build on. There's code that can be reused. A healthy mature code base is a sweet spot.
However when we are not good stewards a code base can develop infirmities. The code can become stiff and brittle where it should be loose and flexible. Or it may become bloated and confusing where it should be lean and literate. Fortunately (and I'm really stretching the analogy now) a code base can be rejuvenated.
I know many smart people who have done just that - become numb. They work without joy. It’s just a job. They check off each requirement and meet the letter of each spec. If you step back, look at the big picture, and suggest an alternate approach that would better meet the business need, they’ll agree that it’s better and shrug and say “but it’s not in the spec.”
It’s probably a character flaw. I might be better off. But I haven’t gone numb. I have passion and a sense of professionalism that’s independent of any company’s performance review.
Someone once told me that every workplace is crazy; the trick is to find a place that matches your kind of crazy.