Git Yourself Together

Tuesday, March 11, 2014 at 11:07 PM
TL;DR

Source control your life!

***

It was one of those rare conversations that I take part in maybe twice a year about church but it is often valuable to me because it usually says something about my habits even though I am not as active in this church anymore. It is disappointing to know that some of the problems faced now are almost the same problems as 5 years ago with some minor changes, maybe even a little frustrating. I've come to understand that what is lacking is open channels of communication between the church board and the congregation, a clear and measurable vision and action on both parts.

Having said that, I am an outsider for all intensive purposes so I am not sure that is the full picture of the issues at hand or that I am completely misread  the situation altogether. But what I find that is lacking in the church I often find those same problems in me. It's one of those things that micro problems are often the causes for macro problems. Kinda stating the obvious but we all need reminders every now and then. The fingers have been pointed back at me, so it is time for change before I become an old hag.

Which reminds me of the lessons I learnt from other parts. I find that the techniques for using different tools can offer solutions to problems that are beyond the scope of those tools. My case in point: source control.

To those who do not know what on earth source control is, it is a way to track changes of files that are in a repository in a manner that is consistent so that everyone who is working on the file can get the changes remotely. You can revert changes and do other funky things with it but that is the basic gist of it. Having dived to the deep end of source control since I first started, you immediately pick up lots of dos and don'ts that I find are becoming more and more applicable in life as well. Some examples

  • Commit stuff
    • If you are going to do something, do it with purpose and conviction. Not committing anything means that nothing is moving which leads to stagnation followed by decay followed by square one. Let it show up on the radar.
  • Commit small changes often
    • Basically this is analogous to the Malay proverb "sikit-sikit lama-lama jadi bukit" (literally translated as a little bit at a time eventually becomes a hill). With the added bonus that if you screw up on something, it is easy to fix it because the commit is small. Whether it is committing to playing your scales on the guitar or put two dollars in the savings jar or restructuring how the music team works, do it in small increments. Most of the problems in church can benefit from this but the assumption is that you need to commit something (see #1). 
  • Don't wait too long before pushing your commits
    • Storing up all your changes without telling others that you have/are working on something will mean that something will come along and screw everything up because nobody knew that you were working on something that they are working on as well. Sometimes fixing them are easy but there will be a time where it will just be disgusting. Working on a vision for the church or a new team is the same thing, people outside need to know what you are doing as often as it is possible and not keep it to within the team.
  • Fixing mistakes locally are easy and people often don't need to know but once a mistake is pushed, it's not so easy to stop people from seeing it.
    • When planning or implementing something, one should plan and make the best changes towards the goal. But when a mistake occurs, it is best to fix it right there and then before it goes out in the open. Do it wrong and put it out in the open and everyone is going to find something to blame, which leads to...
  • There is a paper trail to everything you do
    • Break something in the project and your colleagues are going to stare at you once they find out that something is broken. There is always someone watching your moves. Don't screw it up.
I'm sure that there are more examples than these but I haven't really thought it through. I'm not even sure that what I said makes any sense or just plain stretching it. It certainly sounded a lot better in my head than on print.

But I have committed to it. Hurhur.

Because of this, I have learned to commit to other things as well. I am committed to cease further development of this blog at a predefined time, buying myself something nice when I have upgraded to version 3.0, shutting the relationship door in 4 years and decide where to spend my energies solely. At any point in time, there may be other changes introduced that might disrupt my commits and I will be compelled to fix them in light of new changes. But until then, they are on the list to be carried out on the way to being pushed out.

Product manage yourself!

0 comments