You are on page 1of 32

Visual Studio vNext:

Application Lifecycle Management


Improving the productivity and predictability of software construction for teams of all sizes

EV PR

CO IEW

ENT NT

On May 16, 2011 at TechEd North America Microsoft offered a glimpse of the future for Visual Studio Application Lifecycle Management tools. This whitepaper is designed to provide additional context and outline the problems we are setting out to solve, how they relate to problems we face as an industry and how, together, we can improve the effectiveness of the Application Lifecycle Management (ALM) process.

2011 Microsoft Corporation. All rights reserved. This document is provided as-is. Information and views expressed in this document, including URL and other Internet Web site references, may change without notice. You bear the risk of using it. 2 This document does not provide you with any legal rights to any intellectual property in any Microsoft product. You may copy and use this document for your internal, reference purposes.

Contents
Continuous Change in Stakeholder Expectations Modern Application Lifecycle Management Application Lifecycle Adapting to Market Forces Reducing Waste across the Lifecycle Embracing Agile Development Best Practices Visual Studio Application Lifecycle Management Laying the Foundation VS2005 & VS2008 Reducing Waste in Software Construction VS2010 Visual Studio vNext: Expanding Throughout the Lifecycle and Embracing New Participants Agile Planning Tools Lightweight Requirements Stakeholders Feedback Agile Quality Assurance Aligning Development with Operations Enhanced User Experience Closing 2 3 3 4 4 5 6 6 6 8 9 13 15 18 21 23 26

Continuous Change in Stakeholder Expectations


For the launch of Visual Studio 2010 the tag line was /* Life Runs on Code */. This was to emphasize that so many human activities are intertwined with software. The opportunities to create new experiences, which turn data into insight and transform ideas into action, have never been as abundant as they are now. However as an industry we continue to fall short of our full potential - the majority of money spent on information technology is not in the creation of new value for the user but instead in maintaining existing solutions, managing risk and addressing communication bottlenecks inherent in the process. This results in an inefficient use of resources and limits the ability to meet customer needs.

the majority of money spent on information technology is not in the creation of new value for the user The situation is amplified by the fact that stakeholders expect more from software

Over the years the industry has worked to improve the effectiveness and predictability of development. While the effectiveness of many parts of the software construction, support and maintenance process have undergone significant productivity enhancements, much of the progress has been made in silos of productivity. The vast majority of waste in the process is still in the handoffs and transitions across the lifecycle, these sources of waste have not yet been sufficiently addressed.

The situation is amplified by the fact that stakeholders expect more from software. With the transition to the cloud the expectation is that updates to production systems to occur in minutes not days or weeks, the user experience on consumer devices such as your mobile phone are expected for enterprise systems as well. We are in a stage of increasing demands across the team, which necessitates that we become more connected than in any time in the past.

Over the last five years Microsoft has been on a journey to help teams be as effective as possible and to tackle this broader set of issues. We have set out to create an Application Lifecycle Management offering which prioritizes:

Collaboration through integration across all roles in the team Timely and actionable feedback to reduce wasted effort Leveraging natural and appropriate tools for the task at hand Transparent and agile best practices to be adopted at will
At TechEd North America, we illustrated a number of scenarios that span Visual Studio vNext and a set of associated integrations. These scenarios improve the creation, maintenance and support of software solutions by focusing on improving the workflow across the entire team as well as and across the entire lifecycle. This whitepaper will provide additional context and outline the problems we are committed to resolving, how they relate to problems difficulties we face as an industry and how, together, we can improve the effectiveness of Application Lifecycle Management.

Modern Application Lifecycle Management


Traditional application lifecycle management approaches have made the assumption that the creation of software development projects is a straightforward and sequential process. The underlying assumption is that requirements can be understood easily and should be adequately defined up front, with resultant phases of the project executed upon this static baseline. However, this is almost never the case; its very difficult if not impossible to understand all of the requirements of a software development project up front. Unfortunately, many of the legacy approaches to Application Lifecycle Management fail to acknowledge this fact, causing teams to use ineffective collaboration tools that often fall short of success.

Application Lifecycle
Software should be viewed as a living asset, with the Application Lifecycle representing a continuum across the connected activities of a products lifetime, spanning: the identification of business needs, software construction, release management and monitoring, support and maintenance, through to the eventual retirement of the solution. Two flows are critical across the lifecycle which span multiple teams, roles and individuals: 1. concept to working systems shortening time to value, and 2. discovery of an issue to resolution lowering mean time to resolution An Application Lifecycle Management toolset must support these flows and accelerate the transitions between the development team and the operations team.

