Software in Flux

I recently read one of my favorite blog posts in a while. It's only maybe three paragraphs in total and the website is just plain old HTML. Though unrelated to the subject of the post it got me thinking about my perfectionism.

I've wanted a place to write for a long time, but (being too stubborn to use an existing platform) I'm intimidated by the work required to build one. I'll often put off work until I've planned out the theoretical 'best approach' . Yet, inevitably, the implementation diverges from that 'best approach' almost as soon as I start working toward it.

Code is perpetually in this state of flux. There is always a new problem to solve or a new requirement to meet. With time, all software is rewritten, replaced, or abandoned. I think a better approach is to view code as something which is living. It's flawed. It needs to be tended to. It's constantly changing to fit the context it exists within. Writing software is not a task that can be completed; it's an ongoing process.

This doesn't mean I should write a monolithic entry point or a tangled mess. It means that I should write code with the knowledge that it will change. The architecture should be orderly and consistent, but emergent. Changes should be made with careful thought, but without excessive hesitation.

Following this train of thought the distinction between thinking about a project and working on it fades, and if I'm lucky I can fool myself into finishing more of them. In true pompous programmer fashion I've decided to name this blog engine flux. If you're reading this I'm building it .

Written on 10-14-2024. Back to post index.