Scratching Your Own Itch in the Badgerworks
“With all of the people doing this, why hasn’t anyone ever just made a …”
“I really like doing this, but everytime I get to this point I struggle. I need to make that better.”
“Man… what I really need is something that makes this job less tedious!”
Those sentiments have reared their ugly heads in some way or another with every crafty endeavour in which we at Highgroove have gotten involved. Sometimes those crafts are working on bikes (crafty and artisanal as well as mechanical), brewing beer (crafty, artisinal, and after some patience, tasty if you’re careful), working on rails apps (crafty and often fun!), or pulling shots of espresso (crafty, tasty, and caffeinated. Sometimes with latte art.) Instead of simply wishing there was a solution, Highgroove encourages us to solve the problem, not just for ourselves, but for others.
Highgrooves’s team is expected to be made up of craftsmen and -women in our work not only by asking us to be such, but also providing us with time to work on our own projects, contribute to open-source projects, and build internal tools to help the team work better. As a result of this expectation, the Highgroove Badgerworks has not one but many exciting projects we not only developed to use internally but also release for your use and enjoyment! In the cases of our open-source projects and internal tools, we start to eat our own dogfood as quickly as possible, often before the developer is “ready” to do so (as was the case with Reflecticle when we started using it to track our work internally). This bleeding-edge mentality has advantages. It reminds us that often 85% correct is “correct enough to ship” because things will undoubtably change (and an over-sharpened sword is often brittle). It also encourages flexibility in our code; the more flexible our code is, the easier it is to respond to the wants and needs and likes and dislikes of early adopters.
Continuing education of our team is also incredibly important, and building our own projects allows us to do that by “finally” getting to play with cool technologies we’ve come across during research for our work but have never had a chance to use. Want to write a mobile app using Sencha touch? No problem. Want to finally build a Rails 3.1 app, or a Sinatra app, or somehow integrate Hadoop into something you do? Go for it. Tired of not knowing enough about Sunspot and Solr even though there is expertise in house? Please do something cool with it, and then, please ask questions or submit patches.
After you’ve honed your craft, built your toy, or added functionality to an existing project with a patch, it’s time to give back to the rest of the team by showing them what you’ve done. If the project or tool is just plain neat and you want to show it off we encourage you to step up and do a tech-talk for the team and any visitors we may have. These tech-talks are an informal break from the rest of our work during which we can all take some time to learn something new together in 15-45 minutes. This is a great forum to get feedback on your work to date, ask for help on those niggling details that are still to be worked out, and get everyone else excited about your pet-project as well as using your new tool in their own project.
If, in addition to being interesting and fun, your tool can contribute to Highgroove’s day-to-day workflow, as our soon to be released ROWEapp and Reflecticle do, we encourage the team to start using them, and even developing them. The ROWEapp is a great internal project for tracking your progress each iteration of a project. It ties in with the other tools we use (PivotalTracker, LetsFreckle, etc.) and allows us to see the progress the entire team is making on each of the various on-going projects Highgroove is involved in. It has also provided a fantastic place for the team to work together on a cutting-edge rails app where breaking things or making mistakes is not the end of the world. In the past month so much progress has been made by one of our developers that it has gone from being a great ‘scratch your own itch’ application to a product nearly ready to ship to some of our other friendly ROWEs including ripple, Matchstic, and Dealer Ignition. For us this is extremely exciting!
If you have the itch, it’s pretty likely others do, too. If you’ve done your search of all the likely sites to find your solution and have come up empty, it may be time to scratch your own itch. It’s likely you are solving a problem many people have. Once you’ve done so, Congratulations on contributing to the diverse and useful software ecosystem!