Foreword by Anutthara Bharadwaj
The software industry has gone through a rapid evolution over the past few years with product requirements becoming increasingly sophisticated and customer expectation around delivery time getting shorter. Shipping software faster is an aspiration that all of us in software development teams universally harbor. The ability to provide uninterrupted flow of customer value from inception to production sounds like magic. Doesn’t it? Well, it no longer has to be. Over the years, there have been several examples of teams reaching the near Zen-like state of continuous delivery using some simple and fundamental principles of releasing software.
This book covers those principles in detail and more importantly shows the application of those principles in a real world scenario. It walks through the journey of a software development team striving to realize a goal that is universal in nature—ship products on time, within budget. If you have ever been part of a software development team trying to get better at shipping software, I am sure you will find yourself nodding your head at the situations they encounter along the way.
Cultural change is the most important and challenging part of bringing your teams together to deliver quality software faster. It may sound cliché, but the biggest enemy here is the silos we build in our teams in the hope of optimizing for efficiency. Building software is a team sport. We need to acknowledge that and act in ways that reinforce the same. Bringing together development, QA and operations teams on a shared goal but seemingly contrary requirements is a critical part of making this change successful.
Once the team is set up to operate in a friction-free manner, tooling is the next most important piece of the puzzle. Having all team members speak a common language, focus on a common set of metrics, and plugged into a common system that helps visualize progress on the shared goal is key.
Visual Studio 2012 provides developers a powerful toolset to set up a simple, integrated continuous delivery pipeline to manage software releases. Starting from problem definition and visualization to orchestrating the release through various stages, automating the whole process for efficiency and finally releasing high quality software, the Visual Studio product line has tooling to accomplish each of these steps easily and efficiently.
Like all things in the high-tech industry, Visual Studio has undergone rapid and significant changes in the release management toolset available with it. The book uses Visual Studio 2012 as the toolset illustrated, but the newly released Visual Studio 2013 works equally well, in fact better, for the examples given in the book. I strongly recommend you do the labs and exercises in the book as you read each chapter to fully appreciate the essence of the exercises
As you trace through the struggles of the Trey research team and how they overcome challenges at each stage to successfully deliver on their project, do reflect on similar situations on your team and explore ways to apply the insight you received from reading this book. If it takes you one step closer in reality on your path to shipping great software faster, the authors would have successfully accomplished what they set out to do.
Anutthara Bharadwaj
Principal Group Program Manager, Visual Studio ALM