Code Complete - Steve McConnell - ISBN 1-55615-484-4

Billed as "A practical handbook of software construction" this book can be easy dismissed by the fact it's published by Microsoft Press, and, well, what do Microsoft know about writing software? The problem is, of course, this book is very good. Practical tips, garnered from various software development projects, not just from within Microsoft, and put together in a easy to read, if somewhat dry style.

Chapters are well laid out and reasonably self contained, so it is easy to pick the areas which relate to your current problem. The book is not language or OS specific, and anyone who is having to make the uneasy transition from developer to project lead should grab a copy quickly.

Besides the book by Steve McConnell billed above, Code Complete is the general industry term designated in the software development process when the implementation of new features, and the checking in of new code is final. This is not to be mistaken for when a product is "golden". A Code Complete project is only being bug-fixed before its release out into the public.

Code Complete is really the climax of the development cycle. It is the hardest point to get to, and all that is left is the final testing, and release process.

Having just finished reading Steve McConnell's Code Complete for the second time, a few comments.

Though I have not read any of the books on Steve McConnell's top 10, Code Complete is on my top 10 programming texts, along with The Mythical man-month, Design Patterns and Martin Fowler's Refactoring.

For me the meat of the book is in the middle chapters, and it is worth slogging through the vaguer early parts to get at it.

Code Complete deals with the day-to-day practice of coding, and addresses it at a low level. It is useful because there really are no other comprehensive texts that aim squarely at that same area.

For instance, where else can you find discussions on how long a variable name should be, how long a procedure can be before it hinders readability and increases error rates, when not to use a while loop, and so on.

The only other work that I have seen that is close is Writing Solid Code, also on Microsoft press from the same era. I find "Writing Solid Code" less useful to me as it is more tightly focused on C programming, and spends much time on C language issues such as pointer errors. I don't write any C code, and so "Writing Solid Code" did not make my top 10. Code Complete, by contrast, deliberately gives examples in a variety of procedural programming languages.

If you are a new programmer, then Code Complete is worth a read to get you started on the good path. If you are a poor programmer, then it will help you lose poor habits, and develop good ones.

If you are a good programmer (of course you are, you know that you are above average!), then the book will help you polish your skills, and will provide you with reasons, and occasionally hard experimental data, to help you convince other people why your habits are superior.

IMHO, the main shortcoming of the book is that it betrays its origins in largely pre-OO programming mileau the early 1990s. Object-Oriented techniques are only briefly discussed, and one does not get the sense that OO is the mainstream programming paradigm. I guess it wasn't, then.

None of the examples are in java, in fact java is not even mentioned. I'm not a java bigot, but it is the most popular pure OO language these days, and often language of choice for teaching and for code examples. c++ doesn't get much airtime either, but c does.

Although good procedural coding forms the foundation of good OO programming, I would love to see an updated version of this book that forgoes the Fortan and Algol examples in favour of java, C++, Object Pascal, Python or other OO languages. He could even give code examples in Microsoft's new toy, C#, it would be equally valuable to demonstrate how the techniques apply in an OO design. Perhaps this would have brought the content into similar territory than the refactoring book, but it would be interesting and very valuable.

For practical software project management wisdom, you could try Steve McConnell's companion book Rapid Application Development, which is another of my 10 ten.

Update: The second edition of Code Complete, released in July 2004, addresses my issues with regards to Object-Oriented languages, and gives examples in java and C#.

Log in or registerto write something here or to contact authors.