SlideShare a Scribd company logo
1 of 3
Download to read offline
+XP vs Lean vs FDD


Topic: Over the years often I have noticed people getting confused between XP, Lean and FDD. So I have tried to put
together the differences here.

Extreme Programming (XP)
XP, originally described by Kent Beck, has emerged as one of the most popular and controversial agile methods. XP is a
disciplined approach to delivering high-quality software quickly and continuously. It promotes high customer involvement,
rapid feedback loops, continuous testing, continuous planning, and close teamwork to deliver working software at very
frequent intervals, typically every 1-3 weeks.

The original XP recipe is based on four simple values – simplicity, communication, feedback, and courage – and twelve
supporting practices:

    1.    Planning Game
    2.    Small Releases
    3.    Customer Acceptance Tests
    4.    Simple Design
    5.    Pair Programming
    6.    Test-Driven Development
    7.    Refactoring
    8.    Continuous Integration
    9.    Collective Code Ownership
    10.   Coding Standards
    11.   Metaphor
    12.   Sustainable Pace




                                        Figure 2.0 [1]

In XP, the “Customer” works very closely with the development team to define and prioritize granular units of functionality
referred to as "User Stories". The development team estimates, plans, and delivers the highest priority user stories in the
form of working, tested software on an iteration by iteration basis.
2
In order to maximize productivity, the practices provide a supportive, lightweight framework to guide a team and ensure
high-quality software.

The main aim of XP is to reduce the cost of change. In traditional system development methods the requirements for the
system are determined at the beginning of the development project and often fixed from that point on. This means that the
cost of changing the requirements at a later stage will be high. XP sets out to reduce the cost of change by introducing
basic values, principles and practices. However, for applying XP, a system development project should be more flexible
with respect to changes. Because of its nature as Becks suggests as maximum of 10 programmers can ideally work in an
XP project this framework unlikely to work in slightly bigger projects.

Feature-Driven Development (FDD)
FDD was originally developed and articulated by Jeff De Luca, with contributions “by M.A. Rajashima, Lim Bak Wee, Paul
                                       [2]
Szego, Jon Kern and Stephen Palmer.”
The first incarnations of FDD occured as a result of collaboration between De Luca and OOD thought leader Peter Coad.

Feature-driven development is a process for helping teams produce frequent, tangible working results. It uses very small
blocks of client valued functionality, called features. The features are small, "useful in the eyes of the client" results. FDD
organizes those little blocks into business-related feature sets. FDD focuses developers on producing working results
every two weeks. FDD includes planning strategies and tracks progress with precision.

FDD designs the rest of the development process around feature delivery using the following eight practices:

    1.   Domain Object Modeling
    2.   Developing by Feature
    3.   Component/Class Ownership
    4.   Feature Teams
    5.   Inspections
    6.   Configuration Management
    7.   Regular Builds
    8.   Visibility of progress and results

FDD recommends specific programmer practices such as "Regular Builds" and "Component/Class Ownership". FDD's
proponents claim that it scales more straightforwardly than other approaches, and is better suited to larger teams. Unlike
other agile approaches, FDD describes specific, very short phases of work which are to be accomplished separately per
feature. These include Domain Walkthrough, Design, Design Inspection, Code, Code Inspection, and Promote to Build.
Because of its nature it perfectly works in large projects.



Lean Software Development
Lean Software Development is an iterative methodology originally developed by Mary and Tom Poppendieck. Lean
Software Development owes much of its principles and practices to the Lean Enterprise movement, and the practices of
companies like Toyota.

Lean Software Development focuses the team on delivering Value to the customer, and on the efficiency of the "Value
Stream," the mechanisms that deliver that Value. The main principles of Lean include:

    1.   Eliminating Waste
    2.   Amplifying Learning
    3.   Deciding as Late as Possible
    4.   Delivering as Fast as Possible
    5.   Empowering the Team
    6.   Building Integrity In
    7.   Seeing the Whole
3
Lean eliminates waste through such practices as selecting only the truly valuable features for a system, prioritizing those
selected, and delivering them in small batches. It emphasizes the speed and efficiency of development workflow, and
relies on rapid and reliable feedback between programmers and customers. Lean uses the idea of work product being
"pulled" via customer request. It focuses decision-making authority and ability on individuals and small teams, since
research shows this to be faster and more efficient than hierarchical flow of control. Lean also concentrates on the
efficiency of the use of team resources, trying to ensure that everyone is productive as much of the time as possible. So it
concentrates on concurrent work, and the fewest possible intra-team workflow dependencies. Lean also strongly
recommends that automated unit tests be written at the same time the code is written.