Figure 1 : Establishing a Flow between Development and Operations ALM As new requirements are established applications evolve. There is a tight connection between the development and operations team, wherever hand-offs exist there is potential for bottlenecks to occur.

DEVELOP

Product Backlog

Requirements

OPERATE

Sprint

Monitor

Operations Backlog
Working Software

Adapting to Market Forces


Almost all segments of the industry are being pushed to achieve more. Organizations of all sizes are grappling with a number of issues that demand they continue to mature their approach to application creation, support and maintenance. As an industry, we see dynamics such as:
ongoing maturation of the underlying Increased opportunities technology and supporting processes such as cloud computing ability to create more connected, Increased complexity composite and heterogeneous systems leading to more diverse systems drive to deliver results at an increased pace and with reduced resources such as increased use of outsourcing additional participants in software projects Increased communication as we ensure the best possible experience is delivered

as a result of the
Increased pressure

Toolsets need to embrace these forces they must help teams deliver value faster than ever before across myriad technologies while addressing the inherit complexity of solutions and supporting effective communication across the entire team regardless of scale or location.

Reducing Waste across the Lifecycle


Waste is created when gaps in the workflow of teams exist, these gaps are typified by handoffs and ineffective processes that impede the ability of the team to interact. For example, when individuals are:
Not exposed to context across the totality of the project Unable to share sufficient context Are forced to work with unnatural tools Are forced to adopt processes they dont understand misaligned and competing priorities handoffs across the team and disciplines that

waste is created by

become non-actionable, creating re-work time spent learning tools and being forced to repetitively shift context Increased overhead and lost cycles of productivity

Successful, modern Application Lifecycle Management systems must have a specific focus on eliminating the sources of waste. This is only possible through rich and actionable integrations that span project contributors and the provision of a single, integrated master data store allowing rich insight into the overall status and health of the project.

Embracing Agile Development Best Practices


Agile approaches to software development and, in particular, Scrum have become increasing popular. Key underlying goals common to these approaches are to dramatically improve visibility across the project team, improve interactivity between team members and increase the flow of value to the customer. Many best practices exist across Agile approaches. These practices can be adopted incrementally and applied to almost any project and process, including formal approaches such as CMMI or traditional approaches such as water fall. These approaches can involve product back-logs, iterations or sprints, daily stand-ups, task boards, burn-down charts, stakeholder feedback, unit testing, pair programming, etc.

Figure 2: Continuous Application Delivery the core elements of the Agile workflow enable teams to focus on continuous application delivery.

Stakeholder Gives Feedback Feedback Incorporated Daily Cycles

Ask for Feedback Telling the story Manage the Backlog Plan a Sprint Run a Sprint Deploy to Stakeholders

Application Lifecycle Management solutions must allow you to leverage Agile best practices while adapting and supporting your current approach so you can incrementally leverage those practices as you see fit. They also need to provide a platform to scale the processes to work within the needs of your organization.

Visual Studio Application Lifecycle Management


The technologies demonstrated at TechEd build on past Visual Studio releases; they represent a sample of our third major release of Microsofts Application Lifecycle Management solution. Its useful to reflect back on our earlier strategies to understand how they connect with the evolution of our offering.

Figure 3: Bringing the team Together The first two major waves of innovation connected many parts of the team together creating trustworthy and transparent bridges to improve the flow of information.

Laying the Foundation VS2005 & VS2008


When Visual Studio Team System first launched in 2005, the focus was on delivering transparency by creating a single data store that housed a transparent backlog of work for the entire team (Team Foundation Server). This data store was tightly integrated with a customizable development process so the system could be set up in multiple configurations adapting to your specific needs. The integration between the development environment and the data store let developers take items off the shared backlog of work. Once they completed a change, they could leverage the integrated check-in experience to connect the completed work with the related work-items directly within the Visual Studio development environment. This created a transparent process where developers could go about their day-to-day work and, with minimal effort, ensure that the project plan was up-to-date. The team could view automated, real-time reports and the project management team could leverage their favorite tools such as Microsoft Project to track progress.

Reducing Waste in Software Construction VS2010


In our most recent release, Visual Studio 2010, the focus was on further enhancing the flow of information across the team and improving software quality. We connected the quality assurance process with the development team and made understanding existing systems and designing systems deeply connected parts of the development lifecycle.
6

