CC Intelligent Solutions (CCIS) used a mix of tools to support software development, which resulted in a drain on productivity, software quality issues, and suboptimal communication. The company addressed those issues with an application lifecycle management strategy enabled and supported by Microsoft® Visual Studio® Team System, which provides role-based tools for all members of the development team, combined with a centralized repository for project data. CCIS now is benefiting from a more consistent and streamlined application lifecycle, increased productivity, improved software quality, and better communication and reporting—all leading to increased customer satisfaction. Moreover, the company’s choice of tools enables it to get the most out of Microsoft software as an application platform.
CC Intelligent Solutions (CCIS) serves clients in both the private and public sectors, and has an exceptional track record developing IT solutions and applications for the U.S. military. The company is headquartered in Raleigh, North Carolina, where its facilities have a “top secret” military security clearance.
Of the company’s 85 employees, the majority are technical—developers, testers, and business analysts. Developers are divided into four or five project teams, which, on larger projects, are subdivided into feature teams. Most developers work at the company’s Raleigh office, although a few are embedded with clients in military operations areas such as Afghanistan. CCIS practices universal code ownership, with developers expected to be able to contribute to all components of a solution. Most projects are based on Microsoft® .NET technology, although CCIS also provides Java-based development services.
To deliver the level of responsiveness required by the U.S. military, CCIS follows an agile software development methodology, which is based on an iterative process of defining requirements, delivering code, adjusting requirements as a project matures, and frequent communication among project sponsors, developers, and users. “When developing military solutions, we can’t fail because it could put lives at risk,” says David Moye, Chief Technical Officer at CC Intelligent Solutions. “We stay responsive to client needs by embedding ourselves with them physically and by working in very short release cycles.”
In the past, CCIS used a mix of tools to support the development process, including the Microsoft Visual Studio® .NET Professional development system, Concurrent Versions System (CVS) for source code control, and SourceForge Enterprise Edition for managing requirements, work items, and defect tracking. That mixed tool set, however, did little to support and streamline adherence to agile development principles. Instead, it hampered team output and impeded communication.
Specific problems included:
- Lack of customization. SourceForge supported only predefined work item and defect types, preventing CCIS from customizing the software to support its own processes. Instead, CCIS had to use one work item type to mean something else—for example, using “tasks” to represent usage scenarios. Similarly, the solution provider had to use a single “defect” type for both coding errors and suboptimal functionality, a single “requirements” type for both sponsor requirements and user requirements, and so on.
- Limited reporting. Reporting functionality in SourceForge was minimal, thereby limiting visibility into project status, hampering communication with clients, and creating extra work for project managers when assembling status reports. “Project reporting and time-to-completion were based on personal estimates,” says Moye. “We tried to adopt burn-down charts to reflect progress made on development, but they required manually exporting data from SourceForge to a spreadsheet and massaging it to create the needed graphs.”
- No integration. Neither SourceForge nor CVS integrated with Visual Studio, forcing developers to constantly switch between tools—and preventing them from, for example, being able to associate a fixed defect or new feature with a set of changed files. “Things were great when coding within Visual Studio, but the developer experience fell apart when doing anything else because of all the stand-alone tools,” says Moye.
- Poor reliability. SourceForge ran on a Linux-based server computer, which would sometimes fail for no known reason and require a restart. “The Linux system was a disaster to support and maintain,” says Moye. “We spent hours per week just keeping it up and running. Even then, the performance of source code operations was pretty slow.”
CC Intelligent Solutions improved its adherence to agile development principles by adopting an application lifecycle management strategy enabled and supported by Microsoft Visual Studio Team System, which provides powerful role-based tools for all members of the development team, combined with a centralized repository for project data.
The key components of Visual Studio Team System that CCIS is using include:
- Microsoft Visual Studio Team System role-based editions, which provide tools tailored for each person’s role in the development group.
- Microsoft Visual Studio 2005 Team Suite, which combines features of the various role-based editions for use by the company’s software architects, who often play multiple roles.
- Microsoft Visual Studio 2005 Team Foundation Server, which provides a repository for all project data and deep visibility into all aspects of the application lifecycle.
“Now that we have the right tools, we’re thoroughly embracing the application lifecycle model,” says Moye. “We’ve abandoned SourceForge and CVS entirely, and haven’t regretted it at all.”
||One thing that immediately stood out about Team Foundation Server was its flexibility—specifically, the ability to customize work item types and other project artifacts to support our own way of working.
Chief Technical Officer, CC Intelligent Solutions
The company’s evaluation of Visual Studio Team System began in mid-2005, when Moye put source code for some active projects into Team Foundation Server. Within a few days, he was able to show both management and developers that it offered several key advantages over the company’s existing tool set. “One thing that immediately stood out about Team Foundation Server was its flexibility—specifically, the ability to customize work item types and other project artifacts to support our own way of working,” says Moye.
Another area that immediately caught Moye’s eye was the built-in reporting features of Team Foundation Server. “Up until then, we didn’t know what we were missing in the area of reporting,” says Moye. “Today we have real-time access to advanced graphical indicators of project health.”
Other immediately apparent benefits were the speed of source code control operations and their full traceability. “Increased speed is always nice, but the real benefit is in being able to associate files that are checked in with a specific feature request or work item—and to easily come back and view that information at a later time, such as when debugging,” Moye says.
Moye informally compared his evaluation of Visual Studio Team System with his knowledge of development environments for Java. “Eclipse has some good tools for text editing, compiling, and all that, but it offers little support for working as a team outside of source code control,” says Moye. “I’ve never seen Java-based tools that can come close to the capabilities we now have.”
Deployment into Production
After a one-month evaluation period, CCIS decided to move forward with Visual Studio Team Foundation Server. Soon after that, the company began using Visual Studio Team System for all Windows®-based software development.
As of September 2007, source code and other data for five active projects reside in Team Foundation Server, which runs on a Visionman custom-built server computer with the Windows Server® 2003 operating system, and is supported by a second Visionman server running Windows Server 2003 and Microsoft SQL Server™ 2005 database software. Approximately 50 people use one of the Visual Studio Team System client products—namely, Visual Studio 2005 Team Edition for Database Professionals, Visual Studio 2005 Team Edition for Software Developers, Visual Studio 2005 Team Edition for Software Testers, or Visual Studio 2005 Team Suite. Customers access the information in Team Foundation Server through its Web-based interface, as do developers who are located at customer sites and work remotely.
CCIS has done consulting work helping several other companies adopt Visual Studio Team Foundation Server—engagements in which Moye counsels clients to take a step-by-step approach to improvement. “We recommend that a company start with source code control, spend some time figuring out how they want their projects structured, and then start to adopt some of the other capabilities of Team Foundation Server,” says Moye. “In reading up on best practices, I found two resources that were especially useful: Brian Harry’s blog on the Microsoft Developer Network and Sam Guckenheimer’s book, Software Engineering with Microsoft Visual Studio Team System.”
By adopting a comprehensive strategy for application lifecycle management enabled and supported by Visual Studio Team System, CC Intelligent Solutions improved its adherence to the agile development principles that help make the company successful. Developers, testers, and project managers are now more productive; software quality has improved; and communication and collaboration are stronger, in turn leading to increased customer satisfaction. In addition, the move to new development tools is helping the company better capitalize on the reason that it does most development on Microsoft software: its strength as an application platform.
“Having a consistent strategy and tool set for application lifecycle management has changed our culture,” says Moye. “We do some development process consulting for other companies, and the first thing that we tell them is ‘Move to Visual Studio Team System—it’ll make your lives a lot easier.’”
Consistent and Streamlined Application Lifecycle
CCIS is using Visual Studio Team System to standardize and optimize the application lifecycle, resulting in a consistent environment where everyone does things the same way. The company was able to easily adapt the Microsoft Solutions Framework for Agile Software Development methodology template provided with Team Foundation Server, customizing it to support the way that CCIS works by decreasing the number of peer advocacy areas, adding new work item types, and so on. When combined with centralized data collection and reporting provided by Team Foundation Server, the customized template provides CCIS and its clients with real-time visibility into project status, including key performance and quality measures.
“Process distribution and enforcement is now built into the team experience, along with real-time reporting on how well we’re executing those processes,” says Moye. “As a result, we’re able to focus more on the business of developing software and spend less time fighting the tools that we use to do so. And when we need information, it’s now immediately available.”
Increased Team Productivity
All members of the CCIS development group are now more productive, including developers, testers, and project managers. “With all the information that developers need now at their fingertips, they’re at least 10 to 15 percent more productive,” says Moye. “Project managers are benefiting even more because they no longer need to generate reports by hand for our daily team meeting. In the past, it took a few hours each day to generate the data needed for the meeting. Now they can get the same information with just a few mouse clicks.
“And testers are more productive because they have a better idea of what to test in each build and because developers are now less likely to check in bad code thanks to the new quality-enhancing capabilities provided by Visual Studio Team System,” Moye adds.
Improved Software Quality
CCIS is delivering better software by catching problems earlier in the application lifecycle, and by improving the rate at which problems are found and corrected. Integrated analysis and profiling tools in Visual Studio Team System enable the detection of security and performance problems early in the lifecycle. “Static code analysis tools help us find things that don’t work before code is checked in, and have increased the quality of in-person code reviews by allowing us to spend that time looking at other things,” says Moye. “And the code profiling tools have been invaluable at isolating problem areas with respect to performance.”
When bugs do make it into the build, they are caught and corrected faster. CCIS now does “continuous integration” builds, where an automated build is done by Team Foundation Server each time code is checked in. Testers are provided with an automated e-mail notification, along with information on what has been changed, and can begin testing immediately. Similarly, developers are provided with e-mail notifications of the test results, or if the build has failed. “Every time someone checks in code, it kicks off a build and runs thousands of automated unit tests,” says Moye. “If developers check in bad code, they’ll know about it very quickly. It seems like we’re spending a lot less time fixing bugs today—and getting more done as a result.”
Better Collaboration and Communication
Having a central repository for all project data has significantly improved collaboration. Automated notifications tell people when a work item changes and when code is checked in. Code changes are traceable to work items, bugs, or feature requests, making it easier for people to work together on the same project. “Our universal code ownership approach helps avoid the ‘you’re in my code’ syndrome and reduces needed team sizes,” says Moye. “However, it can require extra coordination to keep from stepping on each others’ toes. Visual Studio Team System provides exactly that, allowing everyone on the team to be aware of what everyone else is doing.”
CCIS also is taking advantage of Visual Studio Team System to improve communication with clients, keeping them fully informed of project status, quality, and speed of delivery. “The first project to fully utilize Visual Studio Team System was FusionNet, a knowledge management solution that we developed for the Army,” says Moye. “At the time, Visual Studio Team System was still in beta, which was hard for our client to accept at first. One big selling point was improved visibility into the day-to-day workings of the project, which enabled the client to better track progress and know where its money was being spent.
“Since then, we’ve done at least two dozen iterations on the project—all with higher quality and better communication,” Moye adds. “Everyone is still under a lot of pressure to deliver, but today, when we go home, we know with a high level of certainty exactly where the project stands.”
Strong Application Platform
CCIS is an early adopter of the 2008 release of the Visual Studio development system, which will enable the company to capitalize even more on the strength of Microsoft software as an application platform. “We already have one project that we’re developing in Visual Studio 2008, which, together with other new software from Microsoft, gives us several powerful new capabilities as an application platform,” says Moye.
“Technology from Microsoft just keeps getting better and better,” Moye adds, “which is why it’s our application platform of choice.”
Microsoft Visual Studio 2005
Microsoft Visual Studio 2005 is the world’s most popular development environment for designing, developing, and testing next-generation Windows-based solutions and Web applications and services. By improving the development experience for Windows, the Web, mobile devices, and Microsoft Office, Visual Studio 2005 helps organizations deliver a variety of solutions more productively than ever before. Visual Studio Team System expands the product line with new software tools that enable greater communication and collaboration throughout the development life cycle. With Visual Studio 2005, businesses can deliver modern service-oriented solutions more efficiently.
For more information about Visual Studio 2005, go to:
For More Information
For more information about Microsoft products and services, call the Microsoft Sales Information Center at (800) 426-9400. In Canada, call the Microsoft Canada Information Centre at (877) 568-2495. Customers who are deaf or hard-of-hearing can reach Microsoft text telephone (TTY/TDD) services at (800) 892-5234 in the United States or (905) 568-9641 in Canada. Outside the 50 United States and Canada, please contact your local Microsoft subsidiary. To access information using the World Wide Web, go to:
For more information about CC Intelligent Solutions products and services, visit the Web site at: