DEV Community

amykhar
amykhar

Posted on

The Case for Using Professional Tools for Side Projects

I have started (and abandoned) countless side projects over the years. Usually, they are unplanned, and coded off the cuff. And, usually, they never see the light of day.

Girl robot writing code on a large screen

And, that's actually fine. Side projects, for me, are a way to play with new tools, explore creative ideas, and advance my learning. And yet, there is a certain level of dissatisfaction with never completing anything.

Furthermore, part of growing as a software engineer is learning how to manage projects to completion. It's learning how to budget time and resources and actually ship a product. But, at work, I don't always have access to the administrative side of the tools we use for planning and change management. So, what better way to build up my skills than to add a bit of discipline to my extracurricular coding?

Another factor is brought up by this great talk by Simon Willison, where he advocates extensive documentation of side projects to facilitate context switching and managing many projects at once.

A girl robot juggling laptops

To that end, I'm playing with a personal Jira account. I'm configuring road maps for my projects with a series of epics for the various project parts. I've connected Jira to Github, and am playing with setting up my own CI pipeline using actions.

I'm treating the "work" I'm doing in a more disciplined manner, but still allowing myself to play and have fun while doing so.

I find Test Driven Development on these little projects to be quite satisfying. The red/green cycle of getting the tests passing is a dopamine hit like nothing else.

I'm using linting and code standards now to enforce cleaner code. But, because it's MY code, I get to pick the standards - and I get to pick my toolset.

I also get to do things like writing my documentation in markdown, and keeping it committed with the code, and other little things I wish we did at work. It's a bit like 'playing business' like we played house or school when we were kids. I'm finding that doing these things because I want to and not because somebody dictated it makes it more fun to learn best practices.

I honestly do not know if this practice will help me actually complete a side project. But, I do know it's helping me become a better developer. I have a better understanding of what our tool chain can do. And, I think I'm writing better code because of it.

Top comments (0)