As I’ve mentioned before in multiple venues, I’m not a programmer. At best, you could call me a (very old) script kiddie. As such, my discipline when it comes to storing, maintaining, updating, and controlling my code and its inevitable revisions is less than stellar. In fact, notwithstanding my habit of including the date in new file names, it’s fair to say my revision control is non-existent.
Recently I had to revisit that decision, and adapt.
For years, I’ve been responsible for calculating and publishing the prayer times for one of the local congregations. Until recently, I did it with a spreadsheet and a lot of copy-and-paste. Finally the sheer ridiculousness of that habit was impossible for me to ignore any longer, and I wrote a PHP script to do what had once been a bunch of cells and formulae and a few well-placed API calls.
However, the stereotype of the lone coding genius who builds everything from scratch and maintains it as an act of love is a complete fairy tale. Nobody builds anything by themselves. There’s always someone who helped. And so, when I hit a wall in my development, I reached out to the only logical community for this type of work: the frum developer slack channel (frumdevs.slack.com). They were more than happy to help, but they needed to see my code.
Emailing it to them? Even I’M not that naive. I could (and did) post it into a text snippet in the slack channel, but several balked about having to pull it down to their local machine. What they wanted was a link to my repo, preferably github. And who could blame them? The whole point of repositories like github is to enable quick, convenient, simple sharing.
Once you learn how to work the system, that is. And that was my hangup. In all of my IT travels, I’d never had to upload to a repo. My code was simply never sophisticated enough to warrant that level of management. But here I was, and far be it from me to say I’m going to allow a mere set of bits to get the best of me. That’s when I learned exactly how involved performing a “commit” is.
One would think they could simply click the files they wanted to upload, click a button labeled “push” or “send” or even “commit”, and that would be that.
One would be wrong in thinking this.
Without getting into the particulars (mostly because I think I managed it by sheer dint of luck) committing code involves several non-intuitive steps, and that’s even once you discount the initial process of setting up an account on github itself.
The parallel to the work we do on (and for) ourselves here in the month of Elul should be obvious. After deciding (Day 1’s post) where we stand and were we want to be; after preparing (day 3’s post) for the journey from here to there, we still have to commit. If we don’t recognize that this act of committing to a course of action requires more than strapping on our spiritual hiking boots and heading out, we’re likely to be quickly overwhelmed.
More importantly, without the discipline of proper controls, we may end up fixing the same bug in our core values over and over again, because we lack the maturity – both systemic and intellectual – to recognize work we’ve already performed.