There's a common refrain in software among engineers when they see a product that interests them: "I could build that." The phrase captures a lot about what's going on in that their heads the instant they utter it. At first, it seems to be a statement of boasting – that they feel they are just as good (or better) than whoever made the original product. Thinking deeper, it's a personal challenge they submit to themselves as a test of their meddle as creators to see how they compare against another. Ultimately, it's a sign of someone who is always thinking creatively about the why and the how of the way things work, and it's a mindset to be encouraged. However, rarely in the course of daily work do developers have the opportunity to freely explore their own "I could build that" notions. This is why we should lean into our side projects.
"Side project" can have a few interpretations, and I do not mean for this to be confused with a term like "side hustle" which implies a stronger business effort. While they can overlap, what I'm referring to here is a project that is wholly owned by its creator. It's not something that is not meant to be a contribution to a broader community and it therefore is something that can exist mostly independent of external controls. The inspiration for a side project can come from anywhere. Maybe it's born out of an "I could build that" reaction whereby a developer simply tries to see if they can make a slight improvement, or maybe it's a more original, albeit esoteric, solution to a personal inconvenience. Either way, it's important that the creator of a side project feel a deep sense of ownership of the project's direction.
I'm not the first to take a stance on side projects. Proponents have told me they help developers build valuable skills and they're a way to take part in the vast open source ecosystem. Critics have said to me that developers need to take a break and enjoy living outside of their machines for a while, and that side projects are simply a waste of energy if they benefit only their creators. I agree that there must be moderation between screen time and "everything else." I've advocated for that. However, I think side projects offer more benefit than detriment when done for the right reasons.
What I'm talking about with side projects is the creative outlet they offer. As engineers, we're constantly tasked with solving complex problems within an organizational framework. In this environment, we must build things according to what the team designs, which often is exciting but is also sometimes constraining. With the diverse experience and views of a team, there is potential to build great products, but that also takes away a freedom to implement zany ideas and open exploration.
A side project offers that freedom. As something wholly owned by its creator and designed almost exclusively to solve its creator's needs, it's something that isn't meant to provide the scalable value of a regular software product, but it does provide immense value to its creator in the solution it provides and the freedom it grants. The utility others may find in it as a product or open source project is extraneous, and sometimes publicizing a side project is detrimental to the direct value it provides to its creator because those outside influences ultimately can take away that sense of ownership. That is something to decide on a case-by-case basis.
I have some side projects that I've turned into "mini" products because I wanted them to provide value to others while some other projects I've kept as purely personal endeavors. To illustrate some examples, I have a small open source project that's a "web clipping" extension for the open source app, Standard Notes. Initially, I simply created it because that was a feature I needed for Standard Notes, and luckily that project has a highly enthusiastic and welcoming creator and community who've helped me expand the project. On the other hand, I cobbled together a Raspberry-Pi personal dashboard project, which I shared as an open source project, but ultimately did nothing strongly promote its use among others. The reason is that it's an ultra-specific solution that I regularly tweak for no one but myself because no one but myself needs this exact thing. Again, side projects are to fulfill their creators' needs and curiosities first.
Like many personal endeavors, there're few "wrong ways" to do a side project. Side projects should scratch an itch, and the minute they stop doing that, it's ok to abandon them. Move on to the next thing that excites you, empowers you, and makes you excited to create.