In the world of software development, there's a humorous term that often makes its way into conversations: "yak shaving." It refers to the seemingly never-ending series of tasks and sub-tasks that stand between you and your original goal. It's the kind of situation where you set out to do something straightforward but end up in a rabbit hole of unrelated tasks. Let me share a recent experience that involved creating my own blogging platform with Elm and Elm Pages—a classic case of yak shaving.
The Spark of Inspiration
It all began with a simple desire: I wanted to write a few blog posts. I had some thoughts to share, and I thought, "Why not start a blog?" So, I set out to find a blogging platform. After some research, I stumbled upon Elm Pages—an intriguing static site generator built with Elm.
Down the Rabbit Hole
Elm Pages promised simplicity and elegance, but there was a catch—I had never used Elm before. No worries, I thought, it's a great opportunity to learn something new. So, I began my journey into Elm.
As I delved into Elm, I realized I needed a good understanding of functional programming and Elm architecture. So, I started learning those too. But then, I couldn't resist the urge to customize my blog's design, which led me into the world of Elm CSS frameworks.
To host my blog, I decided to go serverless with Netlify, which meant I had to learn about deployment pipelines, continuous integration, and webhooks. Each step I took seemed to lead to another task on my to-do list.
Taming the Yak
After weeks of yak shaving, I finally had my custom-built Elm Pages blog up and running. I had learned Elm, Elm architecture, functional programming, CSS-in-Elm, deployment pipelines, and more. My initial goal of writing a few blog posts had morphed into a full-fledged project.
In retrospect, while the journey might have been longer than expected, I realized that yak shaving wasn't all bad. I had gained a deeper understanding of web development, functional programming concepts, and the satisfaction of building something from scratch.
Embrace the Yak
The tale of my yak shaving adventure serves as a reminder that in the world of software development, the journey is often as valuable as the destination. Sometimes, the best way to learn is to dive headfirst into a project, even if it takes you down unexpected paths. Embrace the yak and see where it takes you—you might just discover something incredible along the way.
So, if you find yourself neck-deep in yak hair while chasing a seemingly simple goal, don't despair. Embrace the journey, learn as you go, and relish the satisfaction of taming the shaggy beast. Happy yak shaving, fellow developers!