We introduced a set of tools built from the ground up to let testers actively participate in the lifecycle and permitted, for the first time, these closely connected activities (development and testing) share a common view of success. We created a virtualized lab environment with integrated quality dashboards that offered a full 360-degree view on progress. We also supported scenarios where testers could easily file bugs that included all of the metadata a developer needed to reproduce. These scenarios also addressed the backand-forth game of bug Ping-Pong between teams one of the primary causes of waste in teams. In addition, we brought the benefits of our vision to developers on other platforms with first party support for the Eclipse development environment on Macintosh, Windows and Linux. This let teams working on a broad portfolio of composite and heterogeneous applications share the benefits of a shared team collaboration infrastructure.

Visual Studio vNext: Expanding Throughout the Lifecycle and Embracing New Participants
With Visual Studio vNext we set out to improve the flow of information between the voice of the customer (a role referred to as the Product Owner in SCRUM) and the Team and between the Product Owner and the customer Stakeholders. We have also continued our focus on driving better software quality in every cycle of development, from check in to sprint. We free the team from distractions and keep them in the zone by automating many of the common interactions and bookkeeping activities. Lets look at several of the scenarios we shared at TechEd that are part of Visual Studio vNext:
transparency across the planning process and full team participation. Agile Planning Tools Tools scale as required and best practices can be adopted at your pace a natural way to capture and receive Lightweight Requirements feedback on requirements early in the process working code which matches the expectations of stakeholders. Stakeholder Feedback New tools to receive and adapt to feedback throughout the development process increased code quality with code Agile Quality Assurance review support, enhanced unit testing frameworks and new exploratory testing support increased connections and insight Aligning Development with Operations between the operations and development teams lowering the time it takes to fix a bug in production more time in the zone, Enhanced User Experience through improved experiences for day-to-day tasks

as a result of the

Agile Planning Tools


As a project progresses, planned work evolves and new work is discovered whether its the development of a new user story, the discovery of an issue in production or the fact that a team member is called out of the office for the day. As these changes occur the plan also needs to evolve Agile teams expect and embrace change. In Visual Studio vNext, we offer a variety of tools to let the entire team actively participate in the planning process in ways that are both natural to the user and allow them to stay in context with the work they are performing. Our tools dont force you to adopt a specific process. Instead, they let you leverage Agile best practices. They also enable these best practices to be executed at scale with integrations to portfolio management tools and the ability to manage large geographically distributed teams.

Figure 4: Grooming the Product Backlog The product backlog shows a single view of the current backlog of work that can be dynamically re-ordered and grouped. This enables Product Owner to quickly prioritize work and outline dependencies and relationships.

Figure 5: Planning a Sprint Once work is prioritized, its time for the team to plan the next sprint/iteration, identify the tasks and start allocating the work. The enhanced work item management tools in Team Web Access make this process simple by pre-populating required data and streamline the association and update process. The sprint planning tools help your team effectively allocate work balancing load with available capacity. In this screenshot interactive bar charts show team member capacity and the burn down progress for the project. Enabling real-time feedback on the updates to the plan.

10

Figure 6: Task Board in Team Web Access The task board offers the ability to update the status of work items visually. Its a popular way to see the progress a team is making against each product backlog item and to get a quick focus on remaining work. The task board adheres to the business rules set out in the process template, such as state transitions, regardless of the template chosen for the project. Integrated into the taskboard is a real-time burndown chart of the remaining work in the teams sprint.

11

Figure 7: Connecting with Project Server This provides up-to-date insight into portfolio execution, alignment with strategic objectives and resource utilization of software development projects by leveraging the data stored in different systems. This automates the exchange of project information across teams and improves coordination between teams by using disparate methodologies, like Waterfall and Agile, via common data and agreed upon metrics. Agile teams can continue to think in terms of the product backlog and user stories and the PMO can continue to manage resources across the enterprise.

12

Lightweight Requirements
Teams need to collaborate with stakeholders to ensure that a new experience (whether it be an enhancement to an existing solution or a fresh new concept) hits the mark. Storyboards have emerged as a great best practice to ensure you get detailed feedback before the process of coding starts. In Visual Studio vNext we provide a StoryBoard Assistant a plug-in for PowerPoint that connects the creation and review of story boards with the rest of the team. The Assistant adds in a Storyboarding Ribbon to help team members create a storyboard and share it with the team and stakeholders. We include a library of common controls for multiple application types and tools to allow the team to provide feedback on the experience.

