700 likes | 718 Views
MSDN Event January 2008 Introducing Application Lifecycle Management with Visual Studio Team System. Didier Danse http://didierdanse.net Daniel Ferreira. Agenda. Application Lifecycle Management What is it & why is it useful? The Visual Studio Team System solution Visual Studio Team Suite
E N D
MSDN Event January 2008Introducing Application Lifecycle Management with Visual Studio Team System Didier Dansehttp://didierdanse.net Daniel Ferreira
Agenda • Application Lifecycle Management • What is it & why is it useful? • The Visual Studio Team System solution • Visual Studio Team Suite • What’s in it for … • Team Foundation Server • Build Automation & Continuous Integration • Roadmap
100% 50% 0% Operations and Maintenance New Application Development ChallengesOperations & Maintenance Source: Forrester, Performance-Driven Development, Carey Schwaber, 2006
ChallengesThe Cost of Quality Software quality errors cost businesses in the U.S.A. $59,000,000,000 each year • Software bugs account for • 55%of all downtime costs
Non FunctionalRequirements Bugs Dev Team Tasks UseCase Business Analyst Project Manager Test Production Errors Operations Application Lifecycle ManagementWhat is it & why is it useful? Application lifecycle management (ALM) regards the process of delivering software as a continuously repeating cycle of inter-related steps: definition, design, development, testing, deployment and management. Change Requests “ALM solutions are integrated tool sets that support and unite the following lifecycle activities: requirements management, design and modeling, development, software configuration management (SCM), and testing.”
Demo Process Template
Application Lifecycle ManagementWhich tools are used? • Visual Studio 2008 • Ms Office (Excel, Project…) • Manage Work Items • SharePoint (WSS 3.0 – MOSS 2007) • Share documents between team players • Reporting Services • View and create reports • Createyourown …
Application Lifecycle ManagementHow to expose the same information to all roles and products?
Visual Studio Team SystemApplication Lifecycle Management, the solution
Application Lifecycle ManagementWhat is it & why is it useful? • Solve enterprise IT challenges • Better communication • Align business & IT • Measure team efficiency, real & perceived • Keep track of bits Improve Software Quality
Agenda • Application Lifecycle Management • What is it & why is it useful? • The VSTS solution • Visual Studio Team System • What’s in it for … • Team Foundation Server • Build Automation & Continuous Integration • Roadmap
What’s in it for … Project Managers / Business Analysts
Project Managers / Business Analysts Project Portal • MOSS 2007/WSS 3.0 Support • Central repository for documents • Document management • Versionning – Permissions – Check in/out – Workflows – Alerts … • Remote servers capable • Extranet • Share documents, reports withcustomers
Project Managers / Business Analysts Office Integration Each role can use the appropriate tool Interaction between TFS and MS Excel / MS Project • Excel • Used especially for Work Items (Task, Bug, …) • Project • Used for planning and Task management
Full integration into Microsoft Excel foradd, change Work Items Project Managers / Business Analysts Office Integration – Microsoft Excel
Full integration into Microsoft Project fora real-time viewof work items Project Managers / Business Analysts Office Integration – Microsoft Project
Demo Microsoft Office IntegrationProject Portal - SharePoint
Project Managers / Business Analysts Web Access Web application for • Work Items management, Reports … Atthis time, itis a separatedownload
How much work is leftand when will it be done ? Project Managers / Business Analysts Reports
Demo Web Access Reports
What’s in it for … Architect
Architect Distributed System Designers • Distributed Application Diagram : • Application • System • LogicalDatacenter • Deployment
Architect Distributed System Designers Applications Architects,Developers Infrastructure Architects
Demo Distributed System Designers
What’s in it for … Developers / Lead Developers
Developers / Lead Developers Unit Tests and Code Coverage • How to be sure that individual method or function works correctly? • Create an application? No! • Prove production code works Unit Tests • How to be sure that all cases have been tested? • Determine effectiveness of unit tests Code Coverage • Two views: • Summary • Code Highlight
See easily Tests Results Developers / Lead Developers Unit tests – Results View
Select test that you really want to run using the test view… Or run it directly from code editor environment Developers / Lead Developers Unit tests – Run View
Identify quickly which blocks have not been tested Developers / Lead Developers Code Coverage – Summary View
Quickly identify executed code paths to determine effectiveness of unit tests Developers / Lead Developers Code Coverage – Highlight View
Demo Unit TestsCode Coverage
Developers / Lead Developers Code Quality • Code Analysis • Analyze code withoutexecutingit • Identifycodingerrors and securityvulnerabilities • Spellingrules • Fullycustomizable • Code Metrics • Identify code whichwillbedifficult to maintain • Calculated Maintainability Index based on Cyclomatic Complexity, Depth of Inheritance, Class Coupling and Lines of Code
Identify code blocks which need refactoring Developers / Lead Developers Code Quality
Check code quality regarding best practices and custom rules Developers / Lead Developers Code Quality
Developers / Lead Developers Performance Analysis How to be sure thatwedevelopreliable and robust software? • Performance Analysis • Measure and evaluate issues related to performance • Two types • Stampling (data collectedperiodically) • Instrumentation (data stored for lateranalysis) • Reports Comparison
Load test applications for performance characteristics Developers / Lead Developers Performance Analysis
Demo Performance Analysis
Developers / Lead Developers Version Control • How to avoid others to change the same file than you? • Exclusive & Shared Check out • How to be sure that we modify the latest version of a file? • Get Latest On Checkout • How to be sure that code checked in is correct? • Check in Policies
Complete Source Control Integration in Menus Developers / Lead Developers Team Foundation Server Version Control
Associate work items with each check-in to provide traceability from requirements to code Developers / Lead Developers Team Foundation Server Version Control – Check In Policies
Developers / Lead Developers Version Control • How to create different versions? • Branching • How to apply corrections from older version? • Merging • How to help finding right older version? • Labeling • How to avoid to check in invalid code? • Not check in it! Use Shelving
Developers / Lead Developers Version Control • How to see which files have been changed? • Folder Diff • How to see which block of lines have been changed and who have changed this code ? • Annotate
Identify who modified file content and what has been changed Developers / Lead Developers Team Foundation Server Version Control - Annotate
Demo Version Control
What’s in it for … Database Professionals
Database Professionals Version Control • Version Control • With the ability to reverse engineer a database • Samethan code version control [IMG]
Database Professionals Schema and Data Comparison Comparisonbetweentwoenvironments Generate a script whichallow to update targetdatabase • Schema Comparison • Tables • Views • StoredProcedures • Data Comparison