2. “ Any sufficiently advanced technology is indistinguishable from magic.” Arthur C. Clarke’s 3 rd Law
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?
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%
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?
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?
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.
13.
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
15.
16. How do we take the possibility of successful team development and make it an everyday reality?
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
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
30.
31. Metric: Class Coupling # of Dependencies Between Types GUI Business Logic Transaction Customer Account
32. Metric: Class Inheritance # of Base Types Component Control Label ListBox ListControl LinkLabel ComboBox
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="args"> 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 , "/?" )) { ShowAbout (); return ; }
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 "/?" : ShowHelp (); return false ; case "/input" : if ( args . Length > i && File . Exists ( args [ i + 1])) InputFile = args [ i ++]; break ; case "/c" : Colapse = true ; break ; } return true ; }
35.
36.
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?
38.
39.
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!
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
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
45. Redmond, WA 368 Users Fargo, ND 4 Users Research Triangle, NC 42 Users Copenhagen, Denmark 6 Users Hyderabad, India 14 Users
46. “ Shelve” work in progress Check-in policies enforced during check-in process
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
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.
54.
55.
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…