Knowing when to finish and knowing where to start
Announcing the completion of varcaser, and discussing prioritization.
by Danver Braganza on 2015-11-07
Today, I’m pleased to annouce that my open-source Go project Varcaser is code complete, and ready for use. I will not be adding any more features to varcaser, although I will of course be happy to review and merge patches, and fix any bugs my users may detect. Since at the moment the only users appear to be myself, I’m not too worried about this.
When I set out to write varcaser, I needed a way to convert between variables
written in camelCase
and snake_case
. The reason for this is my (as yet
unreleased) project xsd2proto. I
was trying to solve the problem of converting xsd files into collections of
protocol buffer definitions, and the two formats differ in their casing
conventions. In typical yak-shaving fashion, I decided that a more general
case-conversion library would be a worthwhile product1, and so I decided to
work on that first.
Now that this project is complete, I find myself at a crossroads. In the time that I’ve been working on finishing up varcaser, I’ve lost the motivation for working on xsd2proto. I don’t simply mean that my feelings towards that problem have changed (although that is also true). The projects I work on in a professional capacity have changed, and as a result I don’t need xsd2proto myself any more.
At the same time, I’ve collected a really long list of aspirational projects I would love to work on, and I don’t know what to pick up next. The voice of discipline inside my head insists that I follow through with the predefined progression, and continue with xsd2proto. The rest of me is really willing to go along with it right now, just because it saves me from having to make a decision.
It’s definitely something to think about, and immediately after posting this, I’m going to review my list of project ideas to see what gets me the most excited. In the meanwhile, I would be privileged if you would share your experiences with prioritizing your side projects with me at this discussion thread over at Hacker News.
- In the general sense of something produced—I have no intention of charging for something so trivial. ↩︎
Other articles you may like
- Why interfaces in Go are so strict A closer look at some surprising interface mechanics in Go
- Keysort: The Schwartzian Transform in Go This article talks about a problem I encountered while sorting complex types in Go, and the solution I came up with, keysort.
- De Morgan's Flaw: Perform This Refactor Carefully A pattern that I've noticed often causes bugs