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.
What do you think? Useful idea or just silly?