Monday, May 3, 2010

Medieval honour codes in development

I read this paper, right, that reckons developers are in the upper percentile in terms of intelligence (globally) (nyikka). Eish. Some hubris had to be applied by my girlfriend like a salve to my swollen head. I had to consciously stop myself from strutting - in my own geeky way - through social spaces daring people with my eyes to challenge me mentally (none took up the challenge, if your wondering). But soon bucket-loads of hubris came unbidden in the form of a transfer to a high pressure Agile team working to please a huge multinational telecomms customer with whom relations were strained @ best. What quickly became obvious to me is that I've been getting by in the development industry on intelligence alone. Yet here I met individuals who displayed some other characteristics which I had thought all but extinct. They traded in honesty like it was some sort of primitive currency, wore personal integrity and honour like a suite of armour, used self-discipline like a blazing sword and looked at leadership as a grave responsibility as opposed to a privilidge. I was like "Woa! Time to up my game!" But as usual, this is easier said than done. especially if you start late like myself. Truth be told, I had met individuals like this before, but never in such high concentrations as on this team. I had therefore felt no peer-pressure, as I do now. I would get to work, do just enough to be acknowledged as competent developer, keep my project manager somewhat happy and read up just enough to be conversational with the industry buzzwords. I did my fair share of good code that was appreciated by my team members, but it was for pieces of code i hardly found spectacular. The stuff i thought was spectacular they hardly looked at. Back to my current environment. I cannot begin to describe the overall spirit that these people embody, therefore i will catalogue the things they did differently from me, which seemed to exemplify their deep honour code. They are thorough, disciplined and immaculate in their execution of their development work. They exercise maximum control over the codebase on which they are working because this is the only way they can take full responsibility for the finished product. They understand and consistently apply concepts such as decoupling, version control, documentation, etc. They champion the various processes around deployment and support. They work in a sterile sort of desktop, no music, no clutter. Nothing that could distract them from the task at hand. They keep a log of their own actions so that they can avoid missing small things as so often happens. They have dispensed all attempts at being 'nice' to people in favour of being efficient communicators. It seems to me that the Profession of Coding is about to get on to another level, somewhat up there with being a medical practitioner, where you have to swear a variation of the Socratic Oath to be allowed to even run your code on even your local machine. I must write one up in the next blog... Either way though, I am consciously choosing to assimilate all of the above qualities in the quest for zero defect code. I will be that highly dependable coder with the face of stone and a slight neck twitch when presented with an unsolved bug. And if they ever give me a junior developer, I will make just such a monster of him...