6.3. MSF for Capability Maturity Model Integration (CMMI) Process Improvement

Unlike other industries, software development has been around for a relatively short time. On an automobile assembly line, we can easily predict how many vehicles will be produced on any given day. In turn, this predictability provides an automobile company with the ability to be able to forecast what the profits will be for any given year and how much they are progressing. Now let's apply these principles to software development. How can you determine how much time it will take to build a feature or release a product? The short answer is that most of us don't even try—the conventional approach is to create artificial time limits and to impose these time limits on your development team.

Unfortunately, this approach doesn't work. A specification on a piece of paper may look deceptively simple, but in implementation may require a great deal of overhead. For example, let's look at a simple three-word instruction such as "build a car." What exactly does this mean? You have to create a functioning model of a vehicle, engineer or procure thousands of parts (or build them from scratch if they don't exist), walk through the process of assembling the automobile piece by piece, test it extensively (for security, emissions, etc.) and hopefully at the end, you'll have a functioning vehicle. The process involves a ridiculous amount of complexity, yet it appears deceptively simple on paper.

If you look at current ...

Get Professional Team Foundation Server now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.