Saturday, November 18, 2006

Technology notes Vol 1, Ed 2, Nov 06

Welcome to the second edition of Technology notes. This time we have:

* Peopleware

At the recently held Bangalore Book Fair, I got the opportunity to finally buy a book I'd been hunting for a long time. This book, called "Peopleware", written by Tom DeMarco and Timothy Lister is a classic - something that can be compared with "The Mythical Man-month".

Now we've all heard about hardware, software, shareware, and even vapourware. So, what is peopleware? Well, it is about the only raw material that matters in the software world - people. It is all about how people must be managed, the kind of work environments that software companies must provide, and the kind of managers/senior leaders that you must have in the profession for a company to succeed.

A must read book for anyone, including those not in the profession. Nothing in the book is new - just uncommon, like common sense. Let me know (if you're in Bangalore), if you want to borrow the book.

* Pair programming

The first time I heard about pair programming, I laughed my heart out. My good friend Sathya who introduced the concept tried very hard, in his own inimitable way, to convince me about the worth of the concept. Nothing would make me budge...two programmers working on the same piece of code at the same time!? What crap! What about productivity? What about cost!? What about conflicts!? These were all questions I asked.

It is a different matter though, that later in my life, I actually wrote a paper on the benefits of pair programming! Even then, despite having officially pair-programmed more than a few times, I hadn't experienced the "Aha" moment - when I was convinced that pair programming helped me do a better job of something.

Around a month back, a manager at my workplace had a cool idea on some updates to a web-site that we host. Essentially, we were changing the rendering algorithm, and he asked if I would work with him on it. I agreed, and man, was it fun! The three hours we spent deciphering the existing code and tailoring his algorithm were probably the most productive hours I've spent in some time! And it was fun! We each complemented the other's skills, learnt from the others' approach to code, and finally came off with renewed respect for each other.

Now that is the "Aha" moment I was looking for. That is one of the biggest benefits of pair programming - building better teams.

Anyways, this is all for this edition. Keep visiting this space for more technical updates. Next time, I plan to write about user-interfaces and the general stagnation in the area.

See the previous edition of technology notes here:

No comments: