David J. Anderson PM Microsoft Solutions Framework Feature Driven Development.

Slides:



Advertisements
Similar presentations
*Based on the work of Peter Coad, Stephen R. Palmer and others Advanced Domain Modeling Architecting for Agility with Color Models* David J. Anderson Program.
Advertisements

Eric Nickell.  History  What is Feature Driven Development?  What is a Feature?  Feature Driven Development Roles ◦ Class Ownership  Feature Driven.
Jon Grommes Feature Driven Development. Overview What is Feature Driven Development History of FDD Defining a Feature FDD Roles FDD Reporting FDD Process.
ARCH-01: Introduction to the OpenEdge™ Reference Architecture Don Sorcinelli Applied Technology Group.
Scrum (software development)
Feature Driven Development
Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools Anna Liu Senior Architect Advisor Microsoft Australia.
An Application for Education Dave Dalsveen CSM.  In terms of software development, from the need to integrate change into the software project development.
Agile Software Development
Feature Driven Development Reid S. Carlberg SE470
Agile Principles Suradet Jitprapaikulsarn 1. What is Agility? Effective (rapid and adaptive) response to change Effective communication among all stakeholders.
The Agile Alliance By Mark Rucker. The Agile Alliance What is the Agile Alliance? History of the Agile Alliance What is the Agile Alliance today? The.
Project Management and Scheduling
An Overview of Agile L e a d i n g C h a n g e T h r o u g h C o l l a b o r a t i o n.
Agile Development Methods: Philosophy and Practice
Chapter 6– Artifacts of the process
Elephants in the Agile Room. Reflections on 10 Years of Agility Todd Little Sr. Development Manager Landmark Graphics.
The New (Agile) Methodology
Sprint (1) Deliverables Capstone Courses. What are Sprint (1) Deliverables ? 1.Introductory Parts 2.High level planning and scheduling (with risk assessment)
Agile Web Development C. Daniel Chase University of Colorado at Boulder.
CSE G674/2009 Project Project Management Section Presented by: Amir Aref Adib.
An introduction for PMPs
Scrum Thomas Ferris Nicolaisen Common sense?
"The thinking it took to get us into this mess is not the same thinking that is going to get us out of it."
Richard HundhausenKen Schwaber Accentient Corporation Scrum.org SESSION CODE: DPR205.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Phil O'Connell Penn State Abington IST 261 (Fall 2015) Application Development Design Studio I Agile Scrum Phil O'Connell
Software Creation Communication Agile Principles applied to software projects.
1 - Agile in a nutshell. 2 - Basic principles ●Relies on an iterative, incremental development mechanism with continuous adaptation to customer requirements.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Sprint (2) Deliverables Capstone Courses. What are Sprint (2) Deliverables ? 1.Revised High level planning and scheduling WBS and Gannt (with risk assessment).
10 Aug 2010 ECE/BENG-492 SENIOR ADVANCED DESIGN PROJECT Meeting #7.
Managing Lean Software Development With Cumulative Flow Diagrams David J. Anderson Program Manager, Microsoft
PRJ566 Project Planning & Management Software Architecture.
ISECON 2003 San Diego, California Integrating Agile Methodologies into the Project Capstone Christopher G. Jones, CPA/PhD Utah Valley State College
Winter 2011SEG Chapter 11 Chapter 1 (Part 1) Review from previous courses Subject 1: The Software Development Process.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Copyright © 2005 World Batch Forum1 How to use ISA95 part 3 for MES functional URS Jean Vieille
By: Isuru Abeysekera AGILE DEVELOPMENT. WHAT IS AGILE DEVELOPMENT? Broad term used to describe several methods for a development process Introduced in.
Presented By : Prima Business Solutions. Agile Software Development Process.
Introduction to Software Engineering
Forget about Agile for a second!
Manifesto for Agile Software Development
Feature-Driven Development
The low hanging fruit is gone!
CEN 4010 Intro to Software Engineering Professor Alex Roque
Defining and Managing Project and Product Scope
PMP vs. Scrum Master Compatible or Incompatible? Presented by:
Review for Final, Fall 2010 Close book, Close notes
Agile MDA Stephen J. Mellor
The Current Conversation in Agile Software Development Aug-2002
CS 641 – Requirements Engineering
Teaching Agile Methods CSEE&T 2017, Savannah, Georgia
Agile Development Methods: Philosophy and Practice
Agile Development Methods: Philosophy and Practice
Process Improvement With Roles and Responsibilities explained
Introduction to Software Engineering
Agile Development Methods: Philosophy and Practice
Agile Software Development Paradigms
Agile Development Agile Development Damian Gordon Damian Gordon.
Critical Factors for Success
CSCE 747 Software Testing and Quality Assurance
Practical Software Engineering
Software Development Process Using UML Recap
Story Writing.
Agile Development Methods: Philosophy and Practice
Agile Development Methods: Philosophy and Practice
Agile Project Management and Scrum
Presentation transcript:

