Foreword

I believe it takes a certain kind of psychology, a brand of will, to succeed in tackling technical debt and wrangling out-of-control code. I also believe that values should drive the selection of tools and practices and techniques. Through direct conversations over the course of a couple of years, I know that Kyle Baley and Donald Belcham share these values. They’re the kind of developers who embody and evangelize this way of thinking, and it’s apparent in the words you’re about to absorb.

A few values help guide you through working with legacy or unmanageable code-bases, times that are often frustrating or even dark: passion, patience, and collaboration. I’m certain there are more, but in the interest of keeping this foreword short and letting the content speak for itself, we’ll start here.

Passion is what drives the best developers to find and master new tools that work and inspire those around them to do the same. Developers who have a passion for crafting elegant, maintainable solutions and a drive for learning new techniques to do so are the best of the best. You might be one of these folks—after all, you’re reading this book.

Working with brownfield codebases requires a particular kind of passion; they tend to be chock-full of brain-teasing problems. It helps if you’re a developer who doesn’t mind getting her hands dirty. It helps if you’re the kind of developer who throws himself headlong into a mess, thriving on creating simple solutions to complicated problems. It helps if you can lead by example, motivating your fellow team members to bring new ideas and moves to the table. These examples are all expressions of passion.

Technical debt is a drag not only on your customer’s bottom line but on your will to live in a project community. Does anyone enjoy showing up at work and treading water for days, weeks, or months on end? Sometimes a codebase can seem so daunting and so hopeless, yet a rewrite is impossible due to political reasons, budgetary constraints, or a more insidious lack of long-term investment thinking. Chances are your customers won’t give you a blank check to do it right a second time, and you’ll be thrown into the fray of a brownfield project that’s supporting a successful revenue stream with a backlog of features with no end in sight. I hear this kind of story on the road all the time.

If this is your scenario, it helps to have patience, methodically finding areas where you can make improvements small and large. You might have to be patient with your project sponsors, building up trust that turns into influence that you can trade for permission to make more ambitious and systemic changes. You’ll have to exhibit patience when dealing with the more frustrating corners of the codebase; good leaders tend to have good attitudes, keeping morale steady, especially when the going gets tough.

Getting people aboard the improvement train is key. Collaborate with your customers and fellow developers, testers, and analysts to succeed and sustain a turnaround of unmaintainable code.

Business folks need to understand the long-term benefits of deep refactoring, restructuring, or rewriting; they’ll ultimately have to approve such efforts. Work with them to achieve consensus. Make the case with supporting data in terms they understand. Formulate a plan and communicate that plan early and often. People don’t enjoy being kept in the dark. Secrecy and unilateralism are not ways to build trust.

When you discover how to apply one of the techniques from this book (or any source) to a real-world problem, share it with your teammates. Build a doctrine over time that you can apply to similar debt items you find in the code. In my experience, true collaboration builds in a snowball effect: it only takes one leader on the team to get it rolling, and that might as well be you.

A couple of years ago, Donald and Kyle pulled me aside at a software development conference in Vancouver and asked me to review an outline for a book they were shopping around called Brownfield Application Development in .NET. Here we are in the present, and I’m wrapping up the foreword for that very book: this book!

So what can I say about the project and its authors almost two years later?

I’ll take this opportunity to congratulate my friends on their achievement: job well done, Donald and Kyle. I remember remarking on the promise of the outline and giving mostly picky, take-it-or-leave-it notes. My reaction was simple: “This book needs writing.” And, having read it, I’m not disappointed. I see it as a significant contribution to our craft.

Donald and Kyle have managed to assemble and describe an extremely useful and comprehensive bag of tricks that you can apply to your brownfield applications. Now when you get to it, remember to apply your new toolbox in the context of your value system: passion will inspire your teammates and supply you energy; patience will get you through the long stretches; collaboration will grow trust and accelerate improvement over time.

DAVID LARIBEE, AGILE COACH

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

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