Book Review: Code Complete

Code Complete: A Practical Handbook of Software Construction, by Steve McConnell

51jokj0md0l_sl500_bo2204203200_aa219_pisitb-sticker-dp-arrowtopright-24-23_sh20_ou01_.jpg

This was a great book. If you have been in software for a significant time you are likely to have picked up many of these habits already, assuming you have been around experienced engineers who have helped you cultivate your software capabilities. It is chock full of useful information that every engineer should know. While this is a sure career improver for new engineers it has information that could easily be digested and used by even the most experienced programmer.

Seminal book. Buy it.

Over the code

I realized a while back that I have grown tired of writing code. I still enjoy the design aspects of software and enjoy being involved in the software creation process. I just no longer care for the implementation aspect of the business. I haven’t written a line of code in probably three months. I haven’t written a significant portion of code in at least six months. And I’m happy.

My parents were both programmers so I got a very early introduction to software. I began by writing little programs, address books and the like, throughout childhood and high school. I then jumped into a data entry job, which I quickly figured out how to write a script to help automate. From there I never had a job where I didn’t write code. Until now.

My parents both ended up in management – my Dad has relatively recently returned to writing code. They both told me the same thing at one point or another: they just got tired of writing code and wanted something new. I believed them and figured that I would follow suit sooner or later.

About five years ago I was still pretty into writing code still but looking to the future I saw myself growing wary in the next five to seven years. My timing ended up being just right. About five years ago I started getting into more leadership roles – leading software teams while still having my hands in the code. Over that span I have slowly become more and more removed from the code until just a few months ago when I decided I was completely done with it. I am now in a role where I don’t write any code but still have a high level of involvement in the design and development processes.

I may still write about code and software practices here and there however, as is obvious by my post trends, they will become less frequent. I imagine that the main focus of my writings will continue to be business of software and economics, with a little bit of software sprinkled in here and there.

Yurtle the Turtle

One of my favorite books growing up, and now one of my daughter’s favorite books, is Yurtle the Turtle by Dr. Seuss. The story is of an arrogant turtle king who marvels at how wonderful he is and proclaims that he is the ruler of all that he can see. But things grow stale and Yurtle yearns to rule over more. He orders his turtle subjects to stand on one another’s backs to form a higher throne for him, allowing him to see and rule more. Throughout the story he keeps forcing more and more turtles to add to his throne so that he gets higher and higher. The entire time a single turtle, Mack on the bottom of the stack, keeps complaining that the turtles are all in pain because of Yurtle’s greed. Yurtle repeatedly silences Mack until Mack decides he’s had enough and decides to topple the throne, causing Yurtle to fall into the pond below. The story ends with Yurtle being king of the mud, “because that’s all he can see”.

As a child I vividly remembering this story being a life lesson in not allowing people to boss you around and walk all over you. The message I learned was that people should stand up for themselves and not allow their rights to be violated, no matter who is violating them. As an adult I still see this message but I also see the other side of the equation, especially as it relates to leadership.

As a leader you must keep in mind that people don’t have to follow you for any reason – even in business environments. As with Yurtle’s situation, the lowest person on the team can ultimately bring down the entire structure. Just because someone reports to you on the corporate structure doesn’t mean that they have to follow you. They can undermine your authority, complain to your superiors or HR, or even leave your team or the company. The relationship between leader and follower is a voluntary one. Always. The only benefit that corporate leaders are given is that they have a mandated reporting structure, allowing them more time to sway their potential followers whereas in non corporate situations the potential followers can leave much quicker if not immediately satiated.

As a leader it is natural to strive for personal and professional growth. However, if that growth comes at the sake of your followers it is just a matter of time before you are in for a tumultuous fall and find yourself being king of the mud.