Feature Driven Development Reid S. Carlberg SE470

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

Chapter: 3 Agile Development
AGILE DEVELOPMENT Outlines : Quick Look of agile development Agility
A little Software Engineering: Agile Software Development C Sc 335 Rick Mercer.
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.
Alternate Software Development Methodologies
Agile Project Management with Scrum
SCRUM John Drew. SCRUM - overview Scrum is a project management discipline that has evolved since the early 1990s to deliver software that meets business.
Software Architecture – Centric Methods and Agile Development by Craig Castaneda.
Feature Driven Development
EXtreme Programming Quick Introduction Daniel Arraes Pereira Eduardo Lourenço Apolinário Ricardo de Oliveira Cavalcanti.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
SE is not like other projects. l The project is intangible. l There is no standardized solution process. l New projects may have little or no relationship.
SE 470 Software Development Processes James Nowotarski 28 April 2003.
Software Engineering Lecture No:12. Lecture # 7
Agile Methodologies for Project Management By – Komal Mehta.
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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
What is Business Analysis Planning & Monitoring?
Software Development Process
Discovering 10232A – Designing and Developing Microsoft SharePoint Server 2010 Applications Robert Bogue.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Agile Software Development An Alternate Approach Umar K. Munroe MSCS Candidate Union College 1/9/2004.
Software Engineering Modern Approaches
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
Chapter 5 Agile Development Chapter 5 Agile Development Moonzoo Kim KAIST 1.
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
Business Systems Development SDLC and introduction to the Microsoft Solutions Framework Team and Process Models.
Unified Process versus Extreme Programming. Outline Compare and contrast UP and XP  Processes / Disciplines  Management  Artefacts Risk management.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
Stephen Chief Strategy Officer Telerik
© 2012 Cengage Learning. All Rights Reserved. This edition is intended for use outside of the U.S. only, with content that may be different from the U.S.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
Quickly Building Accurate Business Problem Domain Models is No Mystery  Session 1118  Ken Ritchie and Don Kranz – PROCESS-exchange, Inc.
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
1 김 수 동 Dept. of Computer Science Soongsil University Tel Fax
Chapter 2 Iterative, Evolutionary, and Agile You should use iterative development only on projects that you want to succeed. - Martin Fowler 1CS
Empirical Assessment of Test-First Approach Liang Huang and Mike Holcombe Department of Computer Science, University of Sheffield.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
PRJ566 Project Planning & Management Software Architecture.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
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.
Extreme Programming. Extreme Programming (XP) Formulated in 1999 by Kent Beck, Ward Cunningham and Ron Jeffries Agile software development methodology.
UML Course Instructor: Rizwana Noor. Overview  Modeling  What is UML?  Why UML?  UML Diagrams  Use Case  Components  Relationships  Notations.
Agile Development Chapter 10 - part 2. Agile Philosophy  A guiding philosophy and set of guidelines for : developing information systems in an unknown,
Info-Tech Research Group1 Manage IT Budgets & Cost World Class Operations - Impact Workshop.
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
Industrial Software Development Process Bashar Ahmad RISC Software GmbH.
Presented By : Prima Business Solutions. Agile Software Development Process.
Introducing an Agile Process to an Organization By Mike Cohn and Doris Ford IEEE Computer.
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Embedded Systems Software Engineering
Software Development.
Feature-Driven Development
Rapid Launch Workshop ©CC BY-SA.
CSC 355 – Newer Approaches to System Development Life Cycles & Processes, Spring 2017 March 2017 Dr. Dale Parson.
Feature Driven Development
Project & Program Governance
Software Development Life Cycle
روش‌های سريع الانتقال (چابک) توسعه نرم افزار
Chapter 3: Agile Software Processes
Project Management Method and PMI ® PMBOK ® Roles
Agile Development.
{Project Name} Organizational Chart, Roles and Responsibilities
Presentation transcript:

Feature Driven Development Reid S. Carlberg SE470

Feature Driven Development Abstract Historical background Description Usage guidelines Marketplace analysis References

Abstract Feature Driven Development focuses on regular delivery of client-valued features More structure than XP and fewer requirements than RUP—a middle ground Embraces software development as a human activity, subject to human limitations and benefiting from human strengths

Feature Driven Development Abstract Historical background Description Usage guidelines Marketplace analysis References

The Players Jeff De Luca, principle, Nebulon Pty. Ltd. (Australia) Peter Coad, TogetherSoft Corporation (now Borland)

Genesis: Singapore, A large bank had a failed software project 2 years of work 3,500 pages of use cases complex object model no functioning code concluded it couldn’t be done

Genesis: Singapore, De Luca comes in, hires Coad delivered 2000 functioning features took 15 months with 50 programmers came in under budget all this an “un-doable project” !

How? De Luca brought a methodology used for 20 years Coad brought his ideas about features. FDD was born. First published in 1999, Java Modeling in Color with UML

