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

Patterns of Kanban Maturity
Patterns of Kanban MaturityPatterns of Kanban Maturity
Patterns of Kanban MaturityDavid Anderson
 
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
 
The Paved Road at Netflix
The Paved Road at NetflixThe Paved Road at Netflix
The Paved Road at NetflixDianne Marsh
 
Module 3: Working with Jazz Source Control
Module 3: Working with Jazz Source ControlModule 3: Working with Jazz Source Control
Module 3: Working with Jazz Source ControlIBM Rational software
 
DevSecOps and the CI/CD Pipeline
 DevSecOps and the CI/CD Pipeline DevSecOps and the CI/CD Pipeline
DevSecOps and the CI/CD PipelineJames Wickett
 
DevOps Roadmap.pptx
DevOps Roadmap.pptxDevOps Roadmap.pptx
DevOps Roadmap.pptxHARSH MANVAR
 
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...Simplilearn
 
Agile QA presentation
Agile QA presentationAgile QA presentation
Agile QA presentationCarl Bruiners
 
Software Estimation Techniques
Software Estimation TechniquesSoftware Estimation Techniques
Software Estimation Techniqueskamal
 
Análisis de riesgos aplicando la metodología OWASP
Análisis de riesgos aplicando la metodología OWASPAnálisis de riesgos aplicando la metodología OWASP
Análisis de riesgos aplicando la metodología OWASPAlvaro Machaca Tola
 
Fundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CDFundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CDBatyr Nuryyev
 
An Introduction to Test Driven Development
An Introduction to Test Driven Development An Introduction to Test Driven Development
An Introduction to Test Driven Development CodeOps Technologies LLP
 
Intro to Lean Software Development
Intro to Lean Software DevelopmentIntro to Lean Software Development
Intro to Lean Software Developmentgcaprio
 
Agile development, software engineering
Agile development, software engineeringAgile development, software engineering
Agile development, software engineeringRupesh Vaishnav
 
Agile methodology
Agile methodologyAgile methodology
Agile methodologyDhruv Kumar
 
Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CDHoang Le
 

What's hot (20)

Patterns of Kanban Maturity
Patterns of Kanban MaturityPatterns of Kanban Maturity
Patterns of Kanban Maturity
 
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
 
Static Code Analysis
Static Code AnalysisStatic Code Analysis
Static Code Analysis
 
The Paved Road at Netflix
The Paved Road at NetflixThe Paved Road at Netflix
The Paved Road at Netflix
 
Module 3: Working with Jazz Source Control
Module 3: Working with Jazz Source ControlModule 3: Working with Jazz Source Control
Module 3: Working with Jazz Source Control
 
DevSecOps and the CI/CD Pipeline
 DevSecOps and the CI/CD Pipeline DevSecOps and the CI/CD Pipeline
DevSecOps and the CI/CD Pipeline
 
DevOps Roadmap.pptx
DevOps Roadmap.pptxDevOps Roadmap.pptx
DevOps Roadmap.pptx
 
Fdd presentation
Fdd presentationFdd presentation
Fdd presentation
 
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...
 
Agile QA presentation
Agile QA presentationAgile QA presentation
Agile QA presentation
 
Software Estimation Techniques
Software Estimation TechniquesSoftware Estimation Techniques
Software Estimation Techniques
 
Análisis de riesgos aplicando la metodología OWASP
Análisis de riesgos aplicando la metodología OWASPAnálisis de riesgos aplicando la metodología OWASP
Análisis de riesgos aplicando la metodología OWASP
 
Fundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CDFundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CD
 
An Introduction to Test Driven Development
An Introduction to Test Driven Development An Introduction to Test Driven Development
An Introduction to Test Driven Development
 
Agile Engineering Practices
Agile Engineering PracticesAgile Engineering Practices
Agile Engineering Practices
 
Intro to Lean Software Development
Intro to Lean Software DevelopmentIntro to Lean Software Development
Intro to Lean Software Development
 
Agile development, software engineering
Agile development, software engineeringAgile development, software engineering
Agile development, software engineering
 
Overview of agile methodology
Overview of agile methodologyOverview of agile methodology
Overview of agile methodology
 
Agile methodology
Agile methodologyAgile methodology
Agile methodology
 
Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CD
 

Similar to Feature driven development

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 migratiehcderaad
 
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 DenodoDenodo
 
7 tools for your devops stack
7 tools for your devops stack7 tools for your devops stack
7 tools for your devops stackKris Buytaert
 
Buytaert kris tools
Buytaert kris toolsBuytaert kris tools
Buytaert kris toolskuchinskaya
 
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çõesAgile Trends
 
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 stackKris Buytaert
 
The four generations of test automation
The four generations of test automationThe four generations of test automation
The four generations of test automationrenard_vardy
 
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 speedSvitlana Dubyk
 
Acceptance Test Driven Development
Acceptance Test Driven DevelopmentAcceptance Test Driven Development
Acceptance Test Driven DevelopmentMike Douglas
 
GDayX - Advanced Angular.JS
GDayX - Advanced Angular.JSGDayX - Advanced Angular.JS
GDayX - Advanced Angular.JSNicolas Embleton
 
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 RORSmartLogic
 
Managing software projects & teams effectively
Managing software projects & teams effectivelyManaging software projects & teams effectively
Managing software projects & teams effectivelyAshutosh Agarwal
 
"X" Driven-Development Methodologies
"X" Driven-Development Methodologies"X" Driven-Development Methodologies
"X" Driven-Development MethodologiesDamian T. Gordon
 
7 tools for your devops stack
7 tools for your devops stack7 tools for your devops stack
7 tools for your devops stackKris Buytaert
 
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 LeaderProduct School
 

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

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
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 2024The Digital Insurer
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
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, Adobeapidays
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
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 FresherRemote DBA Services
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
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?Igalia
 

Recently uploaded (20)

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
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
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
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?
 

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