Chapter 8: Microsoft Solutions Framework


Chapter 8

Microsoft Solutions Framework

Up until now, this book has focused on the tools that Microsoft® Visual Studio® 2005 Team System offers for managing the software development process. Let's step back now and take a closer look at the process itself. Regardless of team or project, every software development effort goes through a sequence of activities to produce a product. This sequence of activities is commonly referred to as the software development life cycle (SDLC).

Visual Studio 2005 Team System acts as a powerful engine for managing your SDLC. This extremely flexible tool can be configured to support a variety of software development processes. This flexibility is essential, but it requires you to make important choices about how you want to configure and use Team System. If Team System were a jet aircraft, the question would be, “How do I fly this thing?” This is where the Microsoft Solutions Framework (MSF) comes in. It's a flight manual. More accurately, MSF helps you solve a common problem: “How do I build and deliver my product within schedule and budget?”

The Microsoft Solutions Framework (MSF) version 4.0 is a metamodel for describing an SDLC. This framework can be instantiated into one or more prescriptive methodologies (or processes) that reflect the specific needs of your organization. We'll explore what this means in a moment. But first let's give it some historical perspective.

MSF is the product of an evolutionary process. First introduced in 1994 as a collection of best practices from Microsoft product-development efforts and Microsoft Consulting Services engagements, MSF has evolved based on lessons learned from successful, real-world experiences of Microsoft product groups, Microsoft Services, the Microsoft internal Operations and Technology Group (OTG), Microsoft partners, and customers.

Now a robust and mature framework, MSF is managed and developed by a dedicated product team within Microsoft, with guidance and review from an international advisory council of subject matter experts. MSF continues to draw upon current Microsoft experience. Teams within various Microsoft lines of business regularly create, find, and share best practices and tools internally. The knowledge gained from these internal project efforts are consolidated and distributed outside of Microsoft through MSF.

MSF and Team System

Software development teams often perceive software development methodologies as an impediment to productivity. Usually this perception occurs because the team must deal with poorly integrated tools that were never meant to support the methodology. As a result, the developers struggle with the methodology and come to view the additional effort as an unproductive waste of time. Visual Studio Team System addresses these realities with a set of integrated process tools that can be easily configured to match the methodology.

With the introduction of Visual Studio Team System, Microsoft provides your development team with a powerful set of tools for managing the entire software development life cycle, from initial planning to deployment. Visual Studio Team System extends the Visual Studio integrated development environment (IDE) with a set of tools for workflow management, architectural design, software testing, version control of source files, data collection, and metrics reporting.

Although MSF offered many useful best practices for the software development process, it became clear that the true value could not be realized without proper integration of the tools required to enact the process. Now that you have this powerful new suite of tools, how does your development team make the best use of it? This is where the MSF comes in.

Each MSF process template for Visual Studio Team System includes work item tracking, security settings, process guidance, process reports, source check-in policies, document templates, and a Microsoft Windows® SharePoint® Services (WSS) site template configured to support the MSF processes.

Visual Studio Team System comes with two MSF process templates: MSF for Agile Software Development and MSF for CMMI Process Improvement. MSF for Agile Software Development is geared toward an adaptive process for smaller teams that don't require a great deal of ceremony. MSF for CMMI Process Improvement, however, is geared toward a refinement process for larger teams that require a more structured approach. Both versions of MSF are based on a highly iterative, adaptive, agile software development process. The main difference is that MSF for CMMI Process Improvement meets the requirements for the Software Engineering Institute's (SEI) Capability Maturity Model Integration (CMMI) Level 3 and provides a smooth transition all the way to Level 5.

Agile development methods have proven the test of time. Agile methods delivers superior results in less time through short development cycles, pervasive unit testing, continuous integration, and most importantly, a strong focus on the customer. MSF 4.0 builds on proven agile development techniques by being the first agile methodology that covers the entire software development life cycle and all the team roles. Also, MSF 4.0 is the first methodology to implement CMMI by combining agility with formal quality assurance.

Choosing a Process Template

If your organization does not have an established software development methodology, your best bet is to use one of the pre-built Visual Studio Team System process templates. Although Visual Studio Team System includes the MSF process templates in the box, you can choose from a variety of other process templates developed by Microsoft partners. Third-party templates include the following:

  • Avenade Connected Methods—dAvanade Inc.

  • Feature Driven Design—Cognizant Technology Solutions

  • Scrum—Conchango

NOTE
Remember, too, that you can also modify an existing template or create your own.

Perhaps your organization has invested in developing its own methodology. Visual Studio Team System protects that investment by enabling you to create a custom process template that expresses your organization's methodology. Be sure to read Chapter 9 for more information.

Whether you start with a prebuilt template or a custom template, Visual Studio 2005 Team System builds on your investment by enabling your organization to update the process template, at the end of the project, based on lessons learned. At project conclusion you can roll all of the important changes back into the original template. You can then use this new, altered template on future projects.

NOTE
On longer projects, the development team might decide to make midcourse corrections to the methodology. If this is required, and depending upon the level of change required, you may need to start a new team project, after having altered the methodology template. Branching from the old project's source code might be an option in this case.



Working with Microsoft Visual Studio 2005 Team System
Working with Microsoft Visual Studio 2005 Team System (Pro-Developer)
ISBN: 0735621853
EAN: 2147483647
Year: 2006
Pages: 97

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net