Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Feature-Driven
Development
Teacher : Nguyen Van Vu
--------------------------------------
Students :
❏ #1112448 - Nguyen D...
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 wish...
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...
What is Feature-Driven Development ?
❏ Invented by Jeff De Luca in 1997
❏ An (lightweight || Agile) methods
❏ An (iterativ...
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 ...
Domain > Subject Areas > Business
Activities > Categorized Feature List > Feature :
▪ (do) Action (to get) Result (of) Obj...
Produce the development plan
▪ if (feature->estimated_time > 2 * WEEK) {
feature->break_down_to_small_pieces();
} else {
f...
Produce a design package for each
feature
1. Select small group of features
2. Make detailed sequence diagrams
3. Refine o...
Produce real-feature
if (feature->inspect_design() == SUCCESS) {
foreach (class in feature->classes) {
class->owner->devel...
FDD Project Lifecycle
To keep tracking and report
accurately state, FDD defines
6 milestones
Milestones
Design by Feature Build by Feature
Domai...
Roles and Responsibility
Key Roles:
1. Project
Manager
2. Chief
Architect
3. Development
Manager
4. Chief
Programmer
5. Cl...
Best Practices
Mechanism of FDD is almost likely
mechanism of GIT branch. So FDD is
the best way to combine with
decentral...
Git Feature Branches
Workflow
Pros :
★ Good to large projects
★ Progress
tracking/reporting
★ Frequent tangible
results
★ Flexible, strong with
GIT
★ Cl...
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 b...
Upcoming SlideShare
Loading in …5
×

Feature driven development

4,334 views

Published on

Feature driven development is one of Agile Methods provide powerful way to deal with large projects.

Published in: Technology
  • Login to see the comments

Feature driven development

  1. 1. Feature-Driven Development Teacher : Nguyen Van Vu -------------------------------------- Students : ❏ #1112448 - Nguyen Duy Khanh ❏ #1112452 - Nguyen Ba Dang Khoa
  2. 2. I don’t care about how you deal with it, I just need the features work fine. -- Almost Clients --
  3. 3. (do) Action (to get) Result (of) Object --------------- Feature So, what is the feature ?
  4. 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. 5. So, what is the feature ? Features TheGioiDiDong.com Homepage
  6. 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. 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. 8. OMG ! Features are everywhere ! How to deal with them ?
  9. 9. ----- It takes about 5 steps ----- How to deal with the whole features ? Step 1 Step 2 Step 3 Step 4 Step 5
  10. 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. 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. 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. 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. 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
  15. 15. FDD Project Lifecycle
  16. 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. 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. 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.
  19. 19. Git Feature Branches Workflow
  20. 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
  21. 21. Question & Answer
  22. 22. THANK YOU ! :) Made with ♥ by Google Slides
  23. 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

×