Earlier this year, I worked on a solution to help us manage changes and history when maintaining different versions of Amazon Machine Images (AMIs). I entertained a wide range of ideas from Docker to AWS CloudFormation to a collection of shell scripts.
Packer is a tool for creating machine and container images for multiple platforms from a single source configuration.
Packer turned out to be the right tool for the job, but I almost scrapped it, since I ran into a few problems.
When I began my journey as a programmer, every task was fraught with problems, and I loved it. Everything was new, and every problem was an opportunity to learn and grow. It was great.
Somewhere along the way, though, problems became nuisances. As I grew older in life and my career, my tolerance for problems became lower, and my desire for things to Just Work™ became greater.
I ended up patching Packer for my needs, and I had fun doing it. I learned a valuable lesson that day: Despite how we may gripe and complain about shaving yaks, it’s part of our job as programmers and problem solvers, and often, it’s the part that brings us the most satisfaction. I’ve learned to embrace yak shaving, and doing so has changed my outlook on my job, open source contributions, and community organizing.
Yak shaving isn’t just part of our jobs, it’s the entire job description.