Feature Driven Development Abstract Historical background Description Usage guidelines Marketplace analysis References

Description: Primary Components Core values Six roles Five processes Project tracking methodology

Description: Primary Components Core values Six roles Five processes Project tracking methodology

“Process pride” focuses on the process rather than tangible results Core Values Process Pride

Core Values A system for building systems is necessary Simple is better Process steps should be obviously valuable to each team member Good processes move to the background

Description: Primary Components Core values Six roles Five processes Project tracking methodology

Six Roles Every publication on FDD emphasizes people People’s strengths and weaknesses have a huge impact on any project’s outcome Surprisingly: how to attract, recognize, motivate and keep good people

Six Roles Project Manager Chief Architect Development Manager Chief Programmers Class Owners (aka Developers) Domain Experts

Six Roles: Project Manager Administrative lead for the project budget, headcount, progress reports Operates project system e.g. TogetherSoft Control Center Shields participants from external distractions

Six Roles: Chief Architect Responsible for the overall design of the system Runs design workshops (more on that in process) Steers project through technical obstacles.

Six Roles: Development Manager Leads day to day development activities Resolves resource conflicts Often combined with either the PM or CA

Six Roles: Chief Programmers Experienced developers Leads smaller teams of individual developers Key role: needs to be respected by both developers and managers.

Six Roles: Class Owners Individual developers Design, code, test and document features

Six Roles: Domain Experts Users, clients, sponsors, etc. Knowledge base for developers

Six Roles: OK—More than six! Supporting Roles Domain manager Release manager Language guru Build engineer Toolsmith System administrator Sometimes Helpful Testers Deployers Technical writers

Description: Primary Components Core values Six roles Five processes Project tracking methodology

Five Processes Per projectPer feature

1. Develop an overall model Who? domain experts, chief architect, chief programmers

1. Develop an overall model Establishes the shape of the system Defines classes, how classes related to each other Creates the base object model Includes internal and external reviews, model notes

1. Develop an overall model

2. Build a features list Who? Feature List Team: domain experts, chief programmers, chief architect (inspired by surgical teams)

2. Build a features list Functional decomposition of model developed in step 1 Subject area to business activity to business activity step Feature is a business activity step, customer centric not technology centric Nomenclature: “Generate an account number for the new customer”

2. Build a features list

3. Plan By Feature Who? The Planning Team: the project manager, the development manager, and chief programmers.

3. Plan By Feature

Group features into feature sets (one or more business activities) Prioritize based on customer need Establish completion dates (MM/YYYY)

3. Plan By Feature

4. Design by feature Who? The Feature Team: chief programmer, class owners

4. Design by feature Work package level—now based on the technical architecture Two weeks or less of work Fleshes out class and object design, create sequence diagrams as necessary Feature teams are very fluid Updates object model created in process #1.

4. Design by feature

5. Develop by feature Who? Class owners, chief programmers

5. Develop by feature Implement Code inspection Unit test Promote to build

5. Develop by feature

Primary Components Core values Six roles Five processes Project tracking methodology

Project Tracking Methodology Process 1’s 10% is the most significant. Other numbers are fungible.

Project Tracking Methodology walkthrough + design = 41% complete

Project Tracking Methodology

Project Tracking Methodology

Feature Driven Development Abstract Historical background Description Usage guidelines Marketplace analysis References

Usage Guidelines: Use When… developers Handy pool of talented workers (above average)

Usage Guidelines: Avoid When… Team under 10 Team is still climbing the learning curve No support system

Feature Driven Development Abstract Historical background Description Usage guidelines Marketplace analysis References

Market Position Coad joined TogetherSoft in employees (1999) to 266 employees (2000), 400 (today) 1/15/03: Borland purchases for $82.5m + 9m shares of stock

Market Position RUPFDDXP Scales To ??? developers 50 developers Tools Rational TogetherSoft (Borland) ??? Process HeavyMediumAgile Roles ~30~6 (9 optional) ~7 Artifacts 25-30Flexible ~10-15 ~30 (Thanks JN)

Market Position: FDD v XP FDD More hierarchical Class owners Success with above average developers Client works on 1,2,4 Process 1 “Live the life”! XP Peer to peer Collective ownership Success with average developers Client on the team Constant refactoring 40 hour weeks

Market Position: Notes TogetherSoft/Borland now sells TogetherSoft as a process agnostic development tool. FDD’s list of artifacts, processes, etc., seems to be growing over time.

Feature Driven Development Abstract Historical background Description Usage guidelines Marketplace analysis References

( Palmer, Stephen and Fesling, John, A Practical Guide to Feature Driven Development, Prentice-Hall, 2002 Highsmith, Jim, Agile Software Development Ecosystems, Addison-Wesley, 2003 Coad, De Luca and Lefebvre, Eric, Java Modeling In Color with UML, Prentice-Hall, 1999