SlideShare a Scribd company logo
1 of 23
Download to read offline
Feature-Driven
Development
Teacher : Nguyen Van Vu
--------------------------------------
Students :
❏ #1112448 - Nguyen Duy Khanh
❏ #1112452 - Nguyen Ba Dang Khoa
I don’t care about how you deal
with it, I just need the features
work fine.
-- Almost Clients --
(do) Action
(to get) Result
(of) Object
---------------
Feature
So, what is the feature ?
- Calculate the total of cart.
- Display the sliders of promotion.
- Get logged in Dashboard.
- Compare 2 products in wishlist.
- Detect fraud-transactions of users.
So, what is the feature ?
So, what is the feature ?
Features
TheGioiDiDong.com Homepage
What is Feature-Driven Development ?
Final Release
Start Point
Feature 1
Feature 2
Feature 3
Feature 4
Feature ...
Feature ...
Feature ...
Feature n-1
Feature n
YOUR
TEAM
What is Feature-Driven Development ?
❏ Invented by Jeff De Luca in 1997
❏ An (lightweight || Agile) methods
❏ An (iterative && incremental)
software development process
❏ All driven from a client-valued
functionality perspective
OMG ! Features are everywhere !
How to deal with them ?
----- It takes about 5 steps -----
How to deal with the whole features ?
Step
1
Step
2
Step
3
Step
4
Step
5
Already aware scope, context and
requirements of system :
▪ Domain discovery
▪ Modeling work
▪ Modeling review
▪ Document study
Note : more Shape than Content
Step 1 - Develop an Overall Model
Develop
an
Overall Model
Step
2
Step
3
Step
4
Step
5
Domain > Subject Areas > Business
Activities > Categorized Feature List > Feature :
▪ (do) Action (to get) Result (of) Object
▪ if (feature->estimated_time > 2 * WEEK) {
feature->break_down_to_small_pieces();
}
Step 2 - Build feature list
Develop
an
Overall Model
Step
3
Step
4
Step
5
Build
Feature
List
Produce the development plan
▪ if (feature->estimated_time > 2 * WEEK) {
feature->break_down_to_small_pieces();
} else {
foreach (class in feature->classes) {
class->assign_for(programmer);
}
}
Step 3 - Plan by feature
Develop
an
Overall Model
Step
4
Step
5
Build
Feature
List
Plan
by
Feature
Produce a design package for each
feature
1. Select small group of features
2. Make detailed sequence diagrams
3. Refine overall model
4. Write class & method prologues
5. Hold design inspection
Step 4 - Design by feature
Develop
an
Overall Model
Step
5
Build
Feature
List
Plan
by
Feature
Design
by
Feature
Produce real-feature
if (feature->inspect_design() == SUCCESS) {
foreach (class in feature->classes) {
class->owner->develop_code().then(function() {
if (class->unit_test()&& class->inspec_code())
continue;
});
}
feature->promote_to_main_build();
}
Step 5 - Build by feature
Develop
an
Overall Model
Build
Feature
List
Plan
by
Feature
Design
by
Feature
Build
by
Feature
FDD Project Lifecycle
To keep tracking and report
accurately state, FDD defines
6 milestones
Milestones
Design by Feature Build by Feature
Domain
Walkthrough
Design Design
Inspection
Code
Code
Inspection
Promote to
Build
1% 40% 3% 45% 10% 1%
Roles and Responsibility
Key Roles:
1. Project
Manager
2. Chief
Architect
3. Development
Manager
4. Chief
Programmer
5. Class Owner
6. Domain Expert
Supporting Roles:
1. Release
Manager
2. Language Guru
3. Build Engineer
4. Toolsmith
5. System
Administrator
Additional Roles:
1. Tester
2. Deployer
3. Technical
Writer
One team member can play many roles
and one role can be shared to many members.
Best Practices
Mechanism of FDD is almost likely
mechanism of GIT branch. So FDD is
the best way to combine with
decentralized version control like
GIT.
Git Feature Branches
Workflow
Pros :
★ Good to large projects
★ Progress
tracking/reporting
★ Frequent tangible
results
★ Flexible, strong with
GIT
★ Class, feature ownership
★ Concise processes
★ Emphasizes quality
★ Just enough design
initially
Pros & Cons of FDD
Cons :
➢ Not suitable with small
projects
➢ High reliance to chief
programmers
➢ Less written
documentations
Question & Answer
THANK YOU ! :)
Made with ♥ by Google Slides
CREDITS
Special thanks to all the people who made and released
these awesome resources for free:
▪ Presentation template by SlidesCarnival
▪ Photographs by Unsplash
References :
1. Feature Driven Development on Wikipedia
2. Feature Driven Development by Christophe Marchal
3. A successful Git Branching model on Nvie.com
4. Lecture 5 presentation by Ahmed Alageed
5. Feature Driven Development by John Bonjean

More Related Content

What's hot

Continuous integration
Continuous integrationContinuous integration
Continuous integration
amscanne
 

What's hot (20)

Introduction to Agile Software Development
Introduction to Agile Software DevelopmentIntroduction to Agile Software Development
Introduction to Agile Software Development
 
