MSF for Agile Software Development Granville Miller 8 November 2005.

Slides:



Advertisements
Similar presentations
Unified process(UP) UP is an OO system development methodology offered by Rational(Rational Rose) s/w, now a part of IBM Developed by Booach,Rambaugh,Jacobson--
Advertisements

System Integration Verification and Validation
Systems Development Environment
Software Development Life-Cycle Models
Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department of Defense © 1998 by Carnegie Mellon.
Agile Project Management with Scrum
Agile development By Sam Chamberlain. First a bit of history..
CSCU 411 Software Engineering Chapter 2 Introduction to Software Engineering Management.
Sixth Hour Lecture 10:30 – 11:20 am, September 9 Framework for a Software Management Process – Artifacts of the Process (Part II, Chapter 6 of Royce’ book)
Improving Process for Better Software. Who We Are An experiential learning program that provides technology solutions for our partners, and real- world.
Software Engineering. How many lines of code? Average CS1004 assignment: 200 lines Average CS4115 project: 5000 lines Corporate e-commerce project: 80,000.
Software Engineering.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
1 Lecture 1: Processes, Requirements, and Use Cases.
Tom Hollander Solution Architect Solutions Development Centre Microsoft Australia ARC308.
Visual Studio 2005 Team System: Software Project Management Hans Verbeeck
Managing a Project Using an Agile Approach and the PMBOK® Guide
Agile Process: Overview n Agile software engineering represents a reasonable compromise to conventional software engineering for certain classes of software.
Enabling Better Software through Better Testing Jason Anderson, Microsoft
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
What is Business Analysis Planning & Monitoring?
DEV302 - Visual Studio Team System Building Robust and Reliable Software Eric Lee Program Manager Microsoft Corporation.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Software Development Landscape
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
MSF Requirements Envisioning Phase Planning Phase.
By Saravanan Bala. General Report 31 % of Software projects are cancelled 75 % of the software projects are considered failures by the people who initiated.
Testing Challenges in an Agile Environment Biraj Nakarja Sogeti UK 28 th October 2009.
© 2006 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 Agile Assessment Gadi Lifshitz, Ayelet Kroskin, Barak Yagour, Yael Dubinsky.
Building Robust and Reliable Software Jason Anderson, Microsoft
OBJECT ORIENTED SYSTEM ANALYSIS AND DESIGN. COURSE OUTLINE The world of the Information Systems Analyst Approaches to System Development The Analyst as.
Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model.
1 Software Process Models-ii Presented By; Mehwish Shafiq.
DEV 303 Visual Studio "Whidbey" Enterprise Tools: Source Control and Work Item Tracking Brian Harry Product Unit Manager Microsoft Visual Studio.
1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
04 | Define a Software Iteration Steven Borg | Co-founder & Strategist, Northwest Cadence Anthony Borton | ALM Consultant, Enhance ALM.
Chapter 2 Iterative, Evolutionary, and Agile You should use iterative development only on projects that you want to succeed. - Martin Fowler 1CS
Rational Unified Process Fundamentals Module 5: Implementing RUP.
© 2007 BigVisible Solutions, Inc. All Rights Reserved Training Solutions Agile Training Game v
PRJ566 Project Planning & Management Software Architecture.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.
Stand Up Comedy Project/Product Management
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix B Agile Methodologies B.1.
Overview of RUP Lunch and Learn. Overview of RUP © 2008 Cardinal Solutions Group 2 Welcome  Introductions  What is your experience with RUP  What is.
AGILE XP AND SCRUM © University of LiverpoolCOMP 319slide 1.
MSF 4.0 for Agile Software Development Ron Tolido Capgemini.
Visual Studio 2005 Team System: Software Project Management Brian A White Microsoft
Modelling the Process and Life Cycle. The Meaning of Process A process: a series of steps involving activities, constrains, and resources that produce.
UML - Development Process 1 Software Development Process Using UML.
Building Systems for Today’s Dynamic Networked Environments A Methodology for Building Sustainable Enterprises in Dynamic Environments through knowledge.
MSF Agile Essentials Mikael Deurell Senior Consultant Microsoft Mail: Blog:
Extreme Programming מתודולוגיה לפיתוח פרויקטי תוכנה.
#msdevcon Community Track IMPLEMENTATION OF SCRUM Bernardin Katić Insa Investment Software AG.
Informed Traveler Program and Applications Agile / Scrum Overview Jerry Inberg.
Introducing an Agile Process to an Organization By Mike Cohn and Doris Ford IEEE Computer.
Embedded Systems Software Engineering
Chapter 5 Agile Development Moonzoo Kim KAIST
Project Workflow.
Владимир Гусаров Директор R&D, Dell Visual Studio ALM MVP ALM Ranger
Chapter 3: The Project Management Process Groups: A Case Study
Introduction to Software Engineering
Attend|Learn|Grow Taking Your Career to the Next Level
Agile Process: Overview
Introducing ISTQB Agile Foundation Extending the ISTQB Program’s Support Further Presented by Rex Black, CTAL Copyright © 2014 ASTQB 1.
Topic 1: Introduction to the Module and an Overview of Agile
Office 365 Development July 2014.
Presentation transcript:

