When I took my first software engineering job at Electronic Arts 20 years ago someone told me “More time is spent maintaining old software than writing new software.” Since my project at the time (“Spore”) was brand new, and I was writing brand new code for it, I found that hard to believe. My experience with my R package choroplethr, however, has proven that saying to be correct.
A few weeks ago CRAN emailed me saying they detected minor problems in an HTML file in the package, and asked me to fix them. Since I had not touched the package in over two years, and the error seemed minor, I ignored the message. I also ignored their followup message. They then sent me an email saying that if I did not fix the issue they would archive the package. That got my attention.
For a brief moment I considered letting the project simply be archived. After all, I am no longer using or improving the software – so if it got archived it wouldn’t impact me personally. The code would still be there, and if I ever decided to work on it in the future, I could simply fix this issue along with whatever changes I wanted to make. I also have a fulltime job that is unrelated to choroplethr, so fixing this issue wouldn’t exactly be “free”.
Then I remembered the project I did with the US Census Bureau, which resulted in an online course on choroplethr being hosted on Census Academy (their online training platform). If choroplethr got archived, then that course would become unusable. Another package on CRAN (noaastormevents) imports choroplethr, and would become unusable if choroplethr got archived. I also checked download stats: according to cranlogs, choroplethr was downloaded ~25k times in the last year alone. In short, if I allowed choroplethr to be archived it would negatively impact a lot of people. And so choroplethr 3.7.1. is now on CRAN.
To visualize how the saying “More time is spent maintaining software than writing it”, I created this chart which visualizes the 27 releases of choroplethr over the ~8.5 years since its first release:
I would like to thank my employer (MarketBridge) and specifically my supervisor (Andy Hasselwander) for giving me the time to work on this release during normal business hours. Lots of people talk about supporting open source software. But in my experience, it’s rare to have a supervisor say “Yes, you can take time during the work week to maintain this open source project which (a) you created before you joined our company and (b) is not critical to our business.”
Speaking of which, if you’d like to work for a company that uses R on a daily basis to do cutting edge work in marketing analytics, please consider applying to one of our many openings! While our headquarters is in Bethesda, Maryland, many employees (such as myself) work remotely.