The Magic Of Application Lifecycle Management In Vs Public


Published on

How a new approach coupled with fresh tooling can make ALM more effective and easier.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

The Magic Of Application Lifecycle Management In Vs Public

  1. 1. David Solivan Architect Evangelist Microsoft Corporation
  2. 2. “ Any sufficiently advanced technology is indistinguishable from magic.” Arthur C. Clarke’s 3 rd Law
  3. 3. “ the impossible must become possible. the possible must become routine. the routine must become easy. and the easy must become beautiful.” Doug Henning’s creedo
  4. 5. Is it impossible to have a successful, large, team-based, software development project delivered on time and under budget?
  5. 6. <ul><li>What percentage of such projects succeed? </li></ul>
  6. 7. Source: Standish Group, 2004 Third Quarter Research Report, CHAOS Research Results 1994 1996 1998 2000 2002 2004 Succeeded Failed Challenged 40% 30% 20% 10% 0% 50% 60%
  7. 8. Source: Forrester, September 2006, Trends “The Root Of The Problem: Poor Requirements”, Carey Schwaber, 2006 Is IT getting involved in the business initiatives at the right time? Are the requirements gathered initially the right ones? How are you managing changes to requirements?
  8. 9. Source: NIST, The Economic Impacts of Inadequate Infrastructure for Software Testing 2002, Standish Group The Cost of Inadequate Software Testing (Billions) Software users Software developers $0 $10 $20 $30 $40 How does the business define quality?
  9. 10. Individual Productivity Organization Size Desired Actual How can we create team and organizational capacity for innovation?
  10. 12. It is possible if we take a new approach to developer tools that recognizes that it takes more than developers to build a solution.
  11. 13. Individual Team Organization <ul><li>Productive </li></ul><ul><li>Integrated </li></ul><ul><li>Extensible </li></ul>Application Lifecycle Management Process Tools
  12. 14. “ Successful software projects are not possible without the understanding that developers are but one part of a team, and that all parts of this team are equally important for success.” David D. Solivan … just now Project Manager Database Professionals Developer Tester Architect Users & Management
  13. 16. How do we take the possibility of successful team development and make it an everyday reality?
  14. 17. Team Foundation Server Web Browser Team Explorer Microsoft Project Microsoft Excel Team Edition for Testers Team Edition for Developers Team Edition for Architects Team Edition for Database Professionals Project Manager Database Professionals Developer Tester Architect Users & Management Work Items Build Server Version Control Project Portal Reporting & Analytics
  15. 18. <ul><li>Rebuilt Team Build subsystem </li></ul><ul><li>Acquired TeamPlain Web Access (TWA) </li></ul><ul><li>Usability improvements in Version Control </li></ul><ul><li>Extensibility improvements in Work Item Tracking </li></ul><ul><li>Performance and scalability improvements </li></ul><ul><li>Customer driven license changes: </li></ul><ul><ul><li>anyone in the organization may open and track their own work items </li></ul></ul><ul><ul><li>A new Internal Connector License enables IT orgs to integrate current systems with TFS </li></ul></ul>
  16. 19. <ul><li>2008 is 2x faster than 2005 </li></ul><ul><li>Any size team, any size project </li></ul><ul><li>Deploying broadly across Microsoft </li></ul><ul><ul><li>7k active users, 1,000 projects, 25 TFS instances </li></ul></ul>2008 Hardware Recommendations
  17. 20. Designing Applications
  18. 21. Validating Architecture
  19. 22. Designing Web Services
  20. 23. Application Designer <ul><li>Model application components and their communication paths </li></ul><ul><li>Create artifacts that can be used throughout the development process - no static models </li></ul><ul><li>Define application deployment needs before you begin construction </li></ul>The Application Designer allows you to define the application components that comprise a service oriented system
  21. 24. Logical Datacenter Designer <ul><li>Reduce deployment defects. </li></ul><ul><li>Share deployment environment information between projects. </li></ul>Captures a datacenter’s policies and logical structure.
  22. 25. Deployment Designer <ul><li>Communicate your deployment needs to IT operations </li></ul><ul><li>Validate your application deployment before construction </li></ul><ul><li>Help developers understand the deployment environment of the application </li></ul>The Deployment Designer allows you to validate the deployment of an application against a logical view of your data center
  23. 26. Class Designer <ul><li>Design first approach to class design. </li></ul><ul><li>Generate new classes and relationships graphically. </li></ul><ul><li>Visualize the structure of existing classes, interfaces and other .NET types </li></ul><ul><li>Automatically generates code from design. </li></ul><ul><li>Model and code will always be synchronized. </li></ul>Design object models and view class relationships.
  24. 27. Class Designer Class Designer and two-way code synch
  25. 28. Improving Code Quality <ul><li>Integrated Unit Testing </li></ul><ul><li>Integrated Static Code analysis </li></ul><ul><ul><li>Security Errors </li></ul></ul><ul><ul><li>Localization problems </li></ul></ul><ul><ul><li>Memory issues </li></ul></ul><ul><ul><li>… </li></ul></ul><ul><li>Integrated Profiler </li></ul><ul><ul><li>Performance problems </li></ul></ul><ul><ul><li>Memory problems </li></ul></ul>Potential Sql Injection attack Object not Disposed Localization Issue
  26. 29. Improving Quality: Profiler Who allocates the most Objects Who allocates the most memory Who is called the most? Who runs for the longest What do you have the most of? What is taking up the most memory
  27. 30. Code Metrics <ul><li>Gives a snapshot of software health </li></ul><ul><ul><li>Understand your code complexity </li></ul></ul><ul><ul><li>Quickly compare code to find potential trouble spots </li></ul></ul><ul><li>Reduce risk & improve maintainability </li></ul><ul><li>Understand complexity of inherited code </li></ul>New in VSTS 2008
  28. 31. Metric: Class Coupling # of Dependencies Between Types GUI Business Logic Transaction Customer Account
  29. 32. Metric: Class Inheritance # of Base Types Component Control Label ListBox ListControl LinkLabel ComboBox
  30. 33. Metric: Lines of Code # of Executing Lines of Code 1 2 3 4 5 static class Program { #region Application Entry Point /// <summary> /// The main entry point for the application. /// </summary> [ STAThread ] static void Main ( string [] args ) { Application . EnableVisualStyles (); Application . SetCompatibleTextRenderingDefault ( false ); Workflow ( args ); } #endregion #region Static Methods /// <summary> Primary workflow for the application. </summary> /// <param name=&quot;args&quot;> Command line arguments. </param> private static void Workflow ( string [] cmdargs ) { // Collect the list of command line arguments List < string > args = new List < string >( cmdargs ); // Show usage syntax if the user so asks if ( UseArg ( args , &quot;/?&quot; )) { ShowAbout (); return ; }
  31. 34. Metric: Cyclomatic Complexity # of Branches 1 2 3 4 5 6,7 8 9 10 11 bool ParseCommandLine ( string [] args ) { if ( args . Length == 0) ShowHelp (); return ; for ( int i = 0; i < args . Length ; i ++) switch ( args [ i ]) { case &quot;/?&quot; : ShowHelp (); return false ; case &quot;/input&quot; : if ( args . Length > i && File . Exists ( args [ i + 1])) InputFile = args [ i ++]; break ; case &quot;/c&quot; : Colapse = true ; break ; } return true ; }
  32. 35. Metric: Maintainability Index <ul><ul><li>Overall indication of complexity by aggregation of several factors </li></ul></ul><ul><ul><li>Lines of Code </li></ul></ul><ul><ul><li>Cyclomatic Complexity </li></ul></ul><ul><ul><li>Computational Complexity </li></ul></ul><ul><li>Used on the Windows Code Base </li></ul>
  33. 37. How do we take ALM from an everyday task, to a simple, easy part of the background noise so users can focus on primary tasks?
  34. 40. Visual Studio Team Suite MSF Process and Guidance Visual Studio Team Foundation Server Visual Studio Industry Partners Software Architects Software Developers Software Testers Database Professionals Visual Studio Team Explorer Application Modeling Infrastructure and Deployment Modeling Code Analysis Performance Tuning Security Analysis Database Build & Deployment Database Change Management Database Testing Performance Testing Manual Testing Test Case Management Visual Studio Professional Edition Change Management Work Item Tracking Reporting Project Site Integration Services Project Management Load Test Agent Visio and UML Modeling Class Modeling Unit Testing Code Coverage New!
  35. 41. SOAP Messages SOAP Messages SOAP Messages File Transfers File Transfers File Transfers
  36. 42. SOAP Messages SOAP Messages SOAP Messages File Uploads File Uploads File Uploads Downloads
  37. 43. * Raleigh office has 3Mbps of bandwidth shared by ~70 employees. Content No Proxy With Proxy 35 MB, 1824 Files 00:05:20 00:00:32 80 MB, 8 Files 00:14:07 00:00:25
  38. 44. Redmond, WA 368 Users Fargo, ND 4 Users Research Triangle, NC 42 Users Copenhagen, Denmark 6 Users Hyderabad, India 14 Users Team Foundation Users: 434 Version Control Users: 319 Number of Files/Folders: 271,766/30,376 Uncompressed File Size: 5.85 GB Compressed File Size: 1.71 GB Workspaces: 612 Workspace File Versions: 11 Million Changesets: 3489 Pending Changes: 4806 Shelvesets: 1254
  39. 45. Redmond, WA 368 Users Fargo, ND 4 Users Research Triangle, NC 42 Users Copenhagen, Denmark 6 Users Hyderabad, India 14 Users
  40. 46. “ Shelve” work in progress Check-in policies enforced during check-in process
  41. 47. Full Work Item Support in Microsoft Excel Full Access from Visual Studio Synchronized with Microsoft Project View project status in Microsoft Excel or Microsoft Project
  42. 51. David Solivan Architect Evangelist Developer & Platform Evangelism
  43. 53. Are we at beautiful yet? There is still work to be done to incorporate business requirements directly into ALM toolset. Project Rosario is addressing.
  44. 54. <ul><li>Portfolio planning – Portfolio Server integration (via Project Server) </li></ul><ul><li>Project planning – Project Server integration + lightweight scheduling </li></ul><ul><li>Requirements Capture and Validation (Partner Ecosystem) </li></ul><ul><li>Requirements Traceability - Hierarchical Linking and Querying </li></ul><ul><li>Reporting dashboards and enhanced reports </li></ul><ul><li>Process Authoring and Customization </li></ul>
  45. 55. <ul><li>Software Factories – Guided Development Experience </li></ul><ul><li>Enhanced DB Refactorings + Refactoring into App Tier </li></ul><ul><li>T-SQL Static Analysis and Code Coverage </li></ul><ul><li>Policy Extended to the DB Tier </li></ul><ul><li>Gated Checkin </li></ul><ul><li>Test Prioritization - Determine what are the most important tests to run </li></ul><ul><li>Test Case Management </li></ul><ul><li>Test Execution (Functional and Manual Testing) </li></ul><ul><li>“ Eliminate the No Repro Problem” – Test / Diagnostics Integration </li></ul>
  46. 56. Current state is near impossible Possible to solve if we understand that development is a team activity A tool that addresses all ALM Roles makes ALM part of the workday. A tool that requires roles to communicate and provides seamless supporting features Coming soon…
  47. 57. [email_address]
  48. 58. © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.