Editor’s note: The following blog post was written by Visual Studio ALM MVP Mike Douglas
One of the key advantages of Agile or any other kind of iterative development process is to receive feedback early and often throughout the development process instead of waiting until the end. Traditionally this has been accomplished by teams working closely together where the decision makers can simply turn around to tell developers what they like and don't like. This type of collaboration becomes much more difficult with distributed development teams. Visual Studio 2012 has introduced several tools to help distributed teams collaborate better by being able to request, provide, and receive feedback throughout the development process.
Whether your team is co-located or distributed, I will discuss some of the key points throughout the lifecycle for requesting and capturing feedback. Looking at the iterative development lifecycle in Figure 1, I have identified these key feedback points in each phase. This iterative process can be any development methodology but for this post, I will use a scrum based process to discuss the feedback points.
Figure 1 - Continuous Feedback during Application Lifecycle
For every development methodology, there is a process for understanding what the users need and want. In Scrum, this is commonly referred to as Release Planning. During this process the development team will usually try to understand the requirements. However, requirements can be misunderstood even if they are clearly defined. Visual Studio 2012 introduces a new feature called Storyboarding to help visualize these requirements. Instead of creating an additional tool, the Storyboarding feature was built as an add-in to PowerPoint. This provides a number of benefits including:
· Built in animations, presentations, and printing
Theadd-inincludesanumberofshapesfordesigninguserinterfaces. In addition to the many included shapes, you can download and use additional shapes from the Visual Studio Gallery.
Figure 2 - PowerPoint Storyboarding
During Release Planning and the Delivery Sprints use the Storyboards to request feedback. In Release Planning when we are defining User Stories, there is usually some discussion about each user story to determine effort and priority. As the product owners begin to explain what they want, you should begin capturing this information as acceptance criteria. Use the storyboards to capture design requirements. At this point in the process, acceptance criteria and storyboards won't be complete, but the goal is to not lose any of the information from the discussions. The Storyboards must be put on a network location or as I prefer to put in the team project's SharePoint portal. Once these Storyboards are in a shared locations, they can be linked directly to User Story for traceability and future reference as shown in Figure 3 below.
Figure 3 - Linking a Storyboard to a User Story
In release planning it is often necessary seek feedback of a larger group of Subject Matter Experts or other customers. Requesting Feedback from those outside of the workgroup can be accomplished with Visual Studio 2012. Request Feedback and choose the recipients, target application/website, and questions to answer. The recipients will receive an email with links to install the Feedback Client and launch the request. The Feedback Client as shown in Figure 4below, will open providing the user with the questions to answer and the ability to provide rich feedback through text, screenshots, and even capture voice input.
Figure 4 - Feedback Client
During the development of the application or also referred to as the Delivery Sprints, the User Stories are groomed and managed by the product owner. As stories are reviewed and ready to be worked, the acceptance criteria should be fully defined to provide the development team a clear understanding of what is to be developed. Feedback can be solicited during the design of the User Story to seek input on usability or to choose between design options. In fact, you can request feedback using the Feedback Client, to request feedback on the Storyboard if you store the Storyboard on SharePoint. The document link can be used as the URL for the Feedback Request so the user can click on the link and open the Storyboard.
In addition to the design of the User Story, the Feedback Requests can be used for User Acceptance Testing (UAT) to test the implementation of the user stories completed in an Iteration. This can give the user the chance use the application and provide some meaningful feedback that he or she wouldn't be able to experience in the Sprint Demo.
Code Reviews are another type of feedback developers can provide to other developers. Pair programming is one way that can provide the most immediate feedback with another developer commenting on code while it is being developed. Many teams prefer to use Code Review meetings as the venue for providing feedback for each other's code. While these meetings have some benefit, there usually isn't tangible and actionable results from these meetings that can be measured.
In addition, it is often difficult to consistently hold code review meetings because it is usually the first thing that is cut when deadlines are close. To overcome these shortcomings and challenges, Visual Studio 2012 provides a Code Review workflow that is built into Team Explorer. This allows the developers to request peer code reviews as work is being completed instead of waiting until the end of the Sprint when it is usually too late to make changes.
Figure 5 - Code Review Request
The code reviews also provide measureable results by tracking and storing the reviews in Team Foundation Server (TFS) as work items. Queries and reports can be created from these work items to show that they are being performed and the details will show the quality of the reviews.
Figure 6 - Code Review Work Items
Deploying the application into production used to be the end of the story for developers and development teams. In today's iterative world, teams are deploying to production much more regularly. Some teams are deploying every Sprint or even daily. Teams today need to manage new features with production issues that might arise. The first way to make this more efficient is to utilize the enhancements in System Center 2012 to be able to send rich bugs to the development teams and provides a two-way sync between TFS and Operations Manager. Read Better Together: TFS 2010 and System Center 2012 for more information.
In addition to receiving feedback from the operations team, PreEmptive Analytics for TFS enables your applications to automatically provide feedback when exceptions occur. The tool is free with TFS and can be configured to automatically create or update work items in TFS and include the exception information. This can provide valuable information that the team can use to improve the quality of the application.
As you can see, feedback throughout the application lifecycle is an important theme in Visual Studio 2012. These ALM tools will help increase the efficiency and quality of your development teams. Furthermore these tools will also help facilitate distributed teams where Scrum would have been challenging to succeed. Download Visual Studio 2012 to start taking advantage the Continuous Feedback features today.
About the author
Mike Douglas is a Solution Consultant at Deliveron Consulting Services. He specializes in working with development teams to implement Application Lifecycle Management (ALM) solutions to eliminate traditional silos between development, testing, and project management to establish cohesive processes with the Visual Studio ALM tools. He is also a Microsoft Visual Studio ALM MVP and Microsoft ALM Ranger with a goal to accelerate the adoption of Visual Studio with out-of-band solutions for missing features and guidance. Mike is an experienced presenter and has spoken at local user group meetings and conferences such as HDC and KCDC. Mike has worked with a number of technologies in his 14 years of experience building enterprise solutions including BizTalk, SharePoint, SQL Server, and WCF. He actively maintains the open source project, Team Deploy, on CodePlex for deploying MSIs using Team Foundation Server. Mike also enjoys sharing his experiences in Visual Studio ALM and TFS on his blog at www.CodeSmartNotHard.com.
Great post Mike.