How we did it:
For any feedback, any questions, any notes or just for chat - feel free to follow us on social networks
Michael C. Feathers
The average book on Agile software development describes a fairyland of greenfield projects, with wall-to-wall tests that run after every few edits, and clean & simple source code.
The average software project, in our industry, was written under some aspect of code-and-fix, and without automated unit tests. And we can't just throw this code away; it represents a significant effort debugging and maintaining. It contains many latent requirements decisions. Just as Agile processes are incremental, Agile adoption must be incremental too. No more throwing away code just because it looked at us funny.
Mike begins his book with a very diplomatic definition of "Legacy". I'l skip ahead to the undiplomatic version: Legacy code is code without unit tests.
Before cleaning that code up, and before adding new features and removing bugs, such code must be de-legacified. It needs unit tests.
To add unit tests, you must change the code. To change the code, you need unit tests to show how safe your change was.
The core of the book is a cookbook of recipes to conduct various careful attacks. Each presents a particular problem, and a relatively safe way to migrate the code towards tests.
Code undergoing this migration will begin to experience the benefits of unit tests, and these benefits will incrementally make new tests easier to write. These efforts will make aspects of a legacy codebase easy to change.
It's an unfortunate commentary on the state of our programming industry how much we need this book.
Silverlight 4 has the potential to revolutionize the way we build business applications. With its flexibility, web deployment, cross-platform capabilities, rich .NET language support on the client, rich user interface control set, small runtime, and more, it comes close to the perfect platform in which to build business applications. It’s a very powerful technology, and despite its youth, it’s moving forward at a rapid pace and is gaining widespread adoption. This book will guide you through the process of designing and developing enterprise-strength business applications in Silverlight 4 and C#. You will learn how to take advantage of the power of Silverlight to develop rich and robust business applications, from getting started to deployment, and everything in between. In particular, this book will serve developers who want to learn how to design business applications, and introduce the patterns to use, the issues that you’ll face, and how to resolve them. Chris Anderson, who has been building line-of-business applications for years, demonstrates his experience through a candid presentation of how to tackle real-life issues, rather than just avoid them. Developers will benefit from his hard-won expertise through business application design patterns that he shares throughout the book. With this book in hand, you will Create a fully functional business application in Silverlight Discover how to satisfy all of the general requirements that most business applications need Develop a business application framework