Agile Methodology
Agile MethodologyAgile Methodology
Agile Methodology
 
Software Craftsmanship
Software CraftsmanshipSoftware Craftsmanship
Software Craftsmanship
 
Design Spikes for the Dual-Track Agile Process
Design Spikes for the Dual-Track Agile ProcessDesign Spikes for the Dual-Track Agile Process
Design Spikes for the Dual-Track Agile Process
 
Agile modeling
Agile modelingAgile modeling
Agile modeling
 
Feature driven development
Feature driven developmentFeature driven development
Feature driven development
 
12 Agile Principles in Pictures
12 Agile Principles in Pictures12 Agile Principles in Pictures
12 Agile Principles in Pictures
 
Feature-Driven Development - Visão Geral
Feature-Driven Development - Visão GeralFeature-Driven Development - Visão Geral
Feature-Driven Development - Visão Geral
 
Scrumban
ScrumbanScrumban
Scrumban
 
Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentation
 
Test and Behaviour Driven Development (TDD/BDD)
Test and Behaviour Driven Development (TDD/BDD)Test and Behaviour Driven Development (TDD/BDD)
Test and Behaviour Driven Development (TDD/BDD)
 
DevOps Overview in my own words
DevOps Overview in my own wordsDevOps Overview in my own words
DevOps Overview in my own words
 
The 5 Levels Planning in Agile
The 5 Levels Planning in AgileThe 5 Levels Planning in Agile
The 5 Levels Planning in Agile
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration
 
Clean Architecture Applications in Python
Clean Architecture Applications in PythonClean Architecture Applications in Python
Clean Architecture Applications in Python
 
Bdd Introduction
Bdd IntroductionBdd Introduction
Bdd Introduction
 
DevSecOps : an Introduction
DevSecOps : an IntroductionDevSecOps : an Introduction
DevSecOps : an Introduction
 
What is Agile Methodology?
What is Agile Methodology?What is Agile Methodology?
What is Agile Methodology?
 
Continuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous DeploymentContinuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous Deployment
 

Similar to Feature driven development

Buytaert kris tools
Buytaert kris toolsBuytaert kris tools
Buytaert kris tools
kuchinskaya
 
How to organize qa process in agile speed
How to organize qa process in agile speedHow to organize qa process in agile speed
How to organize qa process in agile speed
Svitlana Dubyk
 

Similar to Feature driven development (20)

2014 11 20 Drupal 7 -> 8 test migratie
2014 11 20 Drupal 7 -> 8 test migratie2014 11 20 Drupal 7 -> 8 test migratie
2014 11 20 Drupal 7 -> 8 test migratie
 
Agile Development Lifecycle and Best Practices with Denodo
Agile Development Lifecycle and Best Practices with DenodoAgile Development Lifecycle and Best Practices with Denodo
Agile Development Lifecycle and Best Practices with Denodo
 
Lect9
Lect9Lect9
Lect9
 
7 tools for your devops stack
7 tools for your devops stack7 tools for your devops stack
7 tools for your devops stack
 
Buytaert kris tools
Buytaert kris toolsBuytaert kris tools
Buytaert kris tools
 
Luiz Fernando Testa Contador - Aplicando DevOps em grandes corporações
Luiz Fernando Testa Contador - Aplicando DevOps em grandes corporaçõesLuiz Fernando Testa Contador - Aplicando DevOps em grandes corporações
Luiz Fernando Testa Contador - Aplicando DevOps em grandes corporações
 
Usable Software Design
Usable Software DesignUsable Software Design
Usable Software Design
 
11 tools for your PHP devops stack
11 tools for your PHP devops stack11 tools for your PHP devops stack
11 tools for your PHP devops stack
 
The four generations of test automation
The four generations of test automationThe four generations of test automation
The four generations of test automation
 
How to organize qa process in agile speed
How to organize qa process in agile speedHow to organize qa process in agile speed
How to organize qa process in agile speed
 
Acceptance Test Driven Development
Acceptance Test Driven DevelopmentAcceptance Test Driven Development
Acceptance Test Driven Development
 
Nicolas Embleton, Advanced Angular JS
Nicolas Embleton, Advanced Angular JSNicolas Embleton, Advanced Angular JS
Nicolas Embleton, Advanced Angular JS
 
GDayX - Advanced Angular.JS
GDayX - Advanced Angular.JSGDayX - Advanced Angular.JS
GDayX - Advanced Angular.JS
 
Behavior Driven Education: A Story of Learning ROR
Behavior Driven Education: A Story of Learning RORBehavior Driven Education: A Story of Learning ROR
Behavior Driven Education: A Story of Learning ROR
 
Managing software projects & teams effectively
Managing software projects & teams effectivelyManaging software projects & teams effectively
Managing software projects & teams effectively
 
"X" Driven-Development Methodologies
"X" Driven-Development Methodologies"X" Driven-Development Methodologies
"X" Driven-Development Methodologies
 
7 tools for your devops stack
7 tools for your devops stack7 tools for your devops stack
7 tools for your devops stack
 
