Foreword

I remember meeting Uncle Bob in the spring of 2003, soon after Scrum was introduced to our company and technology teams. As a skeptical, fledgling ScrumMaster, I remember listening to Bob teach us about TDD and a little tool called FitNesse, and I remember thinking to myself, “Why would we ever write test cases that fail first? Doesn’t testing come after coding?” I often walked away scratching my head, as did many of my team members, and yet to this day I distinctly remember Bob’s palpable exuberance for code craftsmanship like it was only yesterday. I recall his directness one day as he was looking at our bug backlog and asking us why on earth we would make such poor decisions about software systems that we did not in fact own—“These systems are company assets, not your own personal assets.” His passion piqued our curiosity, and a year and half later we had refactored our way to about 80 percent automated test coverage and a clean codebase that made pivoting much easier, resulting in much happier customers—and happier teams. We moved lightning fast after that, wielding our definition of done like armor to protect us from the always-lurking code goblins; we had learned, in essence, how to protect us from ourselves. Over time, we developed a warmth for Uncle Bob, who came to truly feel like an uncle to us—a warm, determined, and courageous man who would over time help us learn to stand up for ourselves and do what was right. While some kids’ Uncle Bobs taught them how to ride bicycles or fish, our Uncle Bob taught us to not compromise our integrity—and to this day, the ability and desire to show up to every situation with courage and curiosity has been the best lesson of my career.

I brought Bob’s early lessons with me on my journey as I ventured into the world as an agile coach and quickly observed for myself that the best product development teams figured out how to package up their own best practices for their unique contexts, for their particular customers, in their respective industries. I remembered Bob’s lessons when I observed that the best development tools in the world were only as good as their human operators—the teams who would figure out the best applications of those tools within their own domains. I observed that, sure, teams can reach high percentages of unit test coverage to check the box and meet the metric, only to find that a large percentage of those tests are flaky—metric was met, but value was not delivered. The best teams didn’t really need to care about metrics; they had purpose, discipline, pride, and responsibility—and the metrics in every case spoke for themselves. Clean Craftsmanship weaves all of these lessons and principles into practical code examples and experiences to illustrate the difference between writing something to meet a deadline versus actually building something sustainable for the future.

Clean Craftsmanship reminds us to never settle for less, to walk the earth with fearless competence. This book, like an old friend, will remind you of what matters, what works, what doesn’t, what creates risk, what diminishes it. These lessons are timeless. You may find that you already practice some of the techniques contained within, and I bet you’ll find something new, or at least something that you dropped because at some point you caved to deadlines or other pressures in your career. If you are new to the development world—whether in business or technology—you will learn from the very best, and even the most practiced and battle weary will find ways to improve themselves. Perhaps this book will help you find your passion again, renew your desire to improve your craft, or rededicate your energy to the search for perfection, regardless of the impediments on your horizon.

Software developers rule the world, and Uncle Bob is here again to remind us of the professional discipline of those with such power. He picks up where he left off with Clean Code; because software developers literally write the rules of humankind, Uncle Bob reminds us that we must practice a strict code of ethics, a responsibility to know what the code does, how people use it, and where it breaks. Software mistakes cost people their livelihoods—and their lives. Software influences the way we think, the decisions we make, and as a result of artificial intelligence and predictive analytics, it influences social and herd behavior. Therefore, we must be responsible and act with great care and empathy—the health and well-being of people depend on it. Uncle Bob helps us face this responsibility and become the professionals that our society expects, and demands, that we be.

As the Agile Manifesto nears its twentieth birthday at the writing of this foreword, this book is a perfect opportunity to go back to basics: a timely and humble reminder of the ever-increasing complexity of our programmatic world and how we owe it to the legacy of humankind—and to ourselves—to practice ethical development. Take your time reading Clean Craftsmanship. Let the principles seep into you. Practice them. Improve them. Mentor others. Keep this book on your go-to bookshelf. Let this book be your old friend—your Uncle Bob, your guide—as you make your way through this world with curiosity and courage.

—Stacia Heimgartner Viscardi, CST & Agile Mentor

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.216.239.46