The useful Yak shaving
This is not the first time I shave a yak and probably not the last.
The Wiktionary definition of Yak shaving is
Any apparently useless activity which, by allowing you to overcome intermediate difficulties, allows you to solve a larger problem.
So let's see my real-world example and why I think it is actually quite useful.
Improve the SEO of my sites
A few days ago I started a little project improving my web sites (primarily the Code Maven and Perl Maven sites) so Google, and potentially other search engines, will bring more visitors to it and the visitors will be served better. Part of this can be called Search Engine Optimization (SEO), such as declaring the canonical URL in each page. Others are just plain common sense: make sure none of the links give a 404 not found or a 500 error page. After making some fixes I wanted to go over all of my pages and verify that the field is set everywhere and there are no broken links.
Write a tool to check pages and links
I am sure there are many tools out there to do these task, some of them might be even open source, but no, I decided to use the opportunity and improve my grasp of Golang. This could be a nice project and I even started to have ideas how to later promote the project so others can use it.
Of course writing the tool myself in a language that I have only learned a few months ago will make the original project take a lot longer, but I would kill two birds with one stone.
Improve my Golang slides
As I started to write the code, I used my Golang slides to remind me of constructs, but not every slide had the required explanation and some part of the code (eg. parsing HTML) did not have any slides.
So I had to spend some time adding explanations to the slides and creating more examples.
Writing the program would be much faster if I just copy-pasted some snippets and went ahead as I figured out the APIs, but no, I had to update the slides.
Improve the slide generator
Soon I realized I had some improvements for the slide-generator that will make the slides more useful (e.g. adding the list of all the other pages to each page, combining the keyword listing with the index listing, etc.)
OK, so at this point I decided I had enough of this yak, and just added a note to my TODO list to all these improvements, but this not go ahead another level deeper in the rabbit hole looking for my yak.
Write blog post about Yak shaving
Just as though I managed to stop the downward spiral, I had the urge to write this blog post explaining about the yak shaving process. So here I am now, one level deeper.
But actually no. I am almost done with the blog post and in reality this was only a side step. I also went to make some smashed potatoes while I was working on this and that is not part of the official yak-shaving routine.
Why is yak shaving good for me?
While this process of yak shaving means that my original project takes a lot longer, but during this work I also learn a lot more, and I am also adding value to the visitors of my slides.
Of course in order to make it easier for readers to find my pages I need to improve the SEO of my site....
Or maybe not?
I see Seth Godin has a post explaining Yak shaving in a much more real-world situation. and he calls on you not to shave the yak.
The view of Joi Ito about yak shaving is also worth reading.