Why my side projects often stall, and yours probably do too.

Slow is smooth, and smooth is fast.

Dean Baker
Level Up Coding

--

Photo by Robert Bye on Unsplash

Technology. We work in an industry that demands that we learn constantly. Otherwise, we run the risk of becoming obsolete or being stuck in a role that we can’t get out of if we don’t keep up with digital trends.

A great way to pick up new skills and technology is by kicking off a side project; it’s also a great way to give you an edge in your next interview. I’ve showcased a side project mid-interview myself, and I am sure it was a significant factor in how the interview progressed.

Starting a new project. My first instinct is to toss out most of the things I use day-to-day at work. I choose all new languages, architectures, deployment strategies and cloud providers. I want to learn it all!

This is where sometimes I find the tail wagging the dog; do I have a real, tangible idea for a start-up or product? Or do I want to play with a bunch of new tech to keep sharp?

The stall

Too many choices, but that isn’t really the hard part. The hard part is finding how to do all of these things well. New cloud provider? Better do some labs to see how it hangs together. New backend language? I don't want to write Golang like a Java dev — I want to write idiomatic Go! New front-end framework? There goes weeks of reading and hello worlds outside of my day job.

Weeks of coding can save hours of planning.

When do I actually think about the idea? Have I even validated it? I probably have some rough outline on a napkin somewhere, but I’m probably not that confident I have really thought it through. As engineers, this can be a blind spot, and I know for a fact it drives our Product Owners nuts — always trying to shoe-horn in technology to solve a (sometimes perceived) problem.

The Innovation token

I found this blog post from way back in 2015 and the concept of innovation tokens and how many an organisation might have to spend on innovation before they go into debt. Take a read:

The truth of the matter is bringing new technology into a project introduces risk. New technology has both known unknowns and unknown unknowns.

Better the devil you know, and all that. It makes sense when you think about it, but it can often go against Engineers who have a learning mindset and always want to be challenged with new prospects.

When choosing to introduce new technology, we must have sound justification — not just a need to learn. RDD at its finest.

Next time I have an idea

I didn’t touch on it too much in this article, but a focus on lean product management is where I will go first. Lean Canvas, validating an idea and market, research the competition (I’ve done this a few times and realised my idea wasn’t as unique as I thought it was!).

I would choose most of the tech that I am already proficient at, throw something new to keep things spicey. Let’s not start a new project learning how Kafka and a CQRS microservices architecture fits together, for now.

Keep learning, but slow it down a little — your side project will have less holding it back and you’ll be so much faster for it.

--

--