Figure 8: Example Storyboard Slides - four examples that leverage the StoryBoard Assistant plug-in. Across these screenshots you can see mock-ups of a Windows Phone interface, and screens from a media-centric Web application, a SharePoint application and Visual Studio itself.

13

Figure 9 The StoryBoard Assistant in Power Point: offers the ability to quickly mockup experiences in a tool that is familiar to the majority of team members and stakeholders. It includes a set of rich features that lend themselves to story boarding such as: inbuilt graphical design tools the ability to embed other content including context slides tools to capture screen shots and create lightweight animations grouping capabilities that store common elements within a shape library The ability to create master templates that simplify the creation of multiple similar views The collaboration tools within Power Point also greatly assist the feedback process by providing the ability to: present the concepts to others mail the document to others for feedback print the document place the document under version control leverage collaborative editing tools leverage web viewing tools

14

Stakeholder Feedback
Essential to Agile is the idea of frequent feedback. As stakeholders work with a solution, they understand the problem better and are able to envision improved ways of solving it. Developers often express the frustration that they built exactly what the customer asked for, and then the customer said thats not what I meant. We carefully considered this as we designed Visual Studio vNext. We asked ourselves how teams could easily receive timely feedback on working code, so that they could adjust their backlogs to respond to stakeholder needs in every sprint. If we could design that, Visual Studio vNext could dramatically increase the flow of information between the stakeholders and the team, supporting Agile workflows, accelerating delivery, and driving risk and waste out of the project. With Visual Studio vNext we deliver a set of natural tools that let stakeholders directly participate in the development process. In this way, teams receive dramatically more actionable feedback and they can transparently prioritize and track feedback against the backlog. They can both remain focused on the task at hand and adapt for remaining work.

Figure 10: Asking for Stakeholder Feedback - The Product Owner defines the feedback they want to receive from the stakeholder and can then kick off the feedback process via e-mail.

15

Figure 11: Collating feedback on a web site the stakeholder feedback tool records feedback on the web site. The tool is purposely built for stakeholder use. It allows the user to directly interact with the site while recording rich and actionable data for the team in the background i.e. action scripts, annotations, screenshots, audio. This lets a Stakeholder provide rich and actionable data directly to the team helping them stay on track with the intent of the scenario.

16

Figure 12: Prioritizing and acting on feedback As feedback comes back in, the team prioritizes and allocates work among the team members for the next sprint. Feedback is simply a rich and actionable work item, automatically linked to the appropriate user story providing the required context so the team can act on, associate with other work and schedule into Sprints as required. Teams can achieve the goal of continued feedback throughout the lifecycle helping them better meet customer needs.

17

Agile Quality Assurance


Software quality is affected at every cycle. Building on the capabilities of Visual Studio 2010, we have continued to improve the tools we offer for increasing software quality, this includes: the ability of the individual developer to focus on the correct unit testing first tools to enable the team to collaborate on new code or refactor existing code tools to support testers who are performing exploratory testing to discover bugs that are still present after the build

Figure 13: Continuous Unit Testing Development is about staying in the groove. The new Unit Test Runner helps you do that by running tests in the background while youre working on code, so you never have to pause and wait for test results. Combined with Test Impact Analysis (introduced in VS 2010), the most important tests are always run first, so failures appear in seconds. Think of this as red-green-refactor on steroids
18

Figure 14: Code Review in Action in Visual Studio vNext includes integrated code review support. This lets team members provide feedback on new code, lifting the shared knowledge of the team. If desired, code reviews can be set as a quality gate in the development process. This screenshot shows the source changes highlighted and comments from team members about the changes.

Figure 15: Code Clone Detection reviews a project looking for common code blocks that should be refactored out into a shared block of code. This detection leverages technology developed in Microsoft Research. The search casts a wide net, detecting code blocks that have a common structure and approach. The search is semantic, not just literal. This technique detects both copy and paste errors as well as code fragments with a common logical structure that contain superficial differences such as changed variable names. The end result is a report which lets a team to review common code and decide how to proceed.

19

Figure 16: Exploratory Testing The most important bugs are usually found by unanticipated exploration of the application. Visual Studio exploratory testing keeps a full log of your interaction with the software under test and allows you snip the log to show only the relevant sequence to illustrates the bug. This can be combined with screenshots to show the exact problem at that point in the experience.

20

Aligning Development with Operations


