Code Complete —09 May 2014
Recently I started reading Code Complete by Steve McConnell, the first book on the list. It was really hard to get started, for me. I was impatient. I thought it was going to be about hands-on coding techniques. I thought I could just dive in one day and start coding lightning fast the next. But it’s not like that at all. It sure has everything I imagined, but all that stuff is just a tiny, not so important piece of the big picture.
Here’s an excerpt from the chapter on Prerequisites, that was an eye-opener for me:
Building a software system is like any other project that takes people and money. If you’re building a house, you make architectural drawings and blueprints before you begin pounding nails. You’ll have the blueprints reviewed and approved before you pour any concrete. Having a technical plan counts just as much in software.
You don’t start decorating the Christmas tree until you’ve put it in the stand. You don’t start a fire until you’ve opened the flue. You don’t go on a long trip with an empty tank of gas. You don’t get dressed before you take a shower, and you don’t put your shoes on before you socks. You have to do things in the right order in software, too.
The book talks at length about the importance of doing prerequisites analyses before software construction, before even thinking a single line of code. For good reason: mistakes at this stage would have unimaginable costs later. It was hard to let go of my initial expectations about the book, but it was worth it. The logic is clear and undeniable. No more code-first-plan-along-the-way for me.
The book is long. And thick. It will take a while to get through it. I will surely quote concepts from it on this blog, as I progress. If you haven’t read it yet, I strongly urge you to start now!