Agile Israel Feature Driven Development: For The Agile Agent of Change
Agile Israel Feature Driven Development: For The Agile Agent of Change
Agile Israel Feature Driven Development: For The Agile Agent of Change
Justin-Josef Angel
www.JustinAngel.Net
blogs.Microsoft.co.il/blogs/JustinAngel
Stress
Your
Change Comfort Change
Zone
Stress
Agile Israel
Feature Driven Development
For the agile agent of change
Justin-Josef Angel
www.JustinAngel.Net
blogs.Microsoft.co.il/blogs/JustinAngel
Who here has caused change?
Deployed an application?
Upgraded technology?
Switched IDEs?
Told someone you loved them?
People resist to change.
People dont want change.
Change = Bad.
Agile = Change = Bad
Agile methodologies require us to
work differently.
What about other people?
PROBLEM
But first, What are you going to get
from this presentation?
and what is Agile?
What Is Agile?
Agile is the solution to a problem.
The traditional Waterfall model:
Analysis -
Requirements
Design
Implement -
Code
Test
Deploy
Waterfall has a problem
building model
Analysis
jumping from the
side of a building. Design
If you fall from
the top its Implement
really going to
hart when you Test
reach the bottom.
Projects FAIL! Deploy
Example of the problem
Transfer X amount of money from
one account to the other and take
10% commission.
Who are we taking the commission
from?
Israeli Banks From the sender.
Paypal from the receiver.
Simplest Solution Short Iterations
Take the waterfall model and add
one arrow.
Analysis -
Requirements
Design
Implement -
Code
Test
Deploy
What is Agile and is it the solution?
Agile is adding that arrow.
Short Iterations Process
(Contentious integration Practice)
Agile is a family of Software
development process
methodologies. Big words
Agile Manifesto.
So, Whos in the family?
Feature Driven development
eXtreme Programming (XP)
(which is the most common)
Scrum
DSDM
Crystal Clear
Agile RUP AUP
ASD
When do we use XP?
Critical Amount of
Very
people
Low
Novice 100
Senior 10 500+
Often
33% (14)
(3) 0%
(19)
Birthing Adding Removing
Cattle Cattle Cattle
Build Feature List Summery
Features are small & client valued.
Feature list is very short.
Reportable.
Testable.
Feature sets are Assignable.
Feature sets iterations.
Iterations can be planned.
Build Feature List Three faces
Features as waterfall write up
95%-100% of the features and
sign as contract.
Features as Extremely agile 70-
80%.
myFDD 80%-90%
The FDD Process
Analysis Design Implement
Design
Build
Build
Develop
Develop Feature Plan
Plan By
By Design
Design by
by Build
Build By
By
Model Feature Feature
Model List Feature Feature
Feature Feature
Feature
List
Deploy
Feature Sets into iterations
1. Determine Development Sequence
Check Dependencies (cow before cows)
Consider High-risk feature
Consider High complexity features
Either by Date or by Sequence.
2. Assign Project Manager
3. Assign Chief developers to feature
sets
4. Assign developers as Class Owners
03:10:00
Plan By Feature - Example
Justin Meat Storage Class Owner
Miki Cow Class Owner
Oren Herd Class Owner
Roy Slaughtering Cattle Chief
Developer
Yaniv Birthing Cattle Chief Developer
Feature Sets into Iterations:
1. Adding Cattle, Removing Cattle
2. Birthing Cattle, Killing Cattle
3. Storing Meat, Selling Cattle
4. Slaughtering Cattle, Selling Meat
Plan by feature
Planning like waterfall Set dates
for the completion & start date,
hours to work and for each feature
set.
Planning extremely Agile
determine the order of Feature sets.
Planning myFDD determine
completion months for feature sets.
Anyway group Feature Sets into
Iterations.
The FDD Process
Analysis Design Implement
Design
Build
Build
Develop
Develop Feature Plan
Plan By
By Design
Design by
by Build
Build By
By
Model Feature Feature
Model List Feature Feature
Feature Feature
Feature
List
Deploy
Design By Feature
This is the first part of short
iteration.
We know which feature sets we
need to build.
Now its time to design the
software we will build.