Why Have an Organizing Ideal?

An organizing ideal is an opinion about how software should work, or what the developer experience should be like.

For example, “software should respect its users’ time and effort”, or “it should be possible for developers to pick up an old codebase and get it running in minimal time”, or “maintaining a codebase should be painless”.

Of course, not every ideal is possible in every situation. But having them will help you build better software, more efficiently.

Decisions take less time. Instead of scouring StackOverflow and looking to external sources to tell you how you should architect something, you’re focusing on hitting your ideal. That comes with an ordered set of priorities, which in turn determines the best way for you to get there.

It will also help you understand libraries or frameworks you may be using.

When React first came out, I saw this talk and realized that the library’s creators held some organizing ideals that were very similar to some of mine (mental model simplicity and performance). I was already familiar with the idea of rebuilding the entire “screen” (or page) with every “frame”. I’d heard it in the context of game programming and it had completely changed the way I understood UI code, so I was excited when React used it for front-end web code to achieve their organizing ideals.

Knowing that core concept, and knowing how the browser handles rendering, I imagined how I might implement that mechanic myself. I was able to build a simple mental model of how React worked under the hood. That insight helped me fix and avoid bugs and performance issues that others had trouble with, and eventually write my own (very basic) replacement for personal projects.

Later, React began to introduce other features such as hooks. I found they were driven by a desire to move React toward a functional programming paradigm, and knowing that helped me understand those features and their idiosyncrasies, and take a calculated approach to using them.

Striving for an ideal will drive you to learn more about your platform. If your ideal isn’t exactly possible, you’ll be motivated to come up with creative ways to at least approach it.

It will also make you passionate about your work. If your ideal is something you care about (and it should be), you’ll be motivated to push toward it, and you’ll also be motivated to tell others about it.

The saying “shoot for the moon because even if you miss, you’ll land among the stars” is cheesy, but true of software. It’s almost never possible to perfectly achieve an ideal in software, but aiming for it will get you much farther, make you a better developer, and you’ll have a lot more fun.

Want more?

Get notified when I post new stuff.