700 likes | 719 Views
Explore the benefits of Application Lifecycle Management (ALM) in software development cycles, tools used, and integration with Visual Studio Team System for improved communication, efficiency measurement, and software quality enhancement.
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