MSF for Agile Software Development Granville Miller 8 November 2005

Project Failure Rates %23%49% 26%28%46% 27%40%33% 16%31%53% This chart depicts the outcome of the 30,000 application projects in large, medium, and small cross-industry U.S. companies tested by The Standish Group since Source: The Standish Group International, Extreme Chaos, The Standish Group International, Inc., 2000 SucceededChallengedFailed

The State is Improving Small Releases Small Releases Increased Customer Involvement Increased Customer Involvement

Agile Manifesto Individuals and interactions over processes and tools Individuals and interactions over processes and tools Working software over comprehensive documentation Working software over comprehensive documentation Customer collaboration over contract negotiation Customer collaboration over contract negotiation Responding to change over following a plan Responding to change over following a plan Source:

What are Personas? In the context of product development, personas are descriptions of a group of typical users. In the context of product development, personas are descriptions of a group of typical users. Instead of talking about the group of users in an abstract, impersonal way, a persona represents a 'proxy' for the user group, and provides a means to talk and reason about the group through the characteristics of one fictional individual, the persona. Instead of talking about the group of users in an abstract, impersonal way, a persona represents a 'proxy' for the user group, and provides a means to talk and reason about the group through the characteristics of one fictional individual, the persona.

Where do Personas Fit? On-site Customer Actor Persona

Customer Involvement Review Working Software Refine Personas Real Customers Scenarios

Personas at Microsoft Source:

What is in a Persona? A persona describes the typical knowledge, skills, abilities, needs, desires, working habits, tasks, usage patterns and backgrounds of a particular set of users. A persona describes the typical knowledge, skills, abilities, needs, desires, working habits, tasks, usage patterns and backgrounds of a particular set of users. A persona is fictional reality, collecting together real data describing the important characteristics of a particular user group in a fictional character. A persona is fictional reality, collecting together real data describing the important characteristics of a particular user group in a fictional character.

Jack Role: Online Shopper Role: Online Shopper Motivation: Get it Quick Motivation: Get it Quick Usage: Jack hates to shop but wants his equipment immediately. He will place his order on Thursday night for his weekend activity. Jack doesn’t want to wade through a catalog. Instead, he wants things that he typically orders to show immediately. Usage: Jack hates to shop but wants his equipment immediately. He will place his order on Thursday night for his weekend activity. Jack doesn’t want to wade through a catalog. Instead, he wants things that he typically orders to show immediately.

Judith Role: Online Shopper Role: Online Shopper Motivation: Get it Cheap Motivation: Get it Cheap Usage: Judith shops for the best bargain. She looks for the best deal on similar items. She will visit half a dozen sites to find the best deal. Usage: Judith shops for the best bargain. She looks for the best deal on similar items. She will visit half a dozen sites to find the best deal.

MSF for Agile Software Development Scenario-driven development process for building.NET, Web, Web Service, and other object-oriented applications. Scenario-driven development process for building.NET, Web, Web Service, and other object-oriented applications. Directly incorporates practices for handling quality of service requirements such as performance and security. Directly incorporates practices for handling quality of service requirements such as performance and security. Utilizes a context-driven approach (context-based) to determine how to operate the project. Utilizes a context-driven approach (context-based) to determine how to operate the project.

Getting the Whole Team Involved Jacqui Ackerman Project Manager Jacqui Ackerman Project Manager Art Benson Architect Art Benson Architect Mort Gaines Developer Mort Gaines Developer Renee Davis Tester Renee Davis Tester Larry Sykes Business Analyst Larry Sykes Business Analyst Ian Manning Ian Manning Release Manager

Roles -> Constituencies

Shadow Architecture With the visual modeling tools commonly available today, working code can cast shadows With the visual modeling tools commonly available today, working code can cast shadows

To See the Forest… Architects should allow work at the component or “application” level Architects should allow work at the component or “application” level

Trailing Shadows Trailing Shadows are visual reflections of the code base Trailing Shadows are visual reflections of the code base These should come for free or nearly free These should come for free or nearly free

Leading Shadows Sometimes we need to sketch out architecture/design before we implement them Sometimes we need to sketch out architecture/design before we implement them Whiteboard is often used Whiteboard is often used Should become working code within the iteration – no BDUF Should become working code within the iteration – no BDUF

Larger Projects…. Function team Feature teams Lead team Program Management Release Operations Product Management User Experience Development Test Catalog Program Management Development Test Site Engine & Design Program Management User Experience Development Test Fulfillment Program Management User Experience Development Test User Experience Release Operations Architecture

Getting the Whole Team Involved Jacqui Ackerman Project Manager Jacqui Ackerman Project Manager Art Benson Architect Art Benson Architect Mort Gaines Developer Mort Gaines Developer Renee Davis Tester Renee Davis Tester Larry Sykes Business Analyst Larry Sykes Business Analyst Ian Manning Ian Manning Release Manager

