Code Complete

Steve McConnell


The foundation of your library could do worse than to start with Code Complete.  This book guides you from the basics of code convention and standards step by step through more advanced architectural comprehension.  Once you've read it cover to cover it will become an indispensable reference.

Many coders have used this book to elevate their knowledge above the basics of syntax.  You will be a more refined technologist and speak from a common understanding with other coders having read this book.

Fortunately,  for anyone with an interest in software development, Code Complete is an enjoyable read.  The concepts are challenging but are presented logically in an order that builds comprehension and isn't packed with dry, technical jargon.  This book helps you understand not just what to do but why you do it.

This is first on my list for beginning to build your library.

Scrum: The Art of Doing Twice the Work in Half the Time

Jeff Sutherland

For any modern development shop Agile is at least a consideration if not a way of life.  Developers have discovered the profound improvement it provides to them in productivity and quality and business has realized it delivers valuable software more predictably than traditional waterfall methods.  Scrum has become one of the key methodologies in Agile to formalize the concepts and provide a playbook for Agile teams.

Sutherland, one of the founding fathers of Agile and creator of Scrum, lays out the rules of engagement for Scrum teams and provides an explanation of what benefits teams implementing Scrum can expect in his book, Scrum: The Art of Doing Twice the Work in Half the Time.  Readers will gain a practical knowledge of Scrum that they can put into practice immediately to start delivering better, faster, cheaper software to their stakeholders.

If only to be able to speak the language of Agile and Scrum this book is a must for Software Development Professionals everywhere.

Design Patterns: Elements of Reusable Object-Oriented Software

Eric Gamma, Richard Helm, Ralph Johnson, John Vlissides

After building a foundation in Code Complete you can elevate your understanding of how systems can leverage proven solutions by reading Design Patterns: Elements of Reusable Object-Oriented Software.  This book is authored by the famous Gang of Four, and is often referred to as the GoF book.

Most seasoned software development professionals consider reading this book as a right of passage into maturity in your software development career.  The concepts aren't lightweight.  They are technical solutions to consistent problems that appear over and over again in software construction.  You will read and re-read the chapters in this book, each time gaining a better understanding of how to solve the problems you encounter in the real world.

Mastery of Design Patterns will come with time.  This book will provide the starting point to recognizing where they fit and why they solve the problems you encounter every day.

Software Estimation: Demystifying the Black Art

Steve McConnell

The second book on my top five list authored by Steve McConnell, Software Estimation: Demystifying the Black Art will open your eyes to just how difficult estimation is and how bad we as humans are at it.  What we are better at is relative estimation.  McConnell demonstrates this early on in the book laying the groundwork for strategies that work when estimating.

Instead of providing estimates that are little more than guesses this book shows you how to estimate what you know and understand the margin of error that exists depending on where you are in the life of the project.

One of my favorite concepts introduced in this book is the “Cone of Uncertainty”.  It is simple to grasp and enlightening.  This book won't grant you estimation super powers but it will give you the tools to need to communicate more effectively with stakeholders when talking about duration and delivery of your software.

The Goal: A Process of Ongoing Improvement

Eliyahu M. Goldratt

What is The Goal of every business?  It may not be what you think.  This fictionalized parable follows the main character Alex Rogo as he struggles valiantly so save his plant.  The secret weapon in his arsenal?  The knowledge of the Theory of Contraints taught to him and his team by his professor and mentor Jonah.

Although this isn't your typical, step by step process manual it does teach the concepts of continuous improvement in a logical and in my  opinion, entertaining way.

You will at times feel like you've stepped into a time machine and been whisked back to the eighties but the concepts hold true even today.  You will be impressed by how much you learn from this story of struggle to improve and excel.

Summary

Any one of these books will provide you with expanded knowledge and capability.  All five will give you a solid library that will have you well on your way to the next level as a Software Development Professional.

Question

What are your top five books?  Post them in the comments below or join my #Slack team to discuss in real time.