David J. Anderson PM Microsoft Solutions Framework Feature Driven Development

Singapore Story Peter Coad Jeff De Luca The Coad Method Frequent, Tangible, Working Results On-time, on-budget with agreed function De Luca’s 1 st Law 80% Psychology, 20% Technology

FDD in the Agile Community Kent Beck Mike Beedle Arie van Bennekum Alistair Cockburn Ward Cunningham Martin Fowler James Grenning Jim Highsmith Andrew Hunt Ron Jeffries Jon Kern Brian Marick Robert C. Martin Steve Mellor Ken Schwaber Jeff Sutherland Dave Thomas Jon Kern, Director of Consulting at Togethersoft stands in for Peter Coad at Snowbird, Feb 2001

FDD is Powerful Highly Effective High Quality Faster To Market Team working No Overtime Productivity –2 to 10 fold improvement Quality improvement –3:1 to 2:100 No Time Tracking No Gantt Charts No Task Tracking No Time on Task Estimates Feature Driven Development (FDD) But… Scary!!!

FDD – an agile methodology 1.Develop an Overall Model 2.Build a Feature List 3.Plan By Feature 4.Design By Feature 5.Build By Feature Wide rather than deep Marketing participates MRD input Carefully Analyze MRD Prioritize and plan Code development Build code in small batches Deep rather than wide

Engineering process Develop an Overall Model Build Feature List Plan By Feature Design By Feature Build By Feature Marketing Requirements Finished Code Test By Feature Weekly Integration Build Bug Reports Engineering Lead Time

Practices in FDD Frequent, Tangible, Working Results A context for best practices –Domain object modeling –UI Flow Modeling (Statecharts or Visual Vocabulary) –Feature teams –Chief Programmer Work Packages –Regular design and code review (by Feature Team) –Class (code) ownership –Regular builds –Configuration management (Promotion groups and Labeling) –Visibility of results

“Java Modeling in Color : Enterprise Components and Process”, Coad, Lefebvre and De Luca, PTR-PH 1999 Domain Modeling Drives FDD

Behavior of Colors Instances of Archetypes share similar attributes Instances of Archetypes share similar methods assessPerformance() salesMadeInPeriod() averageSalesOverPerio d() assessAccuray() assessSpeed() isActive() isSuspended() totalValue() isComplete() isUrgent() _findByIdNumber() _findByName() isOfType() getValue() assessAcrossRoles() listRolesPlayedBy() totalUnitsAvailable() totalUnitsManufacture d() assessRoleAllowed() Courtesy Stephen R. Palmer

Definition of a Feature Tiny piece of client-valued functionality which can be delivered in less than 2 man weeks, typically 2 days 4 types of Features –UI – User Interface –PD (Problem Domain / Business Logic) –SI (System Interface) –DM (Data Management / Persistence) PD or SI Feature – [of|to|from|for] –E.g. calculate the interest for the bank a/c

FDD – How it works Feature List Subject Area Feature Set Individual Features A stockpile of inventory Subject Area Subject Area

