2.5, 3.0, 3.5, 4.0, 4.5 (also known as ratings, the review system, the curve)
Microsoft’s old rating system, which was changed in the spring of 2006. Ratings of 2.5 and 3.0 were undesirable. Ratings of 4.0 and 4.5 were highly desirable. A 3.5 rating was readily accepted and the most common.
BillG, or Bill
Bill Gates, the Chief Software Architect and Chairman of the Board of Microsoft.
black box testing
Testing that treats the product as a black box. You don’t have any access to or knowledge of the internal workings, so you probe it like a customer would—you use it and abuse it till it breaks.
BrianV, or Brian Valentine
Brian Valentine, former Microsoft senior vice president of the core Windows division.
buddy drop (also known as private build or buddy build)
A private build of a product used to verify code changes before they have been checked into the main code base.
bug, or work item
Internally, we use the term bug to refer to anything we want to add, delete, or change about a product, what most people generally call a work item. Naturally, this includes code mistakes, the more traditional kind of “bug.”
Build Verification Test (BVT)
Checks whether a software build satisfies a set of requirements.
Career Stage Profile (CSP)
Detailed descriptions of the work expected of employees at different career stages for different disciplines. CSPs also outline individual contributor and manager growth paths.
CodeBox (also Toolbox or CodePlex)
A repository for shared tools and code. CodeBox is an internal code-sharing repository. Toolbox is an internal repository, mostly focused on tools and scripts. CodePlex is an external code-sharing repository.
The stage at which the developer believes all the code necessary to implement a feature has been checked into source control. Often this is a judgment call, but on better teams it’s actually measured based on quality criteria (at which point it’s often called “feature complete”).
dogfooding (also known as “eating your own dogfood”)
The practice of using prerelease builds of products for day-to-day work. It encourages teams to make products correctly from the start, and it provides early feedback on the products’ value and usability.
external bug, or external
A bug in code not owned by the team. These bugs should never be ignored unless there is a straightforward workaround.
A self-contained collection of functionality needed to provide incremental value to a product. Although features can be large, ideally a feature is work broken down to the point of requiring no more than five weeks of effort to design, develop, and test.
A small, cross-discipline team tasked with a single feature, or closely related small features, to design, spec, develop, and test together from start to finish. Feature Crews are typically virtual teams: the team members don’t all report to the same manager.
Project dates that organizations (from 50 through 5,000 people) use to synchronize their work and review project plans. The term milestone is also used to refer to the work time between milestone dates. Milestone durations vary from team to team and product to product. Typically, they range from 6 to 12 weeks each. Calling a “milestone” a “sprint” does disservice to both terms.
PREfast, or Code Analysis for C/C++
PREfast is a static analysis tool for the C and C++ programming languages that identifies suspect coding patterns that might lead to buffer overruns or other serious programming errors. Though initially used only internally, it recently shipped as part of Visual Studio 2005.
Product Unit Manager (also known as PUM, Group Manager, Director)
The first level of multidisciplinary management. Typically, the PUM is in charge of a self-contained collection of functionality, such as Excel, DirectX, or ActiveSync.
program management, or program manager (PM)
The engineering discipline primarily responsible for specifying the end-user experience, including the overall project schedule, which determines when that experience will release.
project, or release
The entire collection of work necessary to release a specific version or service pack of a product.
RAID (related terms include Product Studio, bug database, work item database)
RAID is a database and client for tracking work items, which can include feature work, bug reports, and design change requests.
Short for “reorganization.” Typically, a reorg starts at the top and works its way down over a period of 9 to 18 months.
RDQ, or PSQ
A work item database query used to determine the state of work for a project.
A description of an end user accomplishing a task that may or may not be implemented in the current product. Scenarios typically involve using multiple features.
Software Development Engineer (SDE)
A software developer. This refers to the people who write the code and construct the customer experience.
Source Depot, or source control
Our large-scale source control system that manages hundreds of millions of lines of source code and tools, including version control and branching.
Documentation that specifies how a product should be experienced, constructed, tested, or deployed.
SQM (also known as Software Quality Metrics, Customer Experience Improvement Program)
SQM is the internal name for the technology behind customer experience improvement programs for MSN, Office, Windows Vista, and other applications. These programs anonymously aggregate customer usage patterns and experiences. (Please join when you install our software; it lets us know what works and what doesn’t.)
SteveB, or Steve
Steve Balmer, the Chief Executive Officer (CEO) of Microsoft.
A mnemonic device to help people remember the different kinds of security threats: spoofing, tampering, repudiation, information disclosure, denial of service, and elevation of privilege. Writing Secure Code by Michael Howard and David LeBlanc (Microsoft Press, 2002) has all the details.
Test-Driven Development (TDD)
An Agile methodology in which developers write tests for code before the code is written.
Toolbox (also CodeBox or CodePlex)
A repository for shared tools and code. Toolbox is an internal repository, mostly focused on tools and scripts, not code. CodeBox is an internal code-sharing repository. CodePlex is an external code-sharing repository.
triage (also known as bug triage or issue management)
A regular meeting toward the end of development cycles to manage issues. Typically, these meetings are attended by representatives from the three primary engineering disciplines: program management, development, and test.
Trustworthy Computing (TwC)
The Microsoft initiative on security, privacy, reliability, and sound business practices.
User Experience (UX)
Refers to the User Experience discipline, which includes mostly designers and usability experts.
Watson (also known as Crash Watson or Windows Error Reporting)
Watson is the internal name for the functionality behind the Send Error Report dialog box you see when an application running on Windows crashes. (Always send it; we truly do pay attention.)
Each “Watson bucket” represents and stores a customer issue that thousands, sometimes millions, of customers have experienced. Engineers inside and outside of Microsoft can query which buckets came from issues in their software.
white box testing
Testing that uses instrumentation to automatically and systematically test every aspect of the product. Microsoft is steadily replacing its black box testing with white box testing.
zero bug bounce (ZBB)
The first moment in a project when all features are complete and every work item is resolved. This moment rarely lasts very long. Often within an hour, a new issue arises through extended system testing and the team goes back to work. Nevertheless, ZBB means the end is predictably within sight.