Bibliography:
    1. http://www. extremeprogramming.org

    2. http://en.wikipedia.org/wiki/Feature_Driven_Development

    3. http://sphereofinfluence.com/soiblogs/tscheer/archive/2005/09/19/159.aspx

    4. An Introduction to Agile Methods
       Steve Hayes (Khatovar Technology), Martin Andrews (Object Consulting)

    5. http://en.wikipedia.org/wiki/Lean_software_development

    6. http://en.wikipedia.org/wiki/Extreme_Programming

More Related Content

What's hot

Constructive Cost Model - II (COCOMO-II)
Constructive Cost Model - II (COCOMO-II)Constructive Cost Model - II (COCOMO-II)
Constructive Cost Model - II (COCOMO-II)AmanSharma1172
 
software development, process model, requirement engineering, srs, structured...
software development, process model, requirement engineering, srs, structured...software development, process model, requirement engineering, srs, structured...
software development, process model, requirement engineering, srs, structured...Ashok Mohanty
 
Ch 1 the software quality assurance challange
Ch 1 the software quality assurance challangeCh 1 the software quality assurance challange
Ch 1 the software quality assurance challangeKittitouch Suteeca
 
Requirement gathering-and-lean-canvas
Requirement gathering-and-lean-canvasRequirement gathering-and-lean-canvas
Requirement gathering-and-lean-canvasYaowaluck Promdee
 
Agile software development
Agile software developmentAgile software development
Agile software developmentRajesh Piryani
 
#5 formal methods – hoare logic
#5 formal methods – hoare logic#5 formal methods – hoare logic
#5 formal methods – hoare logicSharif Omar Salem
 
Introduction To Agile
Introduction To AgileIntroduction To Agile
Introduction To AgileKnoldus Inc.
 
Agile-overview: Agile Manifesto, Agile principles and Agile Methodologies
Agile-overview: Agile Manifesto, Agile principles and Agile MethodologiesAgile-overview: Agile Manifesto, Agile principles and Agile Methodologies
Agile-overview: Agile Manifesto, Agile principles and Agile MethodologiesBalaji Sathram
 
Software Devlopment Life Cycle
Software Devlopment Life CycleSoftware Devlopment Life Cycle
Software Devlopment Life CycleVivek Gupta
 
Line of Code (LOC) Matric and Function Point Matric
Line of Code (LOC) Matric and Function Point MatricLine of Code (LOC) Matric and Function Point Matric
Line of Code (LOC) Matric and Function Point MatricAnkush Singh
 
Waterfall vs Agile : A Beginner's Guide in Project Management
Waterfall vs Agile : A Beginner's Guide in Project ManagementWaterfall vs Agile : A Beginner's Guide in Project Management
Waterfall vs Agile : A Beginner's Guide in Project ManagementJonathan Donado
 
Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...Drusilla918
 
Chapter 5 Agile Software development
Chapter 5 Agile Software developmentChapter 5 Agile Software development
Chapter 5 Agile Software developmentDidarul Amin
 
Software Project Management: Risk Management
Software Project Management: Risk ManagementSoftware Project Management: Risk Management
Software Project Management: Risk ManagementMinhas Kamal
 
Software Engineering ppt
Software Engineering pptSoftware Engineering ppt
Software Engineering pptshruths2890
 
Software project estimation
Software project estimationSoftware project estimation
Software project estimationinayat khan
 

What's hot (20)

Constructive Cost Model - II (COCOMO-II)
Constructive Cost Model - II (COCOMO-II)Constructive Cost Model - II (COCOMO-II)
Constructive Cost Model - II (COCOMO-II)
 
software development, process model, requirement engineering, srs, structured...
software development, process model, requirement engineering, srs, structured...software development, process model, requirement engineering, srs, structured...
software development, process model, requirement engineering, srs, structured...
 
Ch 1 the software quality assurance challange
Ch 1 the software quality assurance challangeCh 1 the software quality assurance challange
Ch 1 the software quality assurance challange
 
Requirement gathering-and-lean-canvas
Requirement gathering-and-lean-canvasRequirement gathering-and-lean-canvas
Requirement gathering-and-lean-canvas
 