All successful software projects transition into production use, and modern projects transition frequently. This is where they are delivering value to the business. Its at this point, though, that many of the most difficult issues to reproduce appear. Often, the team is told that an issue exists in production but they cannot reproduce the problem outside of the production environment, much to the frustration of end users and the operations team. With Visual Studio vNext, we provide a rich set of integrations which enable an actionable workflow between the development and operations teams. The first such scenario was announced at TechEd allowed operations staff leveraging System Center to pass data to the development team so they could triage the issues and rapidly find the root cause in the code itself. The demonstrated integration is available as a Community Technology Preview (CTP) today. In Visual Studio vNext we will also bring our IntelliTrace infrastructure used for historical debugging development and test environments into production scenarios to further cement the link between development and operations.

Figure 17: Application Issues in Production An issue is observed for a production application and an alert is raised in System Center. The operations team can then rapidly work out whether the issue is related to the application itself or the environment.

21

Figure 18: Sending the Issue to the Development Team Having established that the issue is at the application layer the administrator sends the issue to the development team through the integrated connection with Team Foundation Server.

Figure 19: Rich Data for the Developer Following the triage of the issue by the product owner the issue is passed to a member of the development team. The work item includes rich and actionable data for the developer (environmental data, stack trace, AVICode telemetry ) letting them rapidly identify the issue and jump directly to the related line of code with a single click! In Visual Studio vNext we take things a step farther with the ability to attach a full IntelliTrace log file sourced from the production environment.
22

Enhanced User Experience


One of the first things you will notice is an improved experience across Visual Studio vNext. We have focused on simplifying many of the daily tasks team members perform. The goal here is to streamline the most common tasks and ensure that people love working with the software this is critical to reducing wasted cycles across the team and illustrates our ongoing commitment to improve the usability of Visual Studio.

Figure 20: Context Switching with MyWork One of the hardest things for a developer to manage is interruptions, especially when these mean switching the context of the project and the code at hand. Context switches are a frequent source of both error and decreased velocity. My Work provides a new task-based approach to unify the developers work contexts. When the developer switches context, for example to fix an urgent bug, Visual Studio automatically packages all the open work with the prior active task. When the developer recalls the task, work is instantly restored in context and error-free.

23

Figure 21: Team Explorer is the connection to Team Foundation Server included in the Visual Studio Integrated Development Environment. In vNext the user experience is much improved with full asynchronous communication leading to vastly accelerated load times. We also include new default views to highlight the most common information a developer needs e.g. allocated work items, build progress, reports and bugs. Integrated search helps you find the information you need fast.

Figure 22: Work Item Management we have overhauled the web experience (built with standard HTML) for Team Foundation Server we leverage touch controls where applicable for natural interaction. We have also greatly improved the performance of Team Web Access including work item creation and maintenance.

24

Figure 23: New Work Item Dialogue The work item viewer in Visual Studio has been significantly enhanced in vNext. Work Items can have rich text and images directly embedded in the view to improve the fidelity of feedback and many of the standard fields are pre populated.

Figure 24: Team Foundation Server on Windows Azure we have brought Team Foundation Server to the Windows Azure Platform to help any team to be up and running within 30 seconds.

25

Closing
Modern application management solutions need to address the underlying issues that prevent teams from reaching their full potential. They must facilitate:

Collaboration through integration across all roles in the team Timely and actionable feedback to reduce wasted effort Leveraging natural and appropriate tools for the task at hand Transparent and agile best practices to be adopted at will
For the last five years we have been on a journey to create an offering that addresses these issues and resolves the major sources of waste in the development lifecycle. Visual Studio vNext is another major step forward as we extend our coverage of the lifecycle and embrace additional roles critical to a projects success. We have also focused on ensuring the team receives continuous feedback throughout the lifecycle to encourage rich, productive and scalable interactions which increase the productivity of the team and reduce risk. We cant wait to share this with you and your organization we hope you found this whitepaper a useful way to digest the announcements we made at TechEd and relate the individual features and scenarios back to a broader set of issues we all face in the creation of software. The best way to join us on or shared journey is to adopt the foundational technologies in Visual Studio 2010. If you would like to find out more visit www.microsoft.com/visualstudio today.

Thank you

26

Figure 25: Bringing the team Together In Visual Studio vNext we continue down the path of bringing the team together by creating trustworthy and transparent bridges which improve the flow of information across the entire team, eliminating the most common causes of waste.

27

noTEs

29

2011 Microsoft Corporation. All rights reserved.

You might also like