Benefits of flexibility
Where
it fits and where it is unwise
Reducing the cost of change
The
essence of eXtreme Programming
Flexibility practices mutually support each other
Potential downsides
- Amplified volatility
- Indecisiveness
- Focusing on tactics at the expense
of strategy
Customers
and product requirements
-
The fallacy of knowing all requirements at a project’s outset
-
Frozen requirements versus customer feedback
-
Customers don’t use the features we give them
- Linking with specific
customers
- Use cases
- Personas
- Lead users
-
Where customer feedback can lead you astray
-
Obtaining customer feedback quickly and efficiently
-
The power of a product vision
Modular
product architectures
- Modular versus integral
architectures
- Advantages and disadvantages
-
Applying architecture as a strategic tool rather than a technical tool
- Architectural objectives
- How to choose them
- Difficulty of having more than one
-
Why enforcing architectural rules is critical
- Examples of actual
architectural choices
- CD-ROM drive
- Electric screwdriver
-
Perfect versus imperfect modularity
-
The four steps in designing an architecture
-
Understanding interactions: the design structure matrix
- The price of modularity
- Transitioning from modular to
integral architecture
Experimentation
-
The different kinds of experimentation: analysis, experiments,
prototypes, simulations, etc.
- The value of failure
- Implications for experimentation
approach
-
Hypothesis-based approach
- Front-loaded prototyping
- Traditional versus front-loaded
strategies
- Enabling technologies
- Economic drivers
- Where not to prototype
- Front-loaded strategies
- How many prototypes?
- Why and when?
- How many in parallel?
- Testing
- Running your “chicken test” early
- Test-first approach
- The value of automated testing
Day