Friday 30 January 2015

Week 3: The pen is mightier than the board



The all mighty pen! It has declared war, made piece and brought to life just about every science that man has invented. What better way to make a thought everlasting than to write it down on paper. And yes, I bet you’d say “Write? Why write when I can type!” but there was a period of time when computers did not exist (frightening thought, I know).

As aspiring programmers, the written word is one of the most powerful weapons at our disposal. Why is it then that we neglect it? We underestimate its value even after our latest programming endeavour is complete and the dust has settled on our keyboards. It’s true that great applications are developed with quality code, but as I've realized, a programmer's job is not complete with the final stroke of a key, but rather by the final stroke of a pen.

Logging


Arguably, one of the best advantages a programmer can give themselves is to write in a log. Logging consistently during the life of a project gives us the advantage of:

  • Tracing back through the thought process of a particular solution
  • Recording bugs (how/when they occurred) and investigating potential solutions

If you've ever returned to a program you wrote weeks, months or even years ago, remembering, or even understanding the rationale behind an implementation decision can be difficult. This is where a quick look at our trusty log saves us time and aggravation. Having kept a consist log, we could (hopefully) understand why something was implemented the way it was, and what else was contingent on that particular implementation.

Dealing with bugs, especially edge case bugs can be frustrating. Keeping notes on a recurring bug, particularly how it may have been triggered and when it occurred may alleviate some of this frustration. Looking back through our log notes, we could begin to unravel clues that point to a misguided piece of code and a potential solution.

Documenting


Where logging is more of an informal process, documentation should ideally be a focused and thorough process. Delivering software without supporting documentation, may make performing even the simplest task within that software a painful experience for the client. Having good documentation on the simplest to the most elaborate client interface, is usually indicative of a good programmer. A programmer who can write good documentation, means that they have a firm grasp of programming concepts but also, and perhaps most importantly, it means that he/she can effectively communicate and sell their ideas.

So there you have it, a couple of reasons to have a notebook and pen on hand during the course of your programming career.