Chapter 1
Introduction to Application Lifecycle Management with Visual Studio 2012
What's In This Chapter?
- Defining application lifecycle management
- Learning about the Visual Studio 2012 product family
- Understanding the structure of this book
In June of 1999, Microsoft started to re-evaluate how Visual Studio was being used as part of the software development process. Microsoft was continuing to serve the needs of an individual programmer through the highly productive code-focused rapid-application-development features of Visual Studio, but wasn't doing much to help programmers work together as a team. And what about software architectshow should they be working with the programming team? And testers? Project managers?
Many teams had begun to set up their own solutions using a mixture of third-party, in-house, and vendor-provided tools to address such challenges as version control, bug tracking, and team communications. But this mishmash of tools can be tricky to set up and maintain, and even more difficult to integrate. Microsoft sought to address this challenge by providing an integrated set of tools designed to address the needs of the entire software development team. Thus, Visual Studio Team System was born, and was first released with the Visual Studio 2005 product line.
At the heart of Team System, Team Foundation Server was created to provide a hub for all members of the development team to collaborate. Team Foundation Server is uniquely positioned from its predecessors across the industry by being the first tool of its kind built from the ground up to provide an integrated solution for many capabilities which had historically been offered as standalone tools. Team Foundation Server provides a unified solution for storing source code (along with a history of changes), work item tracking (which can include bugs, requirements, and so on), and automated builds. By providing a single solution with all of these capabilities, Microsoft delivered the ability to link all these artifacts for end-to-end traceability, reporting, process enforcement, and project management.
Team System also included client functionality, which surfaced in the various editions of Visual Studio development tools. Visual Studio seamlessly integrated with Team Foundation Server, but much of this tooling could also be used independently or with third-party source control solutions. Visual Studio Team System also introduced role-specific tooling that lived outside of the core Visual Studio development environment by recognizing that team members such as project managers are oftentimes more comfortable using tools such as Excel or Project, both of which could be used to manage and track work that lived in Team Foundation Server.
Team System was built from a foundation of tools and technologies that Microsoft had been using internally for many years to build some of the most complex software projects ever undertaken. Team System appealed not only to programmers, but to all members of the development teamarchitects, application developers, database developers, and project managers.
Three years later, Visual Studio 2008 Team System evolved from the previous version to include even more tools and functionality for all members of the project team to use. Two years after that, Visual Studio 2010 added even more functionality, including an entirely new set of tools for generalist testers (also referred to as manual testers), bringing a new audience of prospective users into the same set of tooling used by the rest of the team.
Application Lifecycle Management
Along with the release of Visual Studio 2010, Microsoft also stopped using the sub-brand Team System to describe these capabilities. Instead, Microsoft started referring to these tools as the application lifecycle management capabilities of Visual Studio. Application lifecycle management is a term that has gained momentum in the development industry to describe the way an application is managed from its conception, through its creation and deployment, to its eventual retirement.
It is important to note that application lifecycle management is a more comprehensive concept than its more popular predecessor, software development lifecycle (SDLC). SDLC is primarily focused on the core coding activities that comprise the creation of an application's life, beginning with a requirement for an application and ending when that application is built and delivered. Application lifecycle management recognizes that requirements aren't simply born out of thin air. They evolve based on business needs, or ideas for new opportunities, and stakeholders who are considered external to the development team may still play a role during the development of an application in helping to refine requirements and provide feedback on implementations. Application lifecycle management also recognizes that a development team's job isn't done the moment they hand off a finished application. The development team will likely be called upon to help troubleshoot the application when things go wrong in the production environment, or to create subsequent versions of the application based on feedback from users or analytics from the operations team. Visual Studio itself has matured over time to grow from being a tool targeted squarely at programmers during the software development lifecycle to becoming a true solution for end-to-end application lifecycle management.
Visual Studio 2012 Product Lineup
outlines the product lineup for Visual Studio 2012.
Visual Studio 2012 Product Lineup
Product Name | Description |
Microsoft Visual Studio Ultimate 2012 with MSDN | The comprehensive suite of application lifecycle management tools for software teams to help ensure quality results from design to deployment. |
Microsoft Visual Studio Premium 2012 with MSDN | A complete toolset to help developers deliver scalable, high-quality applications. |
Microsoft Visual Studio Professional 2012 with MSDN | The essential tool for basic development tasks to assist developers in implementing their ideas easily. |
Microsoft Visual Studio Test Professional 2012 with MSDN | The primary tool for manual and generalist testers who need to define and manage test cases, execute test runs, and file bugs. |
Microsoft Visual Studio Team Foundation Server 2012 | The server component for team development, version control, work item tracking, build automation, project management, lab management, and reporting. |
Microsoft Visual Studio Team Foundation Server Express 2012 | A free edition of Team Foundation Server that provides most of the same capabilities (including version control, work item tracking, and build automation) for a team of up to five users. |
Visual Studio Premium contains all the functionality of Visual Studio Professional, and Visual Studio Ultimate contains all the functionality of Visual Studio Premium. Visual Studio Premium and Ultimate also include all of the functionality available in Visual Studio Test Professional.
There are a few additional standalone tools and technologies that comprise the Visual Studio 2012 family that are not listed. For example, in Chapter 9 you learn about the new Microsoft Feedback Client, which stakeholders use to provide rich feedback about an application that is stored in Team Foundation Server. In Chapter 2, you learn about Team Explorer Everywhere, which Eclipse developers use to work with Team Foundation Server. You learn about these additional tools throughout this book, but showcases the primary products that Microsoft markets as part of the Visual Studio 2012 product family.