Books for software engineers and managers

Code Complete

A Practical Handbook of Software  Construction

by Steve McConnell

Categories:
Favorite,
Star Engineer,
New Engineer

Improving quality is the best way to ship  faster

Everything in my development and managerial career confirms the truth that improving quality decreases development cost and time.

But this concept is counterintuitive and often hard to grasp, especially for non-engineers.

I often use the metaphor of a two lane road. Quality represents a guard rail between opposing lanes. Without quality, you’re limited to about 40mph. But with a guard rail, you feel more confident and can drive both faster and safer.

Managing complexity is the most important technical  issue

Modern software is complex. There’s no getting around it.

How you manage that complexity often determines your success.

Your goal is two-fold. Minimize essential complexity and prevent accidental complexity from growing like a weed throughout your code and systems.

To improve the quality of software, focus on the construction process more than  testing

By including quality control mechanisms during the development process, you emphasize construction.

Conversely, by delaying quality control to a later stage, you emphasize testing.

I’m a firm believer in shifting left on quality. Addressing quality issues earlier in the process prevents expensive mistakes and rework.

Pair programming, code reviews, ad-hoc conversations – there are many ways to shift left on quality and nearly all of them enable your software engineering team to increase deployment frequency, thereby increasing customer value.

Readability wins in the long run and details like naming, formatting, and composition are the foundation of a maintainable  codebase

I can’t do this book justice in a mere comment. But this is THE book every engineer should read to learn the technical details of writing readable code. Naming conventions, formatting, function arguments, magic numbers, composition, it’s all covered here in great depth with practical examples.

Code Complete

How strongly do I recommend Code Complete?
9 / 10

Code Complete is my favorite book on readability. My second is Clean Code. Both books make excellent choices for engineering book clubs because they cover both low-level details and principles of software construction.

This book is long and the last few chapters may not feel particularly relevant. However, especially for junior engineers I highly recommend at least reading chapters 7, 11, 15, and 22-24 of Code Complete.