Skip to main content

The Mandate ...

Project X was my maiden, and only major, assignment during my twenty-one-odd month stint as a software engineer. I had been six-plus months into my job and, having been involved in the final stages of the POC of X, was drafted into the development of the product as well. A few folks involved in the delivery of X had understandable misgivings about the greenhorn that was me, and both artful and acerbic articulations followed. It was, if I may, an intra-company outsourcing. My manager and lead, though, were surer and supportive of me.

I had a two-point mandate: first, to write such code that could identify its author, whilst being effective, of course; and second, to ensure that I enjoyed a wonderful rapport with the whole team of Project X.

The first point was a bit of puzzle. Let me make my case with an illustration. Imagine a tailor who works for a fashion house, say Armani. Now, the creation of a suit might begin with a brainstorming of the designers, who then pass on the draft, which lists everything from the kind of fabric, the length of the sleeve to the depth of each pocket, to the master tailor. He must then delegate the assignment, factoring in its complexity, to a suitably skilled cutter to snip the given fabric into pieces as per the provided pattern. The tailor finally has the task of sewing together these fragments. One might think that the tailor has enough latitude to pick the thread that joins, but what of the sense of fashion that demands overt and glaringly pink stitches on a sombre black jacket?

So, if the tailor needs to leave behind a distinct mark, the only way might be to develop a signature seam. The variation in the seam, though, would have to be subtle and economical, and not detracting from its being robust and effective. I found this thought rather inspirational.

As I began keying in my first lines of code, I enjoyed a conditional liberty in choosing what the identifiers should be called. The restrictions were imposed by the christening liturgy, which demanded that the module name and the part of the module be compulsorily featured in the name. I was still free to append a word that would aptly indicate the purpose of the variable, function or enumeration.

Parsing a linked list and finding the node compliant with the given condition was one of the actions to be carried out. Although words like find or search could have been used, their plethoric use in the code base was a downer. I thought this was a good opportunity to stitch in my signature seam. Having browsed through the synonyms of 'search' on the web, I shortlisted two seemingly useful words: scour and rummage, and finally opted for scour. Thus, the given condition got a new alias: Scour Criterion.

The naming of a function, which readied a supporting module for operation by setting variable values as per preconditions, caused the next such exercise. Not wanting to borrow Initialize/Start from the jargon, I chose to Rig the module.

I did Google for a few more synonyms before the development cycle drew to a close, and a few of the words might have crept into my posts at the time, too. All in all, it was pretty gratifying to have half-completed my mandate, especially since the code found nodes as per the Scour Criterion and Rigged the module without hitches.

I think I might have fulfilled the second part of the mandate as well - though I cannot buttress my feeling with test results - for I wrote a goodbye mail that dwelt more on that smile in the hallway, wave in the cafeteria or the electronic wink on the IM.

Comments

Anonymous said…
Nice post..specially the analogy with the Tailor!
But, you can stop being modest. I am sure you had the synonyms of Search and Init at the back of your hand and did not have to google for them. Your vacabulary is as good as it gets!