Agile software development
Agile software developmentAgile software development
Agile software development
 
#5 formal methods – hoare logic
#5 formal methods – hoare logic#5 formal methods – hoare logic
#5 formal methods – hoare logic
 
Introduction To Agile
Introduction To AgileIntroduction To Agile
Introduction To Agile
 
Agile-overview: Agile Manifesto, Agile principles and Agile Methodologies
Agile-overview: Agile Manifesto, Agile principles and Agile MethodologiesAgile-overview: Agile Manifesto, Agile principles and Agile Methodologies
Agile-overview: Agile Manifesto, Agile principles and Agile Methodologies
 
Cocom ii
Cocom iiCocom ii
Cocom ii
 
Software Devlopment Life Cycle
Software Devlopment Life CycleSoftware Devlopment Life Cycle
Software Devlopment Life Cycle
 
Line of Code (LOC) Matric and Function Point Matric
Line of Code (LOC) Matric and Function Point MatricLine of Code (LOC) Matric and Function Point Matric
Line of Code (LOC) Matric and Function Point Matric
 
Waterfall vs Agile : A Beginner's Guide in Project Management
Waterfall vs Agile : A Beginner's Guide in Project ManagementWaterfall vs Agile : A Beginner's Guide in Project Management
Waterfall vs Agile : A Beginner's Guide in Project Management
 
Cocomo model
Cocomo modelCocomo model
Cocomo model
 
Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...
 
Chapter 5 Agile Software development
Chapter 5 Agile Software developmentChapter 5 Agile Software development
Chapter 5 Agile Software development
 
software project management
software project managementsoftware project management
software project management
 
Software Project Management: Risk Management
Software Project Management: Risk ManagementSoftware Project Management: Risk Management
Software Project Management: Risk Management
 
Agile management.pptx
Agile management.pptxAgile management.pptx
Agile management.pptx
 
Software Engineering ppt
Software Engineering pptSoftware Engineering ppt
Software Engineering ppt
 
Software project estimation
Software project estimationSoftware project estimation
Software project estimation
 

Viewers also liked

Fractional knapsack class 13
Fractional knapsack class 13Fractional knapsack class 13
Fractional knapsack class 13Kumar
 
Lean Software Development Principles
Lean Software Development PrinciplesLean Software Development Principles
Lean Software Development PrinciplesJohn Vajda
 

Viewers also liked (6)

Fractional knapsack class 13
Fractional knapsack class 13Fractional knapsack class 13
Fractional knapsack class 13
 
Knapsack problem
Knapsack problemKnapsack problem
Knapsack problem
 
Knapsack
KnapsackKnapsack
Knapsack
 
Lean vs scrum
Lean vs scrumLean vs scrum
Lean vs scrum
 
Knapsack Problem
Knapsack ProblemKnapsack Problem
Knapsack Problem
 
Lean Software Development Principles
Lean Software Development PrinciplesLean Software Development Principles
Lean Software Development Principles
 

Similar to XP vs Lean vs FDD

Extreme Programming (XP) as A Popular Agile methodology.
Extreme Programming (XP) as A Popular Agile methodology.Extreme Programming (XP) as A Popular Agile methodology.
Extreme Programming (XP) as A Popular Agile methodology.Ali Shaikh
 
Flavours of agile software engineering
Flavours of agile software engineeringFlavours of agile software engineering
Flavours of agile software engineeringZeeshan Masood S
 
Flavours of agile software engineering
Flavours of agile software engineeringFlavours of agile software engineering
Flavours of agile software engineeringZeeshan Masood S
 
Week_03-Agile Developmnet.ppt
Week_03-Agile Developmnet.pptWeek_03-Agile Developmnet.ppt
Week_03-Agile Developmnet.pptRedHeart11
 
A Systematic Study On Agile Software Development Methodlogies And Practices
A Systematic Study On Agile Software Development Methodlogies And PracticesA Systematic Study On Agile Software Development Methodlogies And Practices
A Systematic Study On Agile Software Development Methodlogies And PracticesSean Flores
 
Agile Values, Principles and Practices
Agile Values, Principles and PracticesAgile Values, Principles and Practices
Agile Values, Principles and Practicesjackcrews
 
Introduction to DevSecOps. An intuitiv approach
Introduction to DevSecOps. An intuitiv approachIntroduction to DevSecOps. An intuitiv approach
Introduction to DevSecOps. An intuitiv approachFrancisXavierInyanga
 
