Couple of recent incidents triggered me to write this one. Few weeks ago, I met an old friend. A fellow software industry man. But unlike me, a people manager. As we shared our experiences in software development, my friend picked on my recently acquired MBA. Give me something to read, my friend demanded. I promised him this blog.
The second incident. A month ago I logged into my (almost) discarded yahoo-mail. And only valuable thing in that old mailbox is a folder with few musings from my early years as a software engineer. I opened the folder out of curiosity. One of the notes was titled Bewilderment. It was a list of processes, decisions and people’s actions that were totally counter-intuitive to me. At the end of the piece I had advised myself to study psychology to understand things!
Understanding Software Development
Over the years I have searched, read and re-read books which could broaden my understanding of this wonderful enterprise that we call software development. I broadly categorise these books into two groups:
- Those explaining team behaviour, challenges
- Those that throw light on individual behaviour and advise improvement.
And here is a short list of titles that I would highly recommend in these two categories -
- The Mythical Man Month by Dr. Fredrick Brooks Jr
- Adrenaline Junkies and Template Zombies by Tom DeMarco, Tim Lister et al
- The Inmates Are Running The Asylum by Alan Cooper
- Hackers and Painters by Paul Graham
- Dreaming In Code by Scott Rosenberg
- Beautiful Code articles by Brian Kerninghan, Charles Petzold, Douglas Crockford, Jeffrey Dean, Sanjay Ghemawat and many more super programmers
- The Productive Programmer by Neal Ford
When it comes to studying about project management, programmers and managers alike, do not necessarily get excited about reading books. Among the arguments I have heard include…
- Busy programmers and managers have enough on their hands to do… why add more?
- Don’t we all learn by doing things? This can be learnt only by doing
- Technology has changed (whatever that means!)
- Software is an odd-ball industry - too new for theoretical dissection
- Software is too fast-paced and full of change for a scientific analysis
- Better to spend time on technical books from career perspective (whatever that means!)
Deep down, I believe two things are absolutely critical for furthering of human cause - Books and Institutions. Neither should be undermined at the cost of other. And both are mutually dependent. A purposeful life would be one spent in either/both these endeavours.
To the arguments against studying of these books, all I can do is to offer a humble suggestion - as to what I have essentially learnt from them. These books, most importantly, have helped me to articulate the difficult situations I have found myself in during software projects. Both to myself and to others. How many of us can really explain our office scenario at home? To our friends in 5 minutes? But it is the self-articulation that is probably far more important. As project-people we often sense a pattern when things are going wrong (or right). The gut feeling. But it is difficult to understand why our gut says what it does. Let me give an example from my career. My first two jobs had been at large companies with thousands of employees. Each day was a routine - an hour’s drive to office, clear-cut tasks, well funded projects and large teams. My contributions often felt small and inconsequential. But it was not so also. My managers pointed this out often. So what was it that sometimes made me uneasy? The phrase that articulates that feeling most accurately is ‘Template Zombie’.
A Quick Roundup…
There is absolutely no way to give a quick and dirty summary of any of these books. I hold each one very highly and dearly. Worth reading multiple times. So all I do here is to share when you might want to read each one.
1.The Mythical Man Month
This is a brilliant book for anyone aspiring for a lifelong career in software (like me!). Fred Brooks charts the complete territory - from programming languages to organization to design-think. And provides superbly constructed scientific arguments and thesis for all propositions. My bewilderments of workings in a big organisation were considerably answered in this book.
Sample the Brooks law: Adding manpower to a late software project makes it later.
2. Adrenaline Junkies and Template Zombies
Are you making a switch from a big company to a startup? Or vice versa? From a big team to a small one? Or vice versa? If so, reading this book is highly advised.
3. The Inmates Are Running The Asylum
Design issues? Conflicts at workplace? Politics? You will find some delightful answers here.
4. Hackers And Painters
Long long ago, in my first year at work, a close friend who was a excellent mentor and a superb programmer told me something that I will never forget. Mimic'ing Amitabh Bachchan he said ‘duniya mein sirf doh tarah ke log hote hain… ek jo programming kar paate hain… our dusre woh jo programming nahin kar paate hain…’. This is a superb book if you feel like dwelling into that one!
5. Dreaming In Code
This delightful book is every bit worth carrying to a vacation.
6. Beautiful Code
An ideal present to a promising programmer. Such fascinating projects and such industrious engineers. Inspirational.
7. The Productive Programmer
Programming fast is a real skill. Programming productively and fast is an even greater skill. This is a nice self help book for all programmers who aspire to do that.
comments powered by Disqus