Relating Features to the Model Feature –A method on the domain model –1 UML Sequence Diagram per Feature Feature Set –Related to a > on the domain model –All features in a set touch the same pink Subject Area –Related to a chain of >s

Law of Demeter A different view of the DNC showing the dynamic dependencies between classes. Classes only hold dependencies to their immediate neighbors The DNC is very loosely coupled

LoD Compliant Sequence Diagram

Wrong – not LoD Compliant

Postponed Component Definition

Re-usable Enterprise Components Pinks and yellows are re-usable across multiple greens – the core Enterprise Components Greens and blues are re-usable across discrete Enterprise Applications modeled as sequences of pinks

Modeling UI Flow (Statecharts) Create 1 UI Feature for each state with stereotype >, >, > etc. Create 1 UI Feature for each distinct Event (not transition) Maps directly to View and Controller from MVC Type II pattern

Modeling UI Flow (Visual Vocabulary) Jesse Garrett’s VV notation can be mapped to Statecharts and MVC Type II pattrern Some Ux people prefer VV as it was invented by a Ux person

Class (code) ownership Conceptual integrity of a class Consistent, concise class API Sense of satisfaction in ownership Scales better than collective ownership Combine with feature teams for best of both worlds

Feature teams Dynamically formed per feature –Only practical way to develop by feature and have class ownership –Under guidance of a Chief Programmer Multiple minds on design –Compare multiple options and chose the best All owners of relevant code in team –Benefits of collective ownership Emphasizes teamwork –Nobody finished until the feature team is finished

Definition of a CPWP Chief Programmer Work Package A collection (or batch) of Features which can logically be grouped for development simultaneously, and can be delivered within 2 weeks or less –i.e. each Feature must be less than 2 weeks and each CPW must be less than 2 weeks

Reporting Progress FDD uses automated reporting –Eliminates needs for annoying PMing Each Feature has 6 stages –Requirement walkthrough, design, review, code & unit test, review, promote to build Each stage tracked through artifacts in version control system Progress is reported on a website

Cumulative Flow Diagram WIP Lead Time

Achieving Smooth Flow

Ragged Flow Productivity is conservatively only 1/5 th of previous project

Scope Creep & Dark Matter

Configuration Management Version Control uses Promotion Groups Head of build labeled “Dev” –Class owner work in progress Feature Team Area –Shared client, exclusive lock checkout –Class Ownership insures integrity Integration Build labeled “Build” –From the “promote to build” step in DBF-BBF –Chief Programmer or Dev manager relabels approved revision of each class to “Build” Integration Build (Nightly/Weekly) runs against the “Build” Label Promotion Groups and Class Ownership mean there is no need to branch & merge for each Feature Team / Chief Programmer Work Package

Product Sale Management (PS) Invoicing Sales (33) Dec 2001 CP-1 Setting up Product Agreements (13) Dec 2001 Selling Products (22) Nov 2001 CP-1 Shipping Products (19) Dec 2001 CP-1 10% Delivering Products (10) Dec 2001 CP-3 30% Making Product Assessments (14) Dec % 99% 3% Customer A/C Mgmt (CA) Evaluating Account Applications (23) Oct % Logging Account Transactions (30) Nov % Opening New Accounts (11) Oct % Inventory Mgmt (IM) Establishing Storage Units (26) Nov % Moving Content (19) Nov % CP-3 Accepting Movement Requests (18) Nov % CP-3 KEY:Work In Progress Attention Completed Progress Bar Not Started CP-2CP-1 CP-2 CP-3 Parking Lot Chart

Advanced Scheduling with Critical Chain Schedule Tasks based on Feature Set groupings Buffers aggregated across many Features UI Designer as system constraint

Multi-project Schedule Multi-project scheduling works equally well UI Designer as synchronizing constraint

Project Overview

Feature List

Subject Area

Feature Set

Chief Programmer Worksheet

Contact Details David J. Anderson