Luca in 1997 ❏ An (lightweight || Agile) methods ❏ An (iterative && incremental) software development process ❏ All driven from a client-valued functionality perspective
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
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
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
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
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.
★ 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
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