Dog Food

Earlier this week there was an update to the Nice.Social web client to replace the a vertical bar chart with a GitHub-inspired calendar heat map. The reasoning behind this was to provide a little more context for when an account might be active as well as answer the question of "how active is active?". Both charts were designed to be scaled relative to the account as they're not supposed to encourage any sort of competition. The bar chart would always show the week with the highest number of posts as 100% and this was carried forward with the heat map so that the day with the highest number of posts has the strongest colour.

While testing the accuracy of the chart's data, I took a look at my own activity detail and saw this:

My 10C Usage

The chart will likely surprise absolutely nobody, but it did make me think about some of the developers I've read about, met, or worked with who generally did not use the tools they created with the same amount of zeal or consistency as is displayed here. One of my previous colleagues explained that he liked to step back from his work as much as possible so that he could see the big picture rather than get lost in the details. Another told me that she was more interested in how people used the platform than the software itself. Both of these approaches are certainly valid and likely lead to a healthier approach to working on projects, but it does make me wonder if I'm an anomaly in the creator space.

Colleagues have often expressed surprise when they learn about the various things that I've created and use on a daily or near-daily basis, as though the idea of having a hobby that is essentially the very same thing as the day job is alien to them. Then again, maybe it is. How many people enjoy what they get paid to do at work so much that they'll do it at home for fun, too? I am truly fortunate in this regard. However, by making so much of the software I rely on, it's much easier to appreciate so many of the excellent tools that I rely on. Applications like Sublime Text, Sequel Pro, Pixelmator, and Byword get used so often that if I were to rent the software by the hour, they would quickly cost more than the notebook I run them on.

More than this, though, by using my own software it's possible to see where things fail. People who use systems like 10Centuries or the LMS or the textbook systems will report bugs from time to time but, from what I've seen time and again, most people try to ignore bugs and curse my name without ever letting me know there's a problem. This is suboptimal, so I need to use the tools as well. This often results in me seeing things that could be done better, or differently, or fixed, or made optional. The observations get coded and deployed. People then notice the changes or they don't. My overarching goal is to make the software as transparent as possible. People shouldn't ever need to think about how the system works or why it isn't working. That's my job. People should have the benefit of being able to search, publish, and share what they choose without taking the failings of my code into consideration.

There's still a long way to go before anyone can claim that 10Centuries or any of my other projects — personal or professional — approach perfection, but this is my ultimate goal. The only way to get there, though, is to dog food the work and use it just as much — if not more — than the people who might see where the software fails.