As the lone developer working for a large engineering
company, all of my training had been OTJ. It quickly became apparent that I
needed to find better ways to design, develop, and produce high quality software.
I began to read everything I could get my hands on about software, design,
usability, databases, design patterns, testing, and architecture. I was
particularly interested in design patterns. I had read several books on the
subject (my personal favorite being
Head
First Design Patterns), and was looking for new examples of the patterns I
had already begun putting into practice.
While browsing the shelves at a Barnes and Noble in Houston,
TX, I happened upon a book called
Agile
Principles, Patterns, and Practices in C# by Robert Martin. I did not
realize it at the time, but that book would forever change me as a software
developer (I read the book cover-to-cover that weekend).
This book is filled with a library of knowledge, but is
very well edited, removing the fluff and leaving the reader with only the white
meat. It often reads like the
Tao Te Ching, offering insight and wisdom that
must be reflected upon and internalized in small pieces before eagerly moving on. Each chapter is succinct and provides simple and
appropriate working examples that can be put to use in your own code or process
right away - but it does something more.
This book uses the principles as a jumping off point to
introduce deeper programming concepts (“code smells”, design pattern usage,
TDD, assembly and dependency management, and refactoring). Rather than a
comprehensive compendium of rules and dogma (although Robert Martin does
provide anecdotes and evidence to support his assertions), it provides a
blueprint for agile philosophy, and you the reader, are left to implement them
in the manner best suited for your circumstance.
I was profoundly affected and influenced by the substance of
this book and did not want the knowledge to end. It validated some of my
existing beliefs, gave new perspective to older ones, and provided me
an entirely new lexicon to pull from. The principles, concepts, and ideas
enumerated in this book form the basis of our core development philosophy at
Envoc.
Agile
Principles, Patterns, and Practices in C# can be purchased for about $60, and
it is worth every penny. Put in the time, effort, energy, and erudition necessary
to absorb the information contained within and you will have no choice but to become a
better developer and professional.