Managing an Experimentation Platform by LinkedIn Product Leader
Managing an Experimentation Platform by LinkedIn Product LeaderManaging an Experimentation Platform by LinkedIn Product Leader
Managing an Experimentation Platform by LinkedIn Product Leader
 
Let your tests drive your code
Let your tests drive your codeLet your tests drive your code
Let your tests drive your code
 
Kanban
KanbanKanban
Kanban
 

Recently uploaded

Recently uploaded (20)

AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 

Feature driven development

  • 1. Feature-Driven Development Teacher : Nguyen Van Vu -------------------------------------- Students : ❏ #1112448 - Nguyen Duy Khanh ❏ #1112452 - Nguyen Ba Dang Khoa
  • 2. I don’t care about how you deal with it, I just need the features work fine. -- Almost Clients --
  • 3. (do) Action (to get) Result (of) Object --------------- Feature So, what is the feature ?
  • 4. - Calculate the total of cart. - Display the sliders of promotion. - Get logged in Dashboard. - Compare 2 products in wishlist. - Detect fraud-transactions of users. So, what is the feature ?
  • 5. So, what is the feature ? Features TheGioiDiDong.com Homepage
  • 6. What is Feature-Driven Development ? Final Release Start Point Feature 1 Feature 2 Feature 3 Feature 4 Feature ... Feature ... Feature ... Feature n-1 Feature n YOUR TEAM
  • 7. What is Feature-Driven Development ? ❏ Invented by Jeff De Luca in 1997 ❏ An (lightweight || Agile) methods ❏ An (iterative && incremental) software development process ❏ All driven from a client-valued functionality perspective
  • 8. OMG ! Features are everywhere ! How to deal with them ?
  • 9. ----- It takes about 5 steps ----- How to deal with the whole features ? Step 1 Step 2 Step 3 Step 4 Step 5
  • 10. Already aware scope, context and requirements of system : ▪ Domain discovery ▪ Modeling work ▪ Modeling review ▪ Document study Note : more Shape than Content Step 1 - Develop an Overall Model Develop an Overall Model Step 2 Step 3 Step 4 Step 5
  • 11. Domain > Subject Areas > Business Activities > Categorized Feature List > Feature : ▪ (do) Action (to get) Result (of) Object ▪ if (feature->estimated_time > 2 * WEEK) { feature->break_down_to_small_pieces(); } Step 2 - Build feature list Develop an Overall Model Step 3 Step 4 Step 5 Build Feature List
  • 12. Produce the development plan ▪ if (feature->estimated_time > 2 * WEEK) { feature->break_down_to_small_pieces(); } else { foreach (class in feature->classes) { class->assign_for(programmer); } } Step 3 - Plan by feature Develop an Overall Model Step 4 Step 5 Build Feature List Plan by Feature
  • 13. Produce a design package for each feature 1. Select small group of features 2. Make detailed sequence diagrams 3. Refine overall model 4. Write class & method prologues 5. Hold design inspection Step 4 - Design by feature Develop an Overall Model Step 5 Build Feature List Plan by Feature Design by Feature
  • 14. Produce real-feature if (feature->inspect_design() == SUCCESS) { foreach (class in feature->classes) { class->owner->develop_code().then(function() { if (class->unit_test()&& class->inspec_code()) continue; }); } feature->promote_to_main_build(); } Step 5 - Build by feature Develop an Overall Model Build Feature List Plan by Feature Design by Feature Build by Feature
  • 16. To keep tracking and report accurately state, FDD defines 6 milestones Milestones Design by Feature Build by Feature Domain Walkthrough Design Design Inspection Code Code Inspection Promote to Build 1% 40% 3% 45% 10% 1%
  • 17. Roles and Responsibility Key Roles: 1. Project Manager 2. Chief Architect 3. Development Manager 4. Chief Programmer 5. Class Owner 6. Domain Expert Supporting Roles: 1. Release Manager 2. Language Guru 3. Build Engineer 4. Toolsmith 5. System Administrator Additional Roles: 1. Tester 2. Deployer 3. Technical Writer One team member can play many roles and one role can be shared to many members.
  • 18. Best Practices Mechanism of FDD is almost likely mechanism of GIT branch. So FDD is the best way to combine with decentralized version control like GIT.
  • 20. Pros : ★ Good to large projects ★ Progress tracking/reporting ★ Frequent tangible results ★ Flexible, strong with GIT ★ Class, feature ownership ★ Concise processes ★ Emphasizes quality ★ Just enough design initially Pros & Cons of FDD Cons : ➢ Not suitable with small projects ➢ High reliance to chief programmers ➢ Less written documentations
  • 22. THANK YOU ! :) Made with ♥ by Google Slides
  • 23. CREDITS Special thanks to all the people who made and released these awesome resources for free: ▪ Presentation template by SlidesCarnival ▪ Photographs by Unsplash References : 1. Feature Driven Development on Wikipedia 2. Feature Driven Development by Christophe Marchal 3. A successful Git Branching model on Nvie.com 4. Lecture 5 presentation by Ahmed Alageed 5. Feature Driven Development by John Bonjean