Testing that is acceptable on one project may be criminal on another Testing that is acceptable on one project may be criminal on another Release Criteria Release Criteria Testing Thresholds Testing Thresholds Trend Analysis Trend Analysis Process Feedback Process Feedback Context Driven Testing

Release Criteria No Sev 1s and 2s in the shipping product No Sev 1s and 2s in the shipping product

Test Thresholds Code Coverage for Unit Test Code Coverage for Unit Test Which statements of my application are being executed? Which statements of my application are being executed? Useful to identify incomplete testing Useful to identify incomplete testing

Code Coverage void PurchaseItem(int itemID) { if (itemID == 0) { throw new Exception(); } else { ProcessOrder(itemID); } } void UnitTest() { PurchaseItem(1); // test the output }

{ if (itemID == 0) { throw new Exception(); } else { ProcessOrder(itemID); } } Code Coverage void UnitTest() { PurchaseItem(1); // test the output } void PurchaseItem(int itemID)

{ { throw new Exception(); } else { ProcessOrder(itemID); } } void PurchaseItem(int itemID) if (itemID == 0) Code Coverage void UnitTest() { PurchaseItem(1); // test the output }

{ throw new Exception(); } { ProcessOrder(itemID); } } void PurchaseItem(int itemID) if (itemID == 0) Code Coverage else void UnitTest() { PurchaseItem(1); // test the output }

{ { throw new Exception(); } { } } void PurchaseItem(int itemID) if (itemID == 0) Code Coverage else ProcessOrder(itemID); void UnitTest() { PurchaseItem(1); // test the output }

{ throw new Exception(); } { ProcessOrder(itemID); } void PurchaseItem(int itemID) if (itemID == 0) Code Coverage else ProcessOrder(itemID); throw new Exception(); void UnitTest() { PurchaseItem(1); // test the output }

Problems with Code Coverage Focusing on statement and branch coverage is not sufficient, you may miss: Focusing on statement and branch coverage is not sufficient, you may miss: Missing code Missing code Incorrect handling of boundary conditions Incorrect handling of boundary conditions Timing problems Timing problems Memory Leaks Memory Leaks Use coverage sensibly Use coverage sensibly Objective, but incomplete Objective, but incomplete Too often distorts sensible action Too often distorts sensible action

The Problem with Process PredictableRepeatable Productive Complex Complex Disconnected Disconnected Hardened Hardened Challenges Challenges Getting people to know about it Getting people to know about it Getting people to use it Getting people to use it

How we use process

The Limitations of Process Process can only take you to the point where others have solved the problem before and captured their experience in a process form. Process can only take you to the point where others have solved the problem before and captured their experience in a process form. Process that is integrated with the tooling is more likely to be used when schedules get tight. Process that is integrated with the tooling is more likely to be used when schedules get tight.

Tooling

Agile Manifesto Individuals and interactions over processes and tools Individuals and interactions over processes and tools Working software over comprehensive documentation Working software over comprehensive documentation Customer collaboration over contract negotiation Customer collaboration over contract negotiation Responding to change over following a plan Responding to change over following a plan Source:

Date or Feature Driven Projects can be driven by date or functionality. When a project is driven by date, project deadlines are usually determined by the market, events, competitors, regulations, financial implications, or other business reasons. Projects can be driven by date or functionality. When a project is driven by date, project deadlines are usually determined by the market, events, competitors, regulations, financial implications, or other business reasons. Understanding the progress of the system is critical to managing expectations and planning according. Additionally, organizational, technical, and project risks may need to be tracked when they have a time component. Even if a project is not date-driven, understanding the estimated time of arrival helps to other groups put the sales/deployment/marketing/ training/operations elements in place. Understanding the progress of the system is critical to managing expectations and planning according. Additionally, organizational, technical, and project risks may need to be tracked when they have a time component. Even if a project is not date-driven, understanding the estimated time of arrival helps to other groups put the sales/deployment/marketing/ training/operations elements in place.

Small Releases are not… Small Releases Schedule Pressure

Incremental Risk reduction Risk reduction Changes Changes Delivery Delivery Progress Progress Activities need to be able to handle small increments up to a single change Activities need to be able to handle small increments up to a single change

Bug Bash, by Hans Bjordahl

Most Importantly MSF for Agile Software Development is now available at: MSF for Agile Software Development is now available at: Caveat: This is a beta version. There is additional work in progress to refine the content. We have several external pilot projects underway. Caveat: This is a beta version. There is additional work in progress to refine the content. We have several external pilot projects underway.

Conclusions MSF is a vehicle for delivering Microsoft’s contributions to the software development community MSF is a vehicle for delivering Microsoft’s contributions to the software development community MSF version 4.0 comes in two flavors to deliver maximum flexibility MSF version 4.0 comes in two flavors to deliver maximum flexibility MSF updates will be delivered via MSDN MSF updates will be delivered via MSDN MSF can become a basis for your software development process MSF can become a basis for your software development process

This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY. © 2001 Microsoft Corporation. All rights reserved.