Microsoft, a company built in part by catering to the needs of individual developers, has vastly expanded the breadth of its programming tools set with Visual Studio 2005 and, most particularly, the Visual Studio Team Server suite that holds the top spot in that product line. Many industry insiders believe that the VSTS will change the way development is done -- helping companies to create a process that focuses on the team finishing...
a software project, rather than 'rock star' programmers completing individual pieces of code.
Visual Studio Team Server includes tools for modeling software applications, static code analysis, unit testing, load testing and project management. It is, as its name implies, a server-based offering meant to complement Microsoft's Traditional Visual Studio desktop IDE.
A long time in the making – some pundits suggest work began on the product not long after then-independent modeling and test tool maker Rational was bought by IBM in late 2002 – Visual Studio Team Server's formal unveiling found disappointment in some quarters as its underlying Team Server Foundation software's general availability was delayed until early 2006.
"From the developer point of view, Visual Basic and Studio have been developer centric," said Jason McConnell, a Microsoft technical product manager for VSTS. "They focused on the development task itself."
"Now we are expanding out the Visual Studio family," said McConnell. "Rather than just having one standalone IDE, the developers will now have their IDEs connected to a back-end server. From the very beginning, they will have to connect to source control. Then we can add things like process enforcement into their day to day lives."
Other individuals in the organization, such as analysts and managers, will be able to run work item reports in order to get a sense of how many items are left outstanding, according to McConnell.
The goal is straightforward. "We can do a better job of predicting when the projects will be complete," he said.
VSTS promises team ecosystem
It is not all about Microsoft. Visual Studio Team System (VSTS) is a framework for integrating tools from multiple vendors into a single integrated interface. In the past, Microsoft had some limited tools for supporting teams, such as SourceSafe. VSTS comes with a basic framework for applications lifecycle management, but will also include hooks to allow best-of-breed components for various parts of the lifecycle to be used in a single interface for team development.
Melinda Ballou, an analyst with IDC, said, "Microsoft's goal with VSTS is to come up with an easy-to-use environment that enables developers to build the code and have a project structure with change management and testing all easily accessible within the IDE."
Microsoft has focused on building a suite from the ground up that is easier to use, she continued, whereas other companies in this field have purchased various capabilities and then integrated them into their suites. Some of the previous integrated team development suites in this area include tools from IBM Rational, Borland, and Compuware. [Ed.Note: Borland and Compuware are among thrid-party tools vendors pledged to link their products to VSTS.]
But it is true that the others got there first. Ballou noted that some of the other team development suites have a level of depth and functionality only available with a product that has been out for years.
"There will be things you can and can't do with VSTS," she said.
The early reports from the field are good. Ballou said early VSTS users were pleased with the integration between the different parts of the products, in which they create work tasks integrated in a repository aligned with a process. They also like the integration of the process with the methodology. She noted, "Often process and methodology are very separate."
Microsft's approach is broad, said Alan Stevens, and leaves room for other vendors. Stevens, a Visual Studio developer who helped co found NTeam, an open-source alternative to VSTS, said "The best of breed components was not the priority; it was the best of breed across the whole development lifecycle. For example, they don't have the best source control or bug tracking, but they were not trying to. What they are selling is the integration of the various pieces so there is no context switch."
Stevens pointed out that other tools used by Visual Studio developers would require developers to switch contexts in order to communicate programming progress. That puts extra overhead on already beleaguered developers. VSTS integration, he said, "provides a kind of automatic tracking so they don't have to manually tell the tester when [something is] complete."
"With Team System, I check in the code and get a list of work items. When that check item is resolved, it immediately e-mails the tester and they can begin testing," said Stevens.
VSTS will provide a rallying point for companies to integrate their best-of-breed lifecycle management tools around. Mike Sax, President of Sax.Net, said, "VSTS allows a community of third-party providers who provide team programming tools like bug tracking and testing to work together in this more complex solution."
This strategy differs from other vendors in this field that tried to do everything themselves. Sax explained, "In the past, we have seen companies like Borland and Rational provide a sizable piece of the puzzle, but one thing Microsoft knows more than anyone else is how to rally others."
Domain specific modeling
VSTS will bring the concept of software modeling to a much larger audience. It will also introduce a new set of tools outside the scope of the Universal Modeling Language (UML) that has previously been standardized by the industry. Microsoft has placed a significant bet here that managers and developers will accept a modeling alternative that is centered around a new concept known as Domain Specific Languages (DSL).
McConnell said, "We are not going down the UML path. First, the UML 2.0 spec is out now, and it is kind of like a generalized diagramming tool. We have found our customers want something more specific to creating applications and classes.
"The Class Designer will help you to visually map something out, so you can see how your classes inherit from a class hierarchy. It can help our developers base map our more complicated class hierarchies, and have a simple view of classes, and refactor those more easily," said McConnell.
"It will especially help for refactoring, where you break a class up, or may inherit from a different class that can drop properties and methods," he said.
"Behind the scenes, it is kept in sync with the class model," he continued, alluding to a trait of models -- that they are often out of synch with the actual code -- that has long been decried by developers.
This might be an opportunity for Microsoft to create a new de facto standard that gains significantly larger traction than UML owing the large base of Visual Studio developers. Matt Klassen, senior manager of product marketing at Borland, said, "The premise is that UML was never adopted. It was too complicated to use and Microsoft wanted to make it simpler to do modeling."
But in fact, UML has gained much ground. "The downside [of a Microsoft-only standard] is that anytime you put something out that is not a standard, it is new, so everyone has to learn it," said Borland's Klassen. "There will be Microsoft shops that go with the Microsoft notation, but there are hundreds of other shops that are doing Agile Modeling, and other formal adoptions using UML, and will have a lot vested in education. But they may want to do .Net development," he continued.
Meanwhile, Microsoft has worked to support the CMU's Capability Maturity Model Integration (CMMI) process standard within its new tools
Model for deployment
As part of the tools for modeling, Microsoft has developed DSLs tailored to various domains such as application design, logical infrastructure design and deployment design. The application design tool allows software architects to drag program parts onto a design surface and draw associations. The logical infrastructure designer shows how servers connect together. The deployment designer allows you to associate application artifacts like Web sites or services and map those to the physical representation of the services and do a validation. This is intended to address the age-old problem of developers "throwing software over the wall" to administrators who are hard pressed to make that software work in production.
Another DSL tool is the class designer, which helps programmer map out and build classes. Developers will have a choice of using either CMMI or Agile process for their modeling, said Chris Menegay, a trainer with Notion Solutions, which is offering Team system training.
In the end, the modeling tools might be completely hidden from the programmers, who could then be free to focus on the task of writing code rather than following the process. Menegay said, "Most people don't follow their process. They don't know it if it is working. As a developer you should not have to know the process, but you should be able to follow it. The only things you should have to worry about are the things assigned to you. The process is nothing more than doing things in a certain order. You can almost shut your brain off from a big picture perspective."
Simply deploying the MS tools will not necessarily make organizations develop better software. As industry expert Theresa Lanowitz, analyst, Gartner Group, noted "Until the process is codified in an organization, all of the tools in the world will not make you more successful in delivering highly optimized successful programs."
Show goes on
A key component of VSTS will be the server, which coordinates the activities among the different member of the development team. On first launch, the server component of VSTS will not be ready. However, the Beta 3 version of the server will be rolling out at the launch of VSTS, and will include a Go-Live license, enabling customers to upgrade when the first production version of the server is released.
Notions Solutions trainer Chris Menegay said, "We have customers today running the Beta 3 product in their production environment. There are some bugs in the Beta 3 product, but all of the ones I have seen are more annoying than show stoppers."
The software evolution that VSTS embodies is aimed in great part at larger companies, although it is said that smaller teams can benefit too. Pricing for the product already has caused some controversy for mid-sized and small-sized Windows developer teams. Still, analysts suggest that server-based tool sets that emphasize team collaboration are likely to grow in use, especially in a global economy that sees developer team members working at geographically dispersed locations.
Although life-cycle management tools have been available for years, IDC Analyst Melinda Ballou suggests that Microsoft's commitment in this arena will encourage more developers to take on team programming.
She said, "I think the market will expand after the launch. There will be commodizattion at the low to mid-end, but there will be some differentiation at the high end. For the bread-and-butter developer in the Microsoft world, this provides a very integrative collaborative environment for doing development and coordination with task management, project management, and integrated modeling."
Visual Studio 2005 Team System Learning Guide - SearchVB.com
This article originally appeared on SearchVB.com.