I once had a meeting with Rick LaPlante (General Manager, Visual Studio Team System) in which he talked about how the cost of software development today is not in line with the expected return on investment. This morning, I attended a breakfast seminar presented by Steve McConnell on The Business Case for Better Software Practices. I previously read the chapter with a similar title in his book, Professional Software Development (which is the Second Edition of After the Gold Rush). McConnell states that improved software practices do not offer what many organizations consider a compelling ROI (15 - 20%). Instead, investments in "...improved software practices provide returns ranging from 300 percent to 1,900 percent and average about 500 percent." The key to improving the ROI for software development is to improve software practices. McConnell cited several examples of organizations that are realizing such increases in ROI by employing better software practices.
In his presentation, McConnell provided five possibilities why he thinks more organizations aren't seeing such returns. I think I can encapsulate most of them by saying that most organizations focus on taking tactical (near-term) decisions at the expense of not taking strategic (long-term) ones. In today's presentation, McConnell pointed out that many of the factors that can increase ROI are not controlled at the project level. Instead, they're controlled at the organizational level. To bring about change at this level requires strategic undertakings that will not deliver immediate results within the scope of a few projects. In his book, McConnell cites a Software Engineering Institute (SEI) Process Maturity Profile from April 2003 that showed the median time it took 152 organizations to move from SW-CMM maturity level 1 to level 2 was 22 months, and 21 months for 176 organizations to move from level 2 to level 3.
For many years, Visual Studio has enabled a lot of organizations to adopt code-and-fix development, which some refer to as opportunistic development. Visual Studio provides developers with a tool that is optimized around coding and debugging. How often have you seen "quick" software projects run on just Visual Studio, Visual SourceSafe and e-mail? In McConnell's presentation, and in his book, he discusses the state of software practices. As he put it:
"Most people expect organizational effectiveness to be symmetrically distributed [see slide 6], with an equal number of effective and ineffective software organizations. The actual distribution of software effectiveness is asymmetric. Most organizations form much closer to the worst practice that to the best."
In McConnell's seminar, he provided a list of ways that teams can get started (based on the SEI's SW-CMM Level 2 key process areas) [see slide 35]. The lists includes requirements, project planning, project tracking, quality assurance and configuration management. Visual Studio Team System will address organizational effectiveness by providing tools and guidance in each of these areas. By equipping the entire software development team (architects, developers, testers, project managers, stake-holders, etc.) with an integrated set of software development life-cycle tools, Team System can help them move towards systematic, continuous improvement. With this improvement in software practices, organizations should eventually realize the same high returns associated with what McConnell calls "The Last Great Frontier".