SE18_Lec 05_Agile Software Development
SE18_Lec 05_Agile Software DevelopmentSE18_Lec 05_Agile Software Development
SE18_Lec 05_Agile Software DevelopmentAmr E. Mohamed
 
Agile development
Agile developmentAgile development
Agile developmentJoshuaU1
 
Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationMuaazZubairi
 
chapter-03-Agile view of process.ppt
chapter-03-Agile view of process.pptchapter-03-Agile view of process.ppt
chapter-03-Agile view of process.pptNakulP3
 
Project Requriement Management Vs Agile software development
Project Requriement Management Vs  Agile software developmentProject Requriement Management Vs  Agile software development
Project Requriement Management Vs Agile software developmentbizpresenter
 
AGILE METHODOLOGIES PRESENTATION BY OLIVER TORRES
AGILE  METHODOLOGIES PRESENTATION BY OLIVER TORRESAGILE  METHODOLOGIES PRESENTATION BY OLIVER TORRES
AGILE METHODOLOGIES PRESENTATION BY OLIVER TORRES1410166
 

Similar to XP vs Lean vs FDD (20)

SE Lecture 3.ppt
SE Lecture 3.pptSE Lecture 3.ppt
SE Lecture 3.ppt
 
Unit2
Unit2Unit2
Unit2
 
Lect7
Lect7Lect7
Lect7
 
Lect7
Lect7Lect7
Lect7
 
Extreme Programming (XP) as A Popular Agile methodology.
Extreme Programming (XP) as A Popular Agile methodology.Extreme Programming (XP) as A Popular Agile methodology.
Extreme Programming (XP) as A Popular Agile methodology.
 
Chapter 5
Chapter 5Chapter 5
Chapter 5
 
Flavours of agile software engineering
Flavours of agile software engineeringFlavours of agile software engineering
Flavours of agile software engineering
 
Flavours of agile software engineering
Flavours of agile software engineeringFlavours of agile software engineering
Flavours of agile software engineering
 
A littlebook about agile
A littlebook about agileA littlebook about agile
A littlebook about agile
 
Week_03-Agile Developmnet.ppt
Week_03-Agile Developmnet.pptWeek_03-Agile Developmnet.ppt
Week_03-Agile Developmnet.ppt
 
4. ch 3-agile process
4. ch 3-agile process4. ch 3-agile process
4. ch 3-agile process
 
A Systematic Study On Agile Software Development Methodlogies And Practices
A Systematic Study On Agile Software Development Methodlogies And PracticesA Systematic Study On Agile Software Development Methodlogies And Practices
A Systematic Study On Agile Software Development Methodlogies And Practices
 
Agile Values, Principles and Practices
Agile Values, Principles and PracticesAgile Values, Principles and Practices
Agile Values, Principles and Practices
 
Introduction to DevSecOps. An intuitiv approach
Introduction to DevSecOps. An intuitiv approachIntroduction to DevSecOps. An intuitiv approach
Introduction to DevSecOps. An intuitiv approach
 
SE18_Lec 05_Agile Software Development
SE18_Lec 05_Agile Software DevelopmentSE18_Lec 05_Agile Software Development
SE18_Lec 05_Agile Software Development
 
Agile development
Agile developmentAgile development
Agile development
 
Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentation
 
chapter-03-Agile view of process.ppt
chapter-03-Agile view of process.pptchapter-03-Agile view of process.ppt
chapter-03-Agile view of process.ppt
 
Project Requriement Management Vs Agile software development
Project Requriement Management Vs  Agile software developmentProject Requriement Management Vs  Agile software development
Project Requriement Management Vs Agile software development
 
AGILE METHODOLOGIES PRESENTATION BY OLIVER TORRES
AGILE  METHODOLOGIES PRESENTATION BY OLIVER TORRESAGILE  METHODOLOGIES PRESENTATION BY OLIVER TORRES
AGILE METHODOLOGIES PRESENTATION BY OLIVER TORRES
 

