Team Foundation Server Deployment Planning Delivery Guide Developer Tools Deployment Planning Services Page 1 Team Foundation Server Deployment Planning Delivery Guide, Version 3, 10.2013 Table of Contents 1 Purpose of the Delivery Guide ............................................................................................ 4 1.1 Engagement Agenda........................................................................................................................... 4 2 Engagement Overview ....................................................................................................... 5 2.1 Phase 1: Pre-Engagement Activities (Day 0)....................................................................................... 7 2.2 Phase 2: Kick-off and Presentation (Day 1) ........................................................................................ 7 2.3 Phase 3: Discovery Workshops and Interviews (Day 2-3) .................................................................. 8 2.4 Phase 4: Deployment Plan Development (Day 4)............................................................................... 8 2.5 Phase 5: Plan and Resources Delivery (Day 5).................................................................................... 9 3 Step 1: Conduct an ALM Evaluation ................................................................................. 10 4 Step 2: Complete the TFS Deployment Checklist ............................................................... 11 4.1 Planning Checklist ............................................................................................................................. 11 4.2 Server Planning Questions................................................................................................................ 12 4.3 Project Planning Questions .............................................................................................................. 15 4.4 Customer Profile Checklist ............................................................................................................... 17 4.5 Infrastructure Profile Checklist ......................................................................................................... 18 4.6 Installation Scenario Checklist .......................................................................................................... 19 □ Basic Installation ............................................................................................................................. 19 □ Single Server Installation ................................................................................................................. 19 □ Dual Server Install (2 processors) .................................................................................................... 20 □ Multi Server Install (3-4 processors) ............................................................................................... 20 □ High Availability TFS Farm Install (3+ processors)........................................................................... 21 5 Step 3: Upload Leave-Behind Materials ............................................................................ 22 7 ALM Evaluation Guidance ................................................................................................. 23 7.1 Executive Overview .......................................................................................................................... 23 7.2 Vision Statement .............................................................................................................................. 23 7.3 Scope of Engagement ....................................................................................................................... 23 7.4 Out of Scope ..................................................................................................................................... 24 7.5 Risk Assessment................................................................................................................................ 25 Page 2 Team Foundation Server Deployment Planning Delivery Guide, Version 3, 10.2013 7.6 Potential Customer Views ................................................................................................................ 25 7.7 Overcoming Interview Obstacles...................................................................................................... 26 7.8 Evaluation Benefits ........................................................................................................................... 27 7.9 Understanding the Customer Situation............................................................................................ 29 Appendix A - ALM Maturity Level Definitions ...................................................................... 30 Appendix B - Maturity Model Practice Areas ....................................................................... 32 Page 3 Team Foundation Server Deployment Planning Delivery Guide, Version 3, 10.2013 1 Purpose of the Delivery Guide The Team Foundation Server (TFS) Delivery Guide is written guidance for the technical delivery consultant to assist in the development of the deployment plan. Please note this document contains live links to resource and reference materials. In addition to outlining the entire engagement, the Delivery Guide provides detailed instructions for three essential on-site activities: (1) Performing the Application Lifecycle Management (ALM) Evaluation (2) Developing a TFS deployment roadmap using the TFS Deployment Checklist (3) Delivering the final Deployment Plan and optional Leave-Behind Materials 1.1 Engagement Agenda The five-day engagement involves a targeted ALM Evaluation that assists in developing a TFS deployment plan. The end result is a customized deployment plan. The table below includes the suggested agenda for the engagement. Day Activity Phase 1: Pre-Engagement Activities (Day 0) 0 Customer completes and returns the Project Scope and Customer Commitment* doc. Customer completes and returns the Pre-Engagement Questionnaire.* Customer responses are used to adjust the project scope (if necessary). Phase 2: Kick-off and Presentation (Day 1) 1 Review Pre-Engagement Questionnaire with customer. Conduct the Team Foundation Server Business Value Presentation* for customers. Lead discussion to understand desired outcome of engagement. Phase 3: Discovery Workshops and Interviews (Day 2-3) 2-3 Interview SMEs to complete the TFS Delivery Guide* consisting of: o ALM Evaluation (Excel file: 2012_TFS ALM Maturity Questionnaire.xls) o TFS Deployment Checklist (embedded in this document) Phase 4: Deployment Plan Development (Day 4) 4 Compile inputs from ALM Evaluation and TFS Deployment Checklist to complete the Deployment Plan Template*. Phase 5: Plan and Resources Delivery (Day 5) 5 Review final Deployment Plan with Customer. Install and walk through any leave-behind materials you deem useful for the customer. Complete Partner Survey* and submit deliverables* to Microsoft for Payment. *items that correspond to templates or documents available from DTDPS website Page 4 Team Foundation Server Deployment Planning Delivery Guide, Version 3, 10.2013 2 Engagement Overview The process diagram on the following page is provided as a resource to help the consultant plan the engagement. Each of the engagement phases is briefly described in the following sections. For more detailed information about each step, refer to the “DTDPS Service Guide”. All engagement materials can be found through the partner portal at www.microsoftdtdps.com 1. Select “Conduct the Engagement” 2. On the “Conduct the Engagement” page for DTDPS, select the appropriate engagement from the colored box. 3. A new page will open with all engagement materials listed in the right column under “Resources.” Page 5 Team Foundation Server Deployment Planning Delivery Guide, Version 3, 10.2013 Page 6 Team Foundation Server Deployment Planning Delivery Guide, Version 3, 10.2013 2.1 Phase 1: Pre-Engagement Activities (Day 0) In Phase 1, “Pre-Engagement Activities”, the consultant and customer document the scope and objectives for the overall engagement. START here: http://www.microsoftdtdps.com/ >>Conduct the Engagement >> Team Foundation Server Deployment Assessment>> Delivery Materials >> Phase 1 TFS PreEngagement Activities (zipped file includes the following) TFS Project Scope and Customer Commitment (Word doc) and TFS Pre-Engagement Questionnaire (Excel file) The specific tasks that are completed in this phase include: Reviewing the customer’s business requirements Requesting that the customer complete the Pre-engagement Questionnaire Working with the customer to identify Subject Matter Experts (SMEs) - The consultant will work with the customer to ensure that the roles and experiences of the SMEs, who have been identified as interviewees, provide the proper breadth of understanding of the customer’s processes and tools. Creating an interview schedule Creating a working-session schedule 2.2 Phase 2: Kick-off and Presentation (Day 1) In Phase 2, “Kick-off and Presentation” the Lead Consultant will conduct a presentation to provide the customer’s team a broad knowledge of Team Foundation Server and use the workshop discussion to help the customer define their desired end state. START here: http://www.microsoftdtdps.com/ >>Conduct the Engagement >> Team Foundation Server Deployment Assessment>> Delivery Materials >> Phase 2 TFS Presentation Introduction to Microsoft ALM (PowerPoint deck) Note: Select the appropriate one for your audience. Tasks for this phase include: 1. Presenting “Introduction to Microsoft ALM” 2. Demonstration of TFS 3. Q&A Session to gather requirements/scope Note: During this exploratory session, be sure to explain that Visual Studio Online is a potential option, as opposed to an on premise installation of Team Foundation Server. For more information on the differences, please see the comparison document included in this DTDPS. Page 7 Team Foundation Server Deployment Planning Delivery Guide, Version 3, 10.2013 2.3 Phase 3: Discovery Workshops and Interviews (Day 2-3) In Phase 3, “Discovery Workshops and Interviews,” the Lead Consultant interviews the SMEs, gathers START here: http://www.microsoftdtdps.com/ >>Conduct the Engagement >> Team Foundation Server Deployment Assessment>> Delivery Materials >> Phase 3 TFS Discovery Interviews (zipped file includes the following) TFS Delivery Guide (Word doc) TFS ALM Maturity Questionnaire (Excel file) documentation, and develops initial findings. The “TFS Delivery Guide” (this document) is a comprehensive reference that walks the consultant through all the steps required to complete this phase. The specific tasks that are completed in this phase include: Holding a kick-off meeting with the entire team Gathering documentation on the existing processes and tools Interviewing customer subject matter experts to complete: The ALM Evaluation (using the TFS ALM Maturity Questionnaire, if appropriate) The TFS Deployment Checklist Developing initial findings 2.4 Phase 4: Deployment Plan Development (Day 4) In Phase 4, “Deployment Plan Development,” the Lead Consultant reviews the initial findings from Phase 3 with the customer’s leadership team, determines recommendations to be included in the plan that are outside the areas addressed by the engagement, and writes the plan. During the first part of the session, the consultant should work with the customer to drill down on the specific core maturity capabilities for their needs and target the primary issues with the highest impact for working session topics. Possible discussion topics include: Code Quality and Promotion Strategy Build Management and Merging Scenarios Requirements Management Project Management Test Management Pilot Group Migration For the second half of this phase, the consultant combines the learning from the working session with findings from the “TFS Delivery Guide” to write the final deployment plan. Page 8 Team Foundation Server Deployment Planning Delivery Guide, Version 3, 10.2013 START here: http://www.microsoftdtdps.com/ >>Conduct the Engagement >> Team Foundation Server Deployment Assessment>> Delivery Materials >> Phase 4 TFS Deployment Plan Development (zipped file includes the following) TFS Deployment Plan Template (Word doc) The specific tasks that will be completed during this phase include: Identifying initiatives appropriately based on the maturity level of the practices in place. Generating a report based on the ALM Evaluation findings. Inserting the following pieces into the “TFS Deployment Plan Template” document: o ALM Evaluation report o Answers from the checklists and questions from the “TFS Delivery Guide” Customizing the deployment plan by attending to the relevant sections such as the “Future State”, “Key Areas for Improvement” and “Roadmap” in the document. A consultant may elect to use his/her own deployment plan template, however the consultant must ensure all relevant topics (as outlined in the provided template) are covered in the final plan. Additionally all materials and resources listed on the first page of the “TFS Deployment Plan Template” must be included in the final plan for the customer. 2.5 Phase 5: Plan and Resources Delivery (Day 5) In the final phase of the engagement, the Lead Consultant will: Install and walk through any relevant leave-behind materials provided by Microsoft (see section: Section 5, Upload Leave-Behind Materials) Review the completed deployment plan with the customer Submit deliverables to Microsoft for payment. START here: http://www.microsoftdtdps.com/ >>Conduct the Engagement >> Team Foundation Server Deployment Assessment>> Delivery Materials >> Phase 5 TFS Leave Behind Materials (zipped file includes the following) TFS Leave Behind Resource Guide (Word doc) Materials and Resources (virtual links, pdf documents, PowerPoint decks, etc.) Page 9 Team Foundation Server Deployment Planning Delivery Guide, Version 3, 10.2013 3 Step 1: Conduct an ALM Evaluation Team Foundation Sever is the collaboration platform at the core of the Microsoft Application Lifecycle Management (ALM) Solution. In order to get the most from a TFS deployment, an ALM Evaluation must first be completed. For this Planning Services engagement, a special excel template has been designed for the ALM Evaluation. The template consists of a highly relevant subset of ALM questions that can be completed in the allotted time and provide valuable insight into the planning phase of a TFS Deployment. The ALM Evaluation should be completed on site with a Customer Subject Matter Expert (SME). There is an abbreviated User’s Guide at the end of this document for consultants who are new to the ALM Evaluation. START here: http://www.microsoftdtdps.com/ >>Conduct the Engagement >> Team Foundation Server Deployment Assessment>> Delivery Materials >> Phase 3 TFS Discovery Interviews (zipped file includes the following) TFS Delivery Guide (Word doc) TFS ALM Maturity Questionnaire (Excel file) Page 10 Team Foundation Server Deployment Planning Delivery Guide, Version 3, 10.2013 4 Step 2: Complete the TFS Deployment Checklist The second step in Phase 3 of the TFS Deployment Planning Service is to complete the TFS Deployment Checklist. Useful resource and reference links are embedded directly in this document. 4.1 Planning Checklist This checklist outlines the general steps for planning a Team Foundation Server deployment. Note that the links may take you to guidance for a specific version of Team Foundation Server. In most cases, there is a selector on the page to select the appropriate version. Please use your judgment. Done Step □ Plan Team Foundation Server Scope - Review Team Foundation Server components to determine which components you might want to install. □ Review the supported Team Foundation Server topologies to determine whether you have a network topology that can support Team Foundation Server. For more information, see: Getting Started with Visual Studio; Application Lifecycle Management with Visual Studio and Team Foundation Server; Visual Studio Team Foundation Server Planning Guide; Visual Studio Team Foundation Server Upgrade Guide Page 11 Team Foundation Server Deployment Planning Delivery Guide, Version 3, 10.2013 Simple Moderate Complex □ Review Team Foundation Server hardware and software requirements. Install and configure all required hardware and software. For more information, see System Requirements for Team Foundation Server. □ Review Team Foundation Server security requirements and plan for firewall and router configuration for Team Foundation Server network requirements. For more information, see Accounts Required for Installation of Team Foundation Server; Adding Server Roles and Features; Ports Required for Installation of Team Foundation Server □ Determine whether you want to customize Team Foundation Server process templates for your business needs. For more information, see Customizing Team Projects and Processes; Customizing Project Tracking Data, Forms, Workflow, and Other Objects; Customize Process Templates; Customize Process Configuration; Team Foundation Server Process Template Customization Guidance □ Review Team Foundation Server maintenance requirements and develop a Team Foundation Server backup and restore strategy. For more information, see Backing up and Restoring Your Deployment; Managing the Server Configuration □ Review the Team Foundation Installation Guide for the steps appropriate to your chosen Team Foundation Server deployment. For more information, see "Team Foundation Installation" in the Team Foundation Installation Guide. You can download the latest version of the Team Foundation Installation Guide from the Microsoft Download Center Table 1: Planning Checklist 4.2 Server Planning Questions The following checklist provides a list of questions that should be asked when planning an enterprise deployment of Team Foundation Server. Questions about the Topology in which you want to deploy Team Foundation Server Page 12 Team Foundation Server Deployment Planning Delivery Guide, Version 3, 10.2013 □ Are You Currently Operating Your Computers in a Workgroup? In a workgroup environment, you must deploy Team Foundation Server in a single-server deployment. Dual-server Team Foundation Server deployments are not supported in workgroup environments. For more information, see Managing Team Foundation Server in a Workgroup. □ Are You Currently Operating Computers in Both Workgroups and Active Directory Domains? In workgroups and Active Directory domain, you can deploy Team Foundation Server in either the workgroup or the domain. You can support Team Foundation clients from both the domain and from workgroups. If you want to deploy Team Foundation Server in the workgroup, you must deploy Team Foundation Server in a singleserver deployment. If you want to deploy Team Foundation Server in a domain, you can select either a single-server deployment or a dualserver deployment, depending on your operational needs. For more information, see Managing Team Foundation Server in a Workgroup, Managing Team Foundation Server in an Active Directory Domain, Workgroup Requirements for Team Foundation Server, and Team Foundation Server Requirements for Active Directory. □ Are You Currently Operating Your Computers in Multiple Active Directory Domains or Forests? If you are currently operating computers in multiple Active Directory domains or forests, you can support Team Foundation clients in some or all your domains or forests. You can even deploy the Team Foundation application-tier server in one domain and the Team Foundation data-tier server in a different domain, if it is required. For more information, see Team Foundation Server Requirements for Active Directory Questions about the size of the team or teams that will be using Team Foundation Server □ How Many Teams Do You Want to Support Team Foundation Server can support a maximum of five hundred (500) team projects if you use the MSF for Agile Software on Team Foundation Server? □ How Many Users Make Up Your Software Development Teams? (Do you need multiple application tiers?) Team Foundation Server can support a maximum of five hundred (500) unique users in a single-server deployment. Team Foundation Server can support a maximum of two to five thousand (2,000 – 5,000) unique users in a dual-server deployment. As you reach the maximum, Team Foundation Server performance will decline. This drop in performance can vary somewhat based on your hardware and the size and complexity of your team projects. If the number of unique users on your software development teams is likely to significantly increase over the course of a project, consider deploying a Team Foundation Server configured to support the larger team. For more information about hardware requirements for supporting numbers of users in single-server or dual-server deployments, see Visual Studio Team Foundation Server Planning Guide; Application-Tier Server Requirements for Team Foundation, System Requirements for Team Foundation Server and Naming Restrictions for Team Foundation Server. □ Where Are Your Software Development Teams Located? (Do you need a proxy?) If you have software development teams in more than one office location, you can choose to deploy Team Foundation Server Proxy to improve network performance by caching copies of version control files locally for the developers working at a different geographical location than Team Foundation Server. Alternatively, if you have software development teams working in different locations that speak Development process template for project creation. Team Foundation Server can support a maximum of two hundred and fifty (250) team projects if you use the MSF for CMMI Process Improvement process template for project creation. If you have more than five hundred MSF for Agile team projects, or more than two hundred and fifty MSF for CMMI team projects, you must deploy more than one Team Foundation Server. For more information, see Visual Studio Team Foundation Server Planning Guide Page 13 Team Foundation Server Deployment Planning Delivery Guide, Version 3, 10.2013 different languages, consider deploying an Team Foundation Server at each location configured for that team's language. For more information about Team Foundation Server Proxy and remote connections to Team Foundation Server, see Managing Remote Connections to Team Foundation Server Proxy. For more information about Team Foundation Server and languages, see Language Requirements for Team Foundation Server Questions about the number and type of projects you plan to develop on TFS □ How many team projects will you support? How many different process templates will you deploy? How complex are your process templates? The total number of team projects Team Foundation Server can support depends on what process template you choose to use when creating those projects. Additionally, Team Foundation Server has other project-related limitations that you should consider as part of planning for Team Foundation Server. For more information, see System Requirements for Team Foundation Server and Visual Studio Team Foundation Server Planning Guide Questions about the life cycles of the projects you plan to develop on Team Foundation Server □ Is Your Average Software Development Life Cycle Measured in Years? If the average development time for a software project you want to develop on Team Foundation Server is measured in years, consider a dual-server Team Foundation Server deployment. Dual-server deployments are larger and can support larger numbers of unique users. Because of the larger hardware requirements, dual-server deployments can support many work items, documents, and source code versions more gracefully than smaller, single-server deployments. □ Is Your Average Software Development Life Cycle Measured in Months? If, on the other hand, the average development time for a software project you want to develop on Team Foundation Server is measured in months, with small teams that work quickly on smaller projects, consider one or more single-server Team Foundation Server deployments. Single-server deployments are smaller and require less hardware, and individual servers can be archived or discontinued as the software projects developed on them come to a close. □ Is Your Average Software Development Life Cycle Unpredictable? If the average development time and size for software development projects varies greatly, consider a dual-server deployment. Because of the larger hardware requirements, you are less likely to experience performance or software limitation issues if one or more software development projects on Team Foundation Server proves to be longer and more extensive than first thought. If you choose a singleserver Team Foundation Server deployment, consider whether you might want to implement space-saving measures such as limiting the size of attachments to work items. For more information, see Managing Data. Questions about the maintenance and availability needs for Team Foundation Server □ Will Team Foundation Server Unavailability Put Your Software Development Project At Risk? How frequently will you back up TFS? Some software development teams are resourced so that any unexpected server unavailability will put the project at risk. If so, consider a dual-server Team Foundation Server deployment with a standby Team Foundation application-tier and a clustered Team Foundation data-tier. Providing this redundancy increases your options for backing up data without locking out users and reduces the risk that Team Foundation Server will be unavailable due to an unexpected hardware problem. For more information, see the Team Foundation Server Installation Guide. For more information Page 14 Team Foundation Server Deployment Planning Delivery Guide, Version 3, 10.2013 Does your company have regular off-hours when backups can be performed? How critical is it to have TFS available 24/7? about where to find the installation guide, see Install Team Foundation Server Table 2: Server Planning Questions 4.3 Project Planning Questions The following checklist provides a list of questions that should be asked when planning to provision a Team Project on Team Foundation Server. Questions about the Current Team Project and Future Work □ Is this a new Team Foundation Server Installation? If you have installed Team Foundation Server for the first time, you must create a new team project before you can use any one of the features or tools of Team Foundation. If you are working on an existing installation, you might find team project already existing on the server, and you should evaluate the adequacy of that project for your future work. □ Do you need a new team portal? Review the contents and focus of the current team portal. Determine whether the content and focus of the portal is still relevant to the future work. If you want to create another team portal that focuses specifically on the future work, you must create a new team project and team portal. We strongly recommend that you use only one team portal for each team project. □ Do you need different people to have different permissions? Review the task assignments and security permissions for all the team project members. Determine whether: Current team project members will be performing multiple roles in the future work. The same person will need different permissions for different parts of the project. Page 15 Team Foundation Server Deployment Planning Delivery Guide, Version 3, 10.2013 Different people will be performing the same roles as current team members. If you will have different people with different permissions working on the project, you must create a new team project. □ Do you want to use different check-in policies? Review the current check-in policies for the current team project. Determine whether the check-in policies are still appropriate for the future work. If you want to use different check-in policies for future work, you must create a new team project and define the new checkin policies. Team Foundation Server supports using only one set of check-in policies for each team project. Do you want to use different settings? Reasons to create a new team project. □ Do you want to use a different process template? Identify the process template and, if applicable, the process guidance used in the current team project. Determine whether the template is still appropriate for the future work. If you want to use a different process template for future work, you must create a new team project using that different template. Team Foundation Server supports using only one process template for each team project. After the team project starts, you can manually customize the process template that is being used according to the team project. However, unless these customized changes are saved to the process template stored on the Team Foundation server, the changes will not appear in any new team projects that are based on that template. □ Do you want to use different work item types? Identify the type of work items used in the current team project. Determine whether the work item types are still appropriate for the future work. If you want to use different work item types or want to use the same work item types with different content, you have to create a new team project and define new work item types. Team Foundation Server supports using only one set of work item types for each team project. □ Do you want to experiment with process or other team project settings? If you are new to Team Foundation Server or interested in improving team functioning, you may want to experiment with alternative work flows, classification hierarchies, build processes, policies, and more. Create a separate team project to run these experiments. □ Are there more than 10 million versioned work items in the project? Count the total number of work items in the current team project and determine whether you have used more than half the capacity of Team Foundation Server. Team Foundation Server supports a maximum of 20 million versioned work items in a single team project. If you have used more than half, you may run out of room before you finish the new team project. Additionally, the complexity of the work items can adversely affect Team Foundation Server performance □ Does the software functionality change significantly? If the future work introduces new technologies or significantly new software functionality, you may want to create a new team project. New technologies or functionality may require very different work flows, testing, build scripts, and more that could, in turn, require significant modifications to the current process template or process guidance. Do you want to use the same settings? Reasons to add iterations and areas to an existing team project. □ Do you use a master .mpp or .xls file to manage? Review the information and tools you use to manage the team, especially if you manage more than one team project. If you use Microsoft Project or Microsoft Excel as the major tool to manage team Page 16 Team Foundation Server Deployment Planning Delivery Guide, Version 3, 10.2013 projects and want to track all project activity in the same master .mpp or .xls file, you should continue adding more iterations to a project instead of creating a new team project. Team Foundation Server does not support using Microsoft Project or Microsoft Excel to display work items that are shared across team projects. In other words, if you manage two or more team projects and have work items that are associated with more than just one team project, you cannot display those work items in Microsoft Project or Microsoft Excel. Instead, you must use one of the other reporting tools in Team Foundation Server to view and manage those shared work items. □ Do you want to manually move all the active work items in the project? Count the number of active work items in the current team project. If you create a new team project, you must copy these work items from the current to the new team project. Team Foundation Server does not support the bulk copying or moving of work items from one project to another. Assume for a moment that it takes 30 seconds to copy and paste a work item from one team project to another, to copy 500 work items would take 250 minutes or over 4 hours of continuous work. Alternatively, you could use Microsoft Excel to bulk copy work items from one team project to the other. Although the bulk copy would copy the current information in the work items, it would not copy the work item history, attachments, and links to the new team project. For more information about bulk copying work items using Microsoft Excel, see Working with Team Foundation Clients You must decide whether the advantages of having a new team project outweigh the costs of copying the work items. Table 3: Project Planning Questions 4.4 Customer Profile Checklist Consultants should work with the customer to determine their logistics, and then select the profile that best fits their installation scenario. The Following table describes some customer scenarios and their possible deployment options. Customer Profile Team Project Collections Server Single Dual Multi- Single Multiple Virtualization (if desired) (Recommended=X, Feasible=√) * = Special Circumstance for very small team Appl. Tier DB Tier Proxy Build 1 Small Team (POC) sharing all code in single location (< 20 users) X Simple / Basic Install X X X* n/a X 2 1 small department sharing all code in single location (< 100 users) X X X √ n/a X 3 1 small to medium department with isolated code (<250 users) X √ n/a X X X X Page 17 Team Foundation Server Deployment Planning Delivery Guide, Version 3, 10.2013 4 1 medium department with multiple separated business units (< 450 users), single location Single Data Center supports all BU’s 5 1 medium to large department distributed in multiple locations sharing common code base (< 2200 users) Single Data center supports all BU’s X 1 App Tier in each site, 1 shared DB tier 1 medium to large department distributed in multiple locations, each an isolated BU from the others (< 2200 users) Single Data Center supports all BU’s X 6 X 7 1 Large IT Organization with separate departments or BU’s supported a single data Table 4: Customerby Profile center (> 2200 users) X X X No n/a X X No X X (fixed VHD) X X No X X (fixed VHD) X Consider a TFS Farm X X No X X (fixed VHD) In the above table, note the following: Proxy servers are only necessary for distributed teams. Then, only when their network bandwidth is insufficient. Sometimes a distributed team will have no need for the proxy. o Note: Additionally, a proxy server can sit in front of a Team Build server to reduce impact on the TFS server. Build Servers can (and should) be virtualized in order to save hardware and operational costs. The Data Tier is never recommended for virtualization, but can be virtualized in small department scenarios. The application Tier can always be virtualized if the customer desires it. For large organizations that are supported by multiple data centers (not depicted on the table), analyze the needs of each data center when determining an installation scenario. 4.5 Infrastructure Profile Checklist For assistance selecting the best installation option for TFS 2012, download the Visual Studio Team Foundation Server Planning Guide: http://vsarplanningguide.codeplex.com/downloads/get/379900. Be sure to address the following areas: Page 18 Team Foundation Server Deployment Planning Delivery Guide, Version 3, 10.2013 □ □ □ □ 1) Infrastructure 2) Team Project Collection 3) Team Project 4) Teams Planning 4.6 Installation Scenario Checklist Determine the installation scenario that best fits the customer’s needs and select the Installation Options Find the chart for the installation option chosen in the previous section. ATDT01 = Combined Application and Data Tier Server AT01 = Application Tier Server DT01 = Data Tier Server SP01 = SharePoint Server SSRS01 = SQL Server Reporting Services Server □ Basic Installation Component ATDT01 AT01 (app tier and data tier combined) Application Tier X Data Tier X WSS n/a SSRS n/a Virtualization Can be virtualized DT01 SP01 (SharePoint Server) SSRS01 (SQL Server Report Services) DT01 SP01 SSRS01 Table 5: Basic Installation □ Single Server Installation Component ATDT01 AT01 Page 19 Team Foundation Server Deployment Planning Delivery Guide, Version 3, 10.2013 (app tier and data tier combined) Application Tier X Data Tier X WSS X SSRS X Virtualization Should not be virtualized (SharePoint Server) (SQL Server Report Services) SP01 (SharePoint Server) SSRS01 (SQL Server Report Services) Table 6: Single Server Installation □ Dual Server Install (2 processors) Install on existing infrastructure or more than one server Component ATDT01 AT01 (app tier and data tier combined) Application Tier DT01 X Data Tier X WSS X SSRS X X Virtualization Can be virtualized Must not virtualize Table 7: Dual Server Installation Note: SQL Server Reporting Service can be installed on either the Application or Data Tier □ Multi Server Install (3-4 processors) Install on existing infrastructure or more than one server Component Application Tier ATDT01 AT01 (app tier and data tier combined) DT01 SP01 (SharePoint Server) SSRS01 (SQL Server Report Services) X Data Tier WSS SSRS X X X Page 20 Team Foundation Server Deployment Planning Delivery Guide, Version 3, 10.2013 Virtualization Can be virtualized Must not virtualize Can be virtualized Can be virtualized Table 8: Multi Server Installation Note * SQL Server Reporting Service can be installed on either the Application or Data Tier * SharePoint and SQL Server Reporting Services can be resident on any machine, separate or combined, or either part can be resident on the Application Tier. The only constraint is that The Application Tier requires a dedicated SQL Server Reporting Services component that is not shared for any other purpose than the TFS App Tier. □ High Availability TFS Farm Install (3+ processors) Component ATDT01 AT01 (app tier and data AT02, tier combined) … AT0N Application Tier DT01 SP01 (SharePoint Server) X Data Tier X WSS X SSRS Virtualization SSRS01 (SQL Server Report Services) X Can be virtualized Must not virtualize Can be virtualized Can be virtualized Table 9: High Availability TFS Farm Installation Note: SQL Server Reporting Service can be installed on either the Application or Data Tier Note: Multiple Application Tiers can be installed supported by a single data tier Page 21 Team Foundation Server Deployment Planning Delivery Guide, Version 3, 10.2013 5 Step 3: Upload Leave-Behind Materials The final step in Phase 3 of the TFS Deployment Planning Service is to upload leave behind materials for the customer. These key resources are intended to help customers become more familiar with TFS2012 and further their decision to deploy. During the course of the on-site activities, the consultant may choose to upload these materials with the customer’s subject matter expert in preparation for a demonstration with the customer on the final day of the engagement. A list of these resources is provided here in the “TFS Delivery Guide” (below) as well as in the “TFS Deployment Plan Template.” START here: http://www.microsoftdtdps.com/ >>Conduct the Engagement >> Team Foundation Server Deployment Assessment>> Delivery Materials >> Phase 5 TFS Leave Behind Materials (zipped file includes the following) TFS Leave Behind Resource Guide (Word doc) Materials and Resources (virtual links, pdf documents, PowerPoint decks, etc.) VS2012 ALM Demo VHD - This virtual machine (VM) includes Visual Studio 2012 Ultimate, Visual Studio Team Foundation Server 2012, and a sample application along with sample data which supports hands-on-labs. This VM includes everything you need to learn and/or deliver demonstrations of many application lifecycle management (ALM) capabilities in Visual Studio 2012. (Available through the link above.) Visual Studio Case Studies – A compilation of industry leading white papers and case studies that describe the Visual Studio Application Lifecycle Management solution http://www.microsoft.com/casestudies/ Team Foundation Server MSDN Page: http://msdn.microsoft.com/en-us/vstudio/ff637362.aspx “How to” TFS videos on MSDN: How Do I? Videos Microsoft Visual Studio Team Foundation Server 2012 Trial: http://www.microsoft.com/visualstudio/eng/downloads Team Foundation Server Team Blog: http://blogs.msdn.com/b/team_foundation/ VS and TFS ALM News: http://blogs.msdn.com/b/visualstudioalm/ Brian Harry’s Blog Site: http://blogs.msdn.com/b/bharry/ Channel 9 Team Foundation Server Videos: http://channel9.msdn.com/tags/TFS/ Visual Studio ALM Rangers: http://aka.ms/vsarunderstand and http://aka.ms/vsarsolutions Page 22 Team Foundation Server Deployment Planning Delivery Guide, Version 3, 10.2013 7 ALM Evaluation Guidance 7.1 Executive Overview An Application Lifecycle Management (ALM) Evaluation provides customers with deep insights into the maturity of their software development capabilities and recommends potential improvements to increase predictability and success in their application development projects. The ALM Evaluation offering has been developed to reduce customers’ implementation risks and problems by identifying their current development processes and capabilities and delivering an actionable plan to implement ALM best practices and tools. The ALM Evaluation offering is aimed at the technical decision makers (TDMs) of enterprise customers. These include Chief Information Officers (CIOs), Chief Technology Officers (CTOs), Lead Architects, Vice Presidents of IT and Application Development, and Directors of Application Development in enterprises that have at least 50 developers. Customer interest in the offering stems from the fact that application development is a complex task that, if not performed systematically, has inherent inefficiencies due to the following: The complexities of managing the workflow across groups (especially with geographically dispersed teams) The inefficiencies in development across projects and applications (due to the limited reuse of components and services) Limited management visibility into the project status Managing software defects and the application lifecycle Customers that participate in the TFS Deployment Planning offering can expect to receive a comprehensive report that shows the state of their development capabilities today and provides both recommendations for how to improve the maturity of their development capabilities and guidance on the expected productivity gains. 7.2 Vision Statement The vision of the Application Lifecycle Management (ALM) Evaluation is to provide the customer with a prioritized list of improvement initiatives designed to significantly improve how they develop software. This is accomplished by assessing the customer’s current ALM maturity level and focusing on both their process and their tools. During the engagement, The Consultant establishes credibility by identifying the customer’s current ALM capabilities based on a thorough ALM knowledge, thereby enabling the Consultant to position follow-on work that rapidly advances the customer toward the advanced stages of ALM maturity expanding their business efficiency. 7.3 Scope of Engagement The scope of the engagement is determined early in the engagement by the Consultant. The Consultant must determine the customer’s objectives for the evaluation and facilitate the choice of engagement type. The customer can choose a standard or a more in-depth enhanced engagement, as outlined below. The standard evaluation is a short-term engagement, good for initial trust building or as a discovery component of another offering, like the Team Foundation Server Deployment Planning Service or a Production Pilot. The more Page 23 Team Foundation Server Deployment Planning Delivery Guide, Version 3, 10.2013 comprehensive enhanced evaluation is well suited to customers who want a deeper understanding of their ALM capabilities and are willing to invest the time and money to gain that insight. The standard ALM Evaluation is administered by a skilled Lead Consultant. It contains four phases and includes evaluation on four or five practice area capabilities. These practice areas capabilities are outlined in the preengagement planning and kick-off phase. Next, the Lead Consultant conducts up to 10 individual or group interviews of knowledgeable employees (selected from testers, developers, and managers of the IT group) to determine the current ALM state. Those findings are discussed, along with brief recommendations, in the Working Session meeting. The Working Session meeting is customized to a few areas, based on the customers’ needs, as well as evaluation findings. The final deliverable, the Customer Summary and Recommendations Report, provides a prioritized roadmap for process and tool initiatives. The ALM Evaluation phases, based on the engagement type, are outlined below. 7.4 Out of Scope Several items are out of scope for an ALM Evaluation engagement, but possible as follow-up engagements. Any activity that is not listed above is out of scope. Table 2 provides a sample of the most likely customer requests. Each of these can be a follow-up engagement. Out-of-scope Item Installing and configuring Microsoft Visual Studio® Team Foundation Server Process reengineering and roll-out organization Designing, building, and deploying any custom application Follow-up Engagement Microsoft Services ALM Team Foundation Server (TFS) Lab Pilot Microsoft Services ALM TFS Production Pilot Microsoft Services ALM Project Management with Microsoft Solutions Framework (MSF) for Agile Software Development Microsoft Services ALM Project Management with MSF for Capability Maturity Model Integration (CMMI) Software Development Custom time and materials (T&M) engagement Custom T&M engagement Table 10: Most likely customer requests The consultant should carefully evaluate the areas that are out of scope. These areas represent good opportunities for follow-on work as part of a custom Partner engagement. When the engagement is complete and the closeout meeting takes place, it is a good idea to turn to the out-of-scope section of the work order and show all the things that can be done if the customer would like to continue with a custom engagement. Page 24 Team Foundation Server Deployment Planning Delivery Guide, Version 3, 10.2013 7.5 Risk Assessment When delivering the ALM Evaluation offering, it is important for you to consider (and manage) the inherent risks. To help you, some of the most common risks are listed in Table 3, along with their mitigation strategies. Risk Impact Mitigation Strategy Disruptive or passiveaggressive customer team members Providing misinformation, hiding real issues, and reducing the impact of evaluation recommendations. The consultant must understand that some of the customer’s team members will consider the engagement a threat to their livelihoods. This guide provides specific tactics that can help to mitigate the customer anxiety, but nothing can replace excellent consulting soft skills. See Section 6.2, “Interview Groundwork.” Management of scope The engagement is “fixed fee,” so accepting scope beyond that in the work order will negatively impact profitability. Setting customer expectations during the Pre-engagement phase is critical. Consultants need to control the expectations. The specific areas to keep in mind are: The depth of recommendations. With the short period of time in this engagement, it will not be possible to have a detailed roadmap with implementation plans for each initiative. The interviewing of additional teams or practice areas beyond the agreed-upon scope. Table 11: Common risks 7.6 Potential Customer Views It is important to understand how the customer views the attribute performance functions and the ALM maturity evaluation questioning. That insight will aid your understanding of the power of the impact that the ALM Evaluation engagement has on a company and the reactionary attitudes of its employees. This understanding will enable you to develop essential interview techniques for successful service engagements. The ALM maturity evaluation is a tool that: Facilitates process improvement Analyzes the strengths and weaknesses (based upon industry best practices) of how things really work Acts as an instrument for organizational change Requires active and willing involvement and a group effort at self-analysis Note: This is not an audit from an external party that gives a “report card.” Typically, the senior management recognizes that there is an issue or crisis and asks an outside company to come in and diagnose the obstacles and propose solution plans. An ALM Evaluation consultant is welcomed by these managers, yet the employees you interview often have less welcoming and defensive attitudes. You may inform them of the benefits just listed; however, often these employees feel that their jobs may be threatened by your presence and as a result of your questioning methods. In addition to that stance, you are bound to encounter some or all of the following common customer preconceptions during an ALM Evaluation engagement: If we “fail” the evaluation, I will look stupid in front of my boss. Will I lose my job if I tell the truth? I am being compared to Microsoft’s theoretical model. I am just going to “game” the results (cover my weaknesses and show the best possible face). I do not have time for this worthless exercise. Page 25 Team Foundation Server Deployment Planning Delivery Guide, Version 3, 10.2013 I will find excuses to skip the midpoint and finding meetings. Nothing is wrong with my group. I know we follow the best practices. 7.7 Overcoming Interview Obstacles Going in with the knowledge that there is a problem to be found and someone to blame is not part of an ALM Evaluation engagement. The goal of determining where the company is, in the ALM Maturity Model, plus where they want to be takes a careful approach that focuses on the processes—not on the people—in an effort to improve how the organization operates. Approaching these evaluations with the mindset of a counselor who is there to listen and aid, helps you to obtain both the results that are necessary for successful service relationships and the ability to offer future service and product solutions. Go in as a jackhammer, digging up the road for the answers, and all you may get are tight-lipped responses or an outright rebellion. Remember to avoid firing off questions that can put the interviewee on the defensive. In preparation, make every effort to internalize the capabilities, so that you will be able to ask questions in a conversational tone. Table 9 contains two examples of ways to conduct interviews, demonstrating the focus on the processes —over the individuals and the decisions that they have made. Capability Code reuse Description: Code reuse covers the ability to recognize what existing code can be used in new software projects. Code reuse aids the software development team by reducing software development time scales, reducing costs, and contributing to the dissemination of knowledge and expertise. Customer Operations “Applications are developed in silos, and code is replicated through each, so as you can imagine we do not really have anything being reused, or we use design patterns and no reference architecture.” Customer Situation Interview Focus The developers get defensive because they claim that they know how it should have been done in the first place, but management pushed the silo approach to get the applications rolled out more quickly for the business users. The ALM consultant (interviewer) must focus on determining whether there is a culture around code and software reuse as well as around skills and competencies. A line of questioning about the source code location(s), which tools are used, and where in the organization they are used should give the interviewer a clear indicator of whether the code is centralized and whether there are any processes in place for attempting code reuse. The interviewer should be able to articulate examples of reusable code. The instructor should question the interviewer and possibly ask: Can you give me some examples of reusable code? Some answers to look for are: The interviewer should try to determine whether the customer understands the value of both code reuse and the proper architecture to enable code reuse, such as patterns that promote reuse. Platform libraries Application frameworks Reusable components, such as the logging application block Page 26 Team Foundation Server Deployment Planning Delivery Guide, Version 3, 10.2013 “Our source control system is Microsoft Description: Source control Visual SourceSafe®. We is the use of the use this for everything, capabilities of the source including document control repository to storage. It is pretty enable developer well organized and productivity while ensuring things are versioned. the safekeeping of the We do, however, have code. problems with our code base structure in Visual SourceSafe. The lack of branching seems to be another problem for us, and so is concurrent development.” Source control Code from software factory code generation Our developers do not check code in very often; they keep it on their individual computers. But, our biggest problem is the lack of any traceability. Interviewers should be looking for a level of process and even process automation around source control. They should also examine whether heavy automation is compensating for current repository weaknesses. Labelling and branching comprise an area that the interviewer should thoroughly understand when performing these evaluations. This area should be given thorough attention during the interviews. The interviewer will be trying to understand the customer’s level of understanding and usage of labeling and branching. When discussing branching, a savvy developer will most often pose a situation such as: When working with a new Version1.1 release with bugs fixed, how do you make sure that those updates will be reflected in the Version 2.0 code that you are currently working on? The interviewer should be asking questions about the existence of a branching strategy, how it was defined, and what the criteria were. The interviewer will be asking about traceability. This person should try to delve into what the customer thinks about their level of traceability, where traceability is lost, and the cause for that. The interviewer should be able to articulate what traceability means, as well. Interviewers should also focus on determining whether the source control structure is hampering possible build optimization, and if so, why it is currently that way. Does it affect dependency management? An effective interviewer should drill down into dependency management and the problems around that topic, such as circular references. Table 12: Sample ALM Evaluation questioning 7.8 Evaluation Benefits The customer views that were expressed earlier in this document are impacted by how the interview is presented and conducted. What is important is not only the way that the interview questions are relayed, but Page 27 Team Foundation Server Deployment Planning Delivery Guide, Version 3, 10.2013 communicating the benefits that will be achieved during and through completion of the ALM Evaluation engagement. You might ask: Why is it important to understand the academic view of the evaluation? The answer is that you can educate your customer about the many benefits by understanding the functions of an evaluation. This will aid in defusing any negative attitudes held by any of the customer’s team members. The Maturity Evaluation is an analytical tool that assesses the company’s ALM strengths and weaknesses. Although you may know from the work order that a problem exists, there may be other issues to discover. These issues may or may not be related to the primary reason for being there in the engagement. Only by completing the entire ALM Evaluation engagement will you have the tools that are necessary to conduct the proper analysis. The process of the evaluation provides a voice for change agents. Typically, staff members have a very good idea of what should be changed, but they typically struggle to get their ideas heard. The evaluation gives them a voice. The ALM Evaluation engagement provides staff members with an opportunity to better understand their own organization, its practices, and its communications. It not only determines whether an organization is performing a function, but whether they can reliably take localized success and generalize it across the organization to continued and increased ALM success. The engagement provides the organization a reference model that is based on Consultant experiences and industry best practices. It aids in planning the company’s growth by prioritizing changes—indicating what to work on first. The evaluation process motivates self-analysis and growth in the following ways: All ALM-related teams are required to be interviewed. Through this process of broad participation and increased communication, the organization’s internal change is fostered by the education of industry-wide ALM best practices that are discussed during the interview. When openness is fostered during cross-functional interviews and the organization is broadly participating, the process typically reduces “turf” protection and, at a minimum, makes it easier to spot. Your focus is to treat and focus on the processes—not on the people—in an effort to improve how the organization works. The ALM Evaluation engagement functions as a tool to implement process improvement plans. Members of different teams may have similar ideas on how to improve things, but because they may be compartmentalized, they may be easily dismissed. Interview participation from associated teams can broaden the communication of these ideas and allow them to come together to form a force for change. This can happen as a result of the ALM Evaluation engagement, the interview meetings, or both. The ALM Evaluation engagement acts as an instrument for organizational change. The ALM Maturity Evaluation aids organizations in mapping out the process for improvement, transforming how they work. Unification efforts require leadership to get everyone to see things in the same way and to get middle-level managers to see across borders. The ALM Evaluation engagement helps company unification efforts, because the evaluation requires leadership from the company’s senior management to set goals, monitor progress, provide resources, and support change. In immature organizations, this can be a radical departure from the norm, where management looks at software development as a mystery. Evaluation results are fulcrums of positive change, transforming how the organization grows and achieves higher ALM practices. Remember that your function is to be the counselor, not the jackhammer, and to benefit the customer by: Motivating self-analysis Conducting team interviews that require broad participation Fostering internal change Reducing turf protection or making it easier to spot Page 28 Team Foundation Server Deployment Planning Delivery Guide, Version 3, 10.2013 Fixing the process, not the people Improving how the organization works Maintaining confidentiality Acting as a voice for change agents Getting people to see the same thing in the same way Involving senior management to help with efforts at unification Hosting an unthreatening environment Providing a safe environment to discuss the pros and cons of what they do Thinking across boundaries Offering additional beneficial Consultant services With this knowledge, you will successfully reinforce the positive message to the customer’s staff through a careful understanding of what fears you might face and how to defuse them. 7.9 Understanding the Customer Situation Before starting the engagement, the consultant should get enough background information about the current environment so that the engagement can be positioned within context. This should not be an in-depth analysis (which is beyond the scope of this exercise), but it should capture how the customer currently feels. Some examples of areas that should be covered are: The current development tools across the enterprise, with an emphasis on the primary tools that are used and the projects that will be focused on during the engagement. The customer’s current “difficulties” with the software development process. Any process improvement efforts that might be in process (and the methodology that the customer uses for process improvement). The general software development methodology. Does the customer run an MSF Agile shop or a more formal (MSF CMMI) shop? The current skill levels. The current status of any initiative in the organization that relates to the application development process. Understand whether the customer has a current technology roadmap. This may be either implied or explicitly written. The customer’s roadmap and how it relates to the Microsoft roadmap is something that the consultant delivering this engagement should consider, especially when preparing recommendations as a result of the engagement. Use the key findings from this exercise as inputs to the customer deliverable document that will be delivered at the end of the engagement. Page 29 Team Foundation Server Deployment Planning Delivery Guide, Version 3, 10.2013 Appendix A - ALM Maturity Level Definitions The ALM Maturity Model defines a set of ALM capabilities and four levels of maturity for each capability. Each level of maturity brings with a distinct level of value and specific benefits to the customers organization. (See: Table 10.) Similar to the Core Infrastructure Optimization (IO) and Application Platform Optimization (APO) software application models, the ALM Maturity Model consists of four levels that range from the most basic to the most advanced, dynamic maturity practices. The customer receives a score for each capability within each maturity classification, based on how much of the maturity level they practice. The four maturity levels are classified as follows: A company at the Basic maturity level is typically homegrown and does not have documented processes; has little to no cross-functional communications; and performs in an ad-hoc, informal manner. (These companies are not professional development organizations, and they usually do not know the next steps for developing software.) A company at the Standard maturity level performs in a more uniform way but not 100 percent consistently, such as when a few departments follow the process but you see that some of the other areas do not. The company may follow best practices, but it is not receiving the value because of implementation or commitment. A company at the advanced maturity level performs the right process across the organization, has clearly documented processes that are maintained, and follows best practices. This level is where most companies strive to be. The Dynamic maturity level is rarely found, because it is not feasible for most companies to be performing at this level. Therefore, do not be alarmed or try to lift a customer into this maturity level since it may not make economic or business sense for them to be there. The companies that qualify for this level generally perform at the top of their industry and include the lower maturity levels in their practices. This model aids your customers in understanding the key competencies that are related to successful ALM adoption. The model also offers them a clear and targeted plan that is tailored to their companies’ objectives. Table 10 provides the maturity characteristics that are associated with each level. Maturity Level Basic Standard Advanced Characteristics The development team uses homegrown practices. Best practices are starting to be adopted. The documentation of practices is slight or informal. Tool usage is formal, with usage policies documented and enforced. The practices are performed in an ad-hoc or informal manner. The practices are undocumented. There is little (or no) communication across teams. Some key roles (such as QA) are not consistently performed. Multiple development teams (or all of them) are starting to use consistent practices. The tools that are used are generally disconnected and not integrated. There is a relatively informal use of the tools, with no usage policies defined. The use of tools that support best practices is pervasive across teams. The tools are fully integrated into the integrated development environment (IDE). Page 30 Team Foundation Server Deployment Planning Delivery Guide, Version 3, 10.2013 Dynamic The documentation is formally maintained. Portfolio management tools and processes are fully integrated. Best practices are adopted and documented. Development practices are highly innovative and demonstrate industry leadership. It is possible to track requirements and use impact analysis reports for change requests. Help desk quality metrics are used to track errors, turnaround time, and the cost of maintenance. Table 13: ALM Maturity Model levels Page 31 Team Foundation Server Deployment Planning Delivery Guide, Version 3, 10.2013 Appendix B - Maturity Model Practice Areas The ALM Maturity Model Evaluation is based on eight practice areas of the ALM process. Inside each practice area are the core capabilities and their attributes. You will be inquiring about and applying a score to each practice area. You arrive at the maturity by calculating the scores of these eight ALM practice area attributes. Your interview questions determine the scoring for each attribute in the practice areas, which are then combined to determine the maturity level of the customer. Table 16 lists the practice areas along with some related Basic through Dynamic maturity traits in more detail. Practice Area Architecture and Design Maturity Level Criteria Basic The architecture is not properly documented. Architecture creation does not consider deployment early in the design process. The understanding of the Architect role is unclear. The use of modeling tools is inconsistent or non-existent. No clear process exists for transforming business requirements into technical requirements. Use of the database modeling tool is inconsistent. There is limited database architecture. Standard The Architect role is understood and clearly identified combined with other roles. Tools have been identified, and an early adoption phase exists. Individual project teams have documented database architectures, but no enterprise databases exist. Some habits have starting forming, and some process consistency exists. Documentation is maintained irregularly and inconsistently across teams or projects. Advanced A dedicated architecture team exists. Architectural tools take the deployment process into account. Integrated tools are used across different teams and projects. The use of practices and processes is capitalized on. Practices and processes are applied across teams and projects. Some or all of the database modeling is delegated to a dedicated Database Administrator (DBA) team. Dynamic The process is formalized, documented, and has an architecture. The organization contributes back to the development community both internally and externally through the use of published articles, white papers, and conferences. Well-documented enterprise databases, consistent and versioned enterprise data models, and feedback loops to continuously improve the process exist. The inclusion of patterns and practices is consistent. A clearly defined mechanism exists for sharing or forcing the usage of patterns and practices across projects and teams. Page 32 Team Foundation Server Deployment Planning Delivery Guide, Version 3, 10.2013 Development Basic Developers perform only functional testing, if that. Unit testing is left up to the discretion of the individual coder. Little if any code reuse exists. No code reviews by peers or mentors take place. No metrics are available for code quality. Code analysis is ad hoc, if it is used at all. No published coding standards exist. Database schema-naming conventions are ad hoc and inconsistent. The database programmability and schema are not in source control. Standard Some unit testing takes place, but no formal, written, standard approach exists. Some developer-written unit tests appear in source control. Key code is peer-reviewed. Basic naming standards exist, but they are not consistent across all teams. Handcrafted “one-off” test classes exist, but they are not integrated into the integrated development environment (IDE) testing framework. The testing policy is inconsistent and informal, but a willingness to improve code quality through unit testing exists. The use of comments in the code is inconsistent. Advanced There is consistent use and policies for unit testing that supports smoke tests. Code coverage is used and consistently applied. Static analysis is used. Statistics are regularly captured. Developer- written unit tests run after the QA build verification tests (BVTs). Code is consistently and thoroughly reviewed. Published coding standards are consistently applied. The database is fully versioned in source control. Dynamic Software Configuration Management Benchmarks for quality targets exist. Targets can be internally set. Source control may or may not be used. An unclear understanding of branch and merge concepts exists. “Performance budgets” for developers exist. The organization is an industry leader with published quality metrics. The continuous monitoring of statistics and metrics for continuous improvement exist. The auditing of coding standards takes place. Basic Local copies of code exist. The build process is manual and on-demand. The build process is not documented. No traceability exists among the build, the content or work performed, and the requirement. Check-in occurs irregularly. Page 33 Team Foundation Server Deployment Planning Delivery Guide, Version 3, 10.2013 Standard The source-control tool usage is not integrated. A dedicated build computer exists. The build process is informal and undocumented. Branching and merging are understood by the lead integrators. Daily or regular check-in is performed. Advanced An integrated source-control tool in an IDE is used. A dedicated configuration management role exists. The build process is formal and documented. Build metrics are regularly published. On-demand builds are enabled. Unit tests run after BVTs. The database is built from source-controlled components as part of a build process. Dynamic Deployment and Operations Highly sophisticated build scripts exist. Little or no communications exist between the operations and development teams. No formal help desk or bug tracking process exists. Infrastructure deployment issues are identified and resolved at deployment time. The environments— such as those for development, pre-production, testing, UAT, and production— are not segregated. The build promotion schedule is ad hoc. Multiple internally and externally produced code modules are integrated. Build-outcome alerting and monitoring takes place. All schema objects are unit tested prior to a schema change being completed. A scripted tool is used to simultaneously deploy schema changes to multiple environments Basic No tools are used; operations are based on e-mail messages with manual follow-up. Build promotion is unregulated. The environment is undocumented. Standard The help desk incident tracking tool (for training, user issues, and infrastructure) is a stand-alone one. Incidents are not integrated with TFS bug tracking nor escalated to TFS. The automation and validation of build deployments is limited. Some monitoring is in place. Some procedures and/or approval processes are in place for build deployment. The Deployment Manager role has been identified. The infrastructure is documented. The environment is segregated, but ownership is unclear. Advanced The help desk is integrated with the bugs in TFS. Page 34 Team Foundation Server Deployment Planning Delivery Guide, Version 3, 10.2013 Monitored instrumentation is hooked into the infrastructure and the applications. Tools exist to deploy and validate successful build deployments, smoke tests, testing scripts, and data generation scripts. An approval process with traceability integrated into the tools exists. The infrastructure architecture is documented in integrated tools. A clear cross-functional team (of infrastructure-development team members) has been identified. The environments are segregated, ownership is clearly defined, and promotion procedures are well understood and consistent among the environments. Dynamic Governance Help desk quality metrics are used for turnaround time, the cost of maintenance, and the identification of error-prone subsystems. Deployment is automated. Projects are started with limited justification. Monitoring is proactive and ongoing. IntelliTrace data collectors exist on production environments to enable IntelliTrace snapshotting for developers. Basic Projects are funded based on key influencer opinions. No return on investment (ROI) evaluation or retrospective takes place. No portfolio review process takes place. No compliance program or target is in place. No process improvement initiative is in place. Standard The certification for the chosen compliance program is informal. Compliance certification is applied and inconsistently monitored across teams. Processes use semi-manual tools (for example, Microsoft Excel® lists). The use of initiative targets is random. Advanced The certification for the chosen compliance program is formal. Cross–team resources are managed and their time is assigned. Portfolio management techniques are used, but portfolio and project management tools are not necessarily integrated. Governance is integrated with the certification and compliance program. Dynamic Project Planning and Management The portfolio management tools and process are fully integrated. The ROI and retrospective are supported by metrics. No formal stakeholder communications plan is in place. Team coordination is informal, and task assignments are made verbally or by using e-mail. The organization has Microsoft Project Server integrated with TFS. Participation occurs in the creation and review processes of industry standard compliance programs. Basic The processes for estimation, planning, risk management, and scope are informal or non-existent. An instinctive and intuitive approach is used. Page 35 Team Foundation Server Deployment Planning Delivery Guide, Version 3, 10.2013 Financial information is not evaluated by the Project Manager on an ongoing basis. No clear Project Manager responsibility is defined. Standard Microsoft Project may be used. The use of Project is individual, not integrated, and not standardized. Tool usage is dependent on the strength of the individual Project Manager. Financial information is manually evaluated by the Project Manager. The Project Manager responsibility is clearly assigned. Advanced The integrated use of TFS exists for the management of bugs, tasks, and change requests. EPM is used for financial and resource tracking through EPM (Project Server) to TFS integration. External resources, stakeholders, and partners share project information and have integrated tools—such as Microsoft SharePoint® and Microsoft Visual Studio® Team Web Access — to perform their roles in the project Dedicated Project Managers exist. Constant feedback from the product owners, and end-users, to the development teams is easy and quick. Dynamic Testing and Quality Assurance The full integration of Portfolio Manager, Project Server, and TFS exists. No dedicated quality assurance (QA) team exists. No quality metrics exist. Metrics are used to drive projects and aid in estimation and re-estimation. A Program Management Organization (PMO) is in place. Basic Ad-hoc functional testing, which is closer to debugging than testing, is performed by the development team. The fix and deploy cycles are long. The regression bug rate is high. Test data is not abstracted and no test data generation is available. Standard A dedicated QA group has been staffed. A test planning process has been defined. Non-integrated testing tools are in place. The testing procedures and environment are informally documented. Progress tracking is rudimentary. Advanced The organizational culture is accepting of defined testing policies. Test planning begins at the requirements phase. Testing is a measured and quantifiable process. Integrated tools generate publishable metrics. Dynamic A test process improvement group and tools are in place. The organization has industry leadership on evaluating potential testing tools and strategies. Page 36 Team Foundation Server Deployment Planning Delivery Guide, Version 3, 10.2013 Defect prevention is practiced. The use of automated testing tools is audited and required prior to the deployment of schema changes. Requirements Engineering Basic and User Experience Testing is based on statistical sampling and measurements of confidence, trustworthiness, and reliability. Broad assumptions are made by the development team that they know what to build. They work in an ad-hoc manner, using their own initiative, perceptions, and ingenuity. Little or no written requirements exist. Little or no customer feedback on user experience. Little or no validation with stakeholders takes place. No User Experience (UX) role has been defined. User documentation is either non-existent or not standardized (which means user documentation is on demand and as needed). Standard The quality and format of documented requirements are consistent. User-centered design principals are understood, but supported by disconnected tools. Some consistent user documentation exists. The versioning of requirements is enabled and tracked. The requirements are accessible to all the stakeholders and team members. Some non-integrated tools are used for user interface (UI) modeling and prototyping. Advanced Multiple types of requirements—for example, functional, non-functional, business-system, and feature—are captured. Requirements relationships are tracked, and tasks are traceable. Multiple types of requirements—for example, functional, non-functional, business, system and feature—are captured. Requirements relationships are tracked, and tasks are traceable. Fully integrated tools that use requirements coverage analysis reports are used for traceability. Fully integrated tools that use requirements coverage analysis reports are used for traceability. Dynamic A product Change Control Board has been instituted. UX experts incorporate the latest and best UI principals. Impact analysis reports for change requests are used. Published metrics exist for new requirements, implemented requirements, tested requirements, and requirement change requests. The continuous improvement of UX for subsequent use occurs. UX designers have a good understanding of the technology and its limitations. The designers are able to understand the intersection of ease of implementation versus a great-looking UI. Table 14: ALM Maturity Model practice area criteria Page 37 Team Foundation Server Deployment Planning Delivery Guide, Version 3, 10.2013