"Wow, what can I say? Chapter 4, 'The Build Lab and Personnel,' by itself is enough justification to purchase the book! Vince is obviously a 'Dirty Finger Nails' build meister and there is a lot we can all learn from how he got them dirty! There are so many gems of wisdom throughout this book it's hard to know where to start describing them! It starts where SCM should start, at the end, and works its way forward. This book is a perfect complement to the 'Follow the Files' approach to SCM that I espouse. I will recommend that every software lead and software configuration management person I work with be required to read this book!"
—Bob Ventimiglia, autonomic logistics software configuration manager, Lockheed Martin Aeronautics
"The Build Master contains some truly new information; most of the chapters discuss points that many people in the industry don't have a full understanding of and need to know. It's written in a way that is easy to read and will help a reader fill holes in their vision regarding software build management. I especially liked Vince's use of Microsoft stories to make his points throughout the book. I will purchase the book and make certain chapters mandatory reading for my build manager consultants."
—Steve Konieczka, SCM consultant
"Vince does a great job of providing the details of an actual working build process. It can be very useful for those who must tackle this task within their own organization. Also the 'Microsoft Notes' found throughout the book provide a very keen insight into the workings of Microsoft. This alone is worth purchasing this book."
—Mario E. Moreira, author of Software Configuration Management Implementation Roadmap and columnist at CM Crossroads
"Software configuration management professionals will find this book presents practical ideas for managing code throughout the software development and deployment lifecycles. Drawing on lessons learned, the author provides real-world examples and solutions to help you avoid the traps and pitfalls common in today's environments that require advanced and elegant software controls."
—Sean W. Sides, senior technical configuration manager, Great-West Healthcare Information Systems
"If you think compiling your application is a build process, then this book is for you. Vince gives us a real look at the build process. With his extensive experience in the area at Microsoft, a reader will get a look in at the Microsoft machine and also how a mature build process should work. This is a must read for anyone doing serious software development."
—Jon Box, Microsoft regional director, ProTech Systems Group
"Did you ever wonder how Microsoft manages to ship increasingly complex software? In The Build Master, specialist Vince Maraia provides an insider's look."
—Bernard Vander Beken, software developer, jawn.net
"This book offers an interesting look into how Microsoft manages internal development of large projects and provides excellent insight into the kinds of build/SCM things you can do for your large-scale projects."
—Lance Johnston, vice president of Software Development, SCM Labs, Inc.
"The Build Master provides an interesting insight into how large software systems are built at Microsoft covering the set up of their build labs and the current and future tools used. The sections on security, globalization, and versioning were quite helpful as these areas tend to be overlooked."
—Chris Brown, ThoughtWorks, consultant
"The Build Master is a great read. Managing builds is crucial to the profitable delivery of high-quality software. Until now, the build process has been one of the least-understood stages of the entire development lifecycle. This book helps you implement a smoother, faster, more effective build process and use it to deliver better software."
—Robert J. Shimonski, Networking and Security Expert, http://www.rsnetworks.net
The first best-practice, start-to-finish guide for the software build process
Managing builds is crucial to the profitable delivery of high-quality software; however, the build process has been one of the least-understood stages of the entire development lifecycle. Now, one of Microsoft's leading software build experts introduces step-by-step best practices for maximizing the reliability, effectiveness, timeliness, quality, and security of every build you create.
Drawing on his extensive experience working with Microsoft's enterprise and development customers, Vincent Maraia covers all facets of the build process—introducing techniques that will work on any platform, on projects of any size. Maraia places software builds in context, showing how they integrate with configuration management, setup, and even customer support. Coverage includes
How Microsoft manages builds: process flows, check-in windows, reporting status, and more
Understanding developer and project builds, pre- and post-build steps, clean builds, incremental builds, continuous integration builds, and more
Choosing the right build tools for your projects
Configuring source trees and establishing your build environment—introducing Virtual Build Labs (VBLs)
Planning builds for multiple-site development projects or teams
Determining what should (and shouldn't) be kept under source control
Managing versioning, including build, file, and .NET assembly versions
Using automation as effectively as possible
Securing builds: a four layer approach—physical, tracking sources, binary/release bits assurance, and beyond
Builds powerfully impact every software professional: developers, architects, managers, project leaders, configuration specialists, testers, and release managers. Whatever your role, this book will help you implement a smoother, faster, more effective build process—and use it to deliver better software.
© Copyright Pearson Education. All rights reserved.
Table of Contents
- Praise for The Build Master
- What This Book Is About
- Defining Software Configuration Management
- Who Should Read This Book
- Assumptions Made on the Background of People Reading This Book
- How This Book Is Organized
- Get Stuck or Get Results. Period.
- What This Book Is Not About: Software Factories
- Updates and Contact Information
- About the Author
- In Appreciation and Acknowledgment
1. Defining a Build
- The Two Types of Builds: Developers and Project
- Building from the Inside Out
- More Important Build Definitions
- How Your Product Should Flow
- Microsoft Solution Framework
2. Source Tree Configuration for Multiple Sites and Parallel (Multi-Version) Development Work
- How This Process Works: An Example Using VSS
- Hatteras: A Look Into the Future of SCC at Microsoft
- 3. Daily, Not Nightly, Builds
- 4. The Build Lab and Personnel
5. Build Tools and Technologies
- First, Every Build Needs a Script
- Binary Generating Tools—Also Referred to Loosely as “Build Tools”
- “You Provide the Nose; We Provide the Grindstone”
- In Steps the 800-Pound Gorilla!
- XML Is the Here, the Now, and the Future
- What Build Tool Should You Be Using and When?
- 6. SNAP Builds—aka Integration Builds
- 7. The Build Environment
- Why Worry About Versioning?
- File Versioning
- Build Number
- Source Code Control Trees
- Should There Be Other Fields in the File Version Number?
- DLL or Executable Versions for .NET (Assembly Versions)
How Versioning Affects Setup
- Install the Correct Version of a Component for the Operating System and Locale
- Write Components to the Right Places
- Do Not Install Older Components Over Newer Ones
- ”Copy on Reboot” If Component Is in Use
- Register Components Correctly; Take Security into Account
- Copy Any Component That You Overwrite
- Redistribute a Self-Extracting EXE Rather Than Raw Components
- Test Setup on Real-World Systems
- Even Installing Correctly Does Not Always Work
- 9. Build Security
10. Building Managed Code
- The Official Definition of Managed Code
- What Is the CLR, and How Does It Relate to Managed Code?
- Managed Execution Process
- The Definition of Assemblies As It Pertains to the .NET Framework
- Delay Signing and When to Use It
- One Solution or Many Solution Files?
- 11. International Builds
- 12. Build Verification Tests and Smoke Tests
- 13. Building Setup
- 14. Ship It!
- 15. Customer Service and Support
- 16. Managing Hotfixes and Service Packs
17. 7 Suggestions to Change Your Corporate or Group Culture
- What Is Corporate Culture?
- It Starts at the Top
- When All Else Fails...
- Don’t Go Gipper...
- Nasa Columbia and Challenger Disasters: When Management Pulls Rank and There Is a Big Disconnect Between the Manager’s View and the Engineer’s View
- 18. Future Build Tools from Microsoft
- A. Embedded Builds
- B. Extreme Programming
C. Testing Guide
Test Guide: A Compilation from the Developer Division at Microsoft
- File Tests: Does Your Code Rely on Files?
- File Paths: Are File Paths Ever Given As Input to Your Program?
- Input from Registry: Is the Registry Used to Store or Retrieve Information?
- Strings: Do You Input Strings into Your Application?
- Numeric Values: Does Your Program Take Numeric Values for Input?
- What Inputs Does Your Web Application Take?
- Network Connectivity Tests: Are You Connected to a LAN or WAN?
- General Advice
- Test Guide: A Compilation from the Developer Division at Microsoft
- D. Debug Symbols
- Final Thoughts
- Title: Build Master, The: Microsoft’s Software Configuration Management Best Practices
- Release date: September 2005
- Publisher(s): Addison-Wesley Professional
- ISBN: 0321332059