XP vs Lean vs FDD

  • 1. +XP vs Lean vs FDD Topic: Over the years often I have noticed people getting confused between XP, Lean and FDD. So I have tried to put together the differences here. Extreme Programming (XP) XP, originally described by Kent Beck, has emerged as one of the most popular and controversial agile methods. XP is a disciplined approach to delivering high-quality software quickly and continuously. It promotes high customer involvement, rapid feedback loops, continuous testing, continuous planning, and close teamwork to deliver working software at very frequent intervals, typically every 1-3 weeks. The original XP recipe is based on four simple values – simplicity, communication, feedback, and courage – and twelve supporting practices: 1. Planning Game 2. Small Releases 3. Customer Acceptance Tests 4. Simple Design 5. Pair Programming 6. Test-Driven Development 7. Refactoring 8. Continuous Integration 9. Collective Code Ownership 10. Coding Standards 11. Metaphor 12. Sustainable Pace Figure 2.0 [1] In XP, the “Customer” works very closely with the development team to define and prioritize granular units of functionality referred to as "User Stories". The development team estimates, plans, and delivers the highest priority user stories in the form of working, tested software on an iteration by iteration basis.
  • 2. 2 In order to maximize productivity, the practices provide a supportive, lightweight framework to guide a team and ensure high-quality software. The main aim of XP is to reduce the cost of change. In traditional system development methods the requirements for the system are determined at the beginning of the development project and often fixed from that point on. This means that the cost of changing the requirements at a later stage will be high. XP sets out to reduce the cost of change by introducing basic values, principles and practices. However, for applying XP, a system development project should be more flexible with respect to changes. Because of its nature as Becks suggests as maximum of 10 programmers can ideally work in an XP project this framework unlikely to work in slightly bigger projects. Feature-Driven Development (FDD) FDD was originally developed and articulated by Jeff De Luca, with contributions “by M.A. Rajashima, Lim Bak Wee, Paul [2] Szego, Jon Kern and Stephen Palmer.” The first incarnations of FDD occured as a result of collaboration between De Luca and OOD thought leader Peter Coad. Feature-driven development is a process for helping teams produce frequent, tangible working results. It uses very small blocks of client valued functionality, called features. The features are small, "useful in the eyes of the client" results. FDD organizes those little blocks into business-related feature sets. FDD focuses developers on producing working results every two weeks. FDD includes planning strategies and tracks progress with precision. FDD designs the rest of the development process around feature delivery using the following eight practices: 1. Domain Object Modeling 2. Developing by Feature 3. Component/Class Ownership 4. Feature Teams 5. Inspections 6. Configuration Management 7. Regular Builds 8. Visibility of progress and results FDD recommends specific programmer practices such as "Regular Builds" and "Component/Class Ownership". FDD's proponents claim that it scales more straightforwardly than other approaches, and is better suited to larger teams. Unlike other agile approaches, FDD describes specific, very short phases of work which are to be accomplished separately per feature. These include Domain Walkthrough, Design, Design Inspection, Code, Code Inspection, and Promote to Build. Because of its nature it perfectly works in large projects. Lean Software Development Lean Software Development is an iterative methodology originally developed by Mary and Tom Poppendieck. Lean Software Development owes much of its principles and practices to the Lean Enterprise movement, and the practices of companies like Toyota. Lean Software Development focuses the team on delivering Value to the customer, and on the efficiency of the "Value Stream," the mechanisms that deliver that Value. The main principles of Lean include: 1. Eliminating Waste 2. Amplifying Learning 3. Deciding as Late as Possible 4. Delivering as Fast as Possible 5. Empowering the Team 6. Building Integrity In 7. Seeing the Whole
  • 3. 3 Lean eliminates waste through such practices as selecting only the truly valuable features for a system, prioritizing those selected, and delivering them in small batches. It emphasizes the speed and efficiency of development workflow, and relies on rapid and reliable feedback between programmers and customers. Lean uses the idea of work product being "pulled" via customer request. It focuses decision-making authority and ability on individuals and small teams, since research shows this to be faster and more efficient than hierarchical flow of control. Lean also concentrates on the efficiency of the use of team resources, trying to ensure that everyone is productive as much of the time as possible. So it concentrates on concurrent work, and the fewest possible intra-team workflow dependencies. Lean also strongly recommends that automated unit tests be written at the same time the code is written. Bibliography: 1. http://www. extremeprogramming.org 2. http://en.wikipedia.org/wiki/Feature_Driven_Development 3. http://sphereofinfluence.com/soiblogs/tscheer/archive/2005/09/19/159.aspx 4. An Introduction to Agile Methods Steve Hayes (Khatovar Technology), Martin Andrews (Object Consulting) 5. http://en.wikipedia.org/wiki/Lean_software_development 6. http://en.wikipedia.org/wiki/Extreme_Programming