Title: Articulating Flexibility
1Nature of Flexibility
Desire for Flexibility
Promise of Flexibility
Discussion Close
Nurture of Flexibility
2Key Questions
- Where is the demand for flexibility coming from?
- Is anyone willing to pay for flexibility? Should
they? - What are the various responses to the demand for
flexibility - Perennial claims by vendors and others - the
silver bullet point - Architectural patterns - separation of concerns
- How do we evaluate these responses?
- Which responses are appropriate for which demands?
3Myths of flexibility
- Flexibility is always a Good Thing.
- Flexibility is a linear characteristic - you can
have more or less of it. - Flexibility is expensive.
- Flexibility is free - if youre using the right
instruments.
4Desire for Flexibility
- Specific Demand for Flexibility
- precise envelope of test conditions
- explicit demand for vague quality
- Ability to Respond to Demanding Change
- customers
- regulators
- management
- Escape from Legacy Constraints
- historic limitations of past solutions
- Protection from the Caprice of the Environment
- management interference
- enterprise improvidence
- Tolerance of Imperfect Requirements
- specification errors
- procurement errors
Where is the demand coming from?
Who wants flexibility - flexibility for whom?
5Promise of Flexibility
- Flexible solutions built from flexible components
- Flexible solutions built from disposable/interchan
geable components - Flexible solutions built upon flexible platforms
But how much is flexibility worth - and for whom?
And we provide superior flexibility
Who benefits from One Size Fits All?
6Patterns for Flexibility
- Vague Boundaries
- Loose Fit
- Double Boundaries
- Buffered Fit
- Differentiated Service
- Multiple Fit
- True Polymorphism
- Universal Fit
7Where is Flexibility Located?
- In the components?
- Self-description
- In the component kit?
- Replacement
- In the architecture?
- Layering
- In the policy layer?
- Recalibration
- In the development process?
- Rapid development
- Just-in-time maintenance
8Nature of Flexibility
- Contortionist View
- The ability to make a wide range of changes in
response to the environment. - The ability to accommodate oneself to the changes
in the environment.
- Homeostatic View
- The ability to preserve or maintain something
essential in the face of environmental change. - The ability to keep working under changed
circumstances.
- Measure Internal Changes
- How many options configurations?
- At design time?
- At installation time?
- At run time?
- After just-in-time maintenance?
- Measure External Changes
- How many opportunities and scenarios?
- Without manual adjustment.
- With manual adjustment
XXX is as flexible as concrete
One Size Fits All?
9Flexibility as Second-Order Requirement
- 1st-Order Requirements
- Specifies the relationship between the solution
and the users. - This is what the system should do.
- This is how the users may interact with the
system. - This is the quality of service that the users may
expect.
- 2nd-Order Requirements
- Specifies the relationship between the solution
and the requirements. - Flexibility This is the extent to which the
system accommodates new requirements. - Security This is the extent to which the system
can protect itself against new tricks.
- Acceptance Test
- How does the system deal with a range of test
cases? - How does the system deal with a range of test
conditions?
- Acceptance Test
- How does the system management deal with various
surprises and innovations?
10Principles of Flexibility
- Flexibility is implicit in the demand.
- Situations possess certain properties that demand
flexibility in the solution. - uncertainty / risk
- variety / tension
- change
- Flexibility may be contained in the solution.
- Solutions possess certain properties that may
respond to the demand. - requisite variety
- robustness
- adaptability
- contingency
- Engineers must match the flexibility implicit in
the demand with the flexibility contained in the
solution. - scenario planning
- contingency planning
- Managers must reason intelligently about
flexibility and change. - business case
- return on investment
- business continuity and survival
11False Routesto flexibility
- Simplistic attempts to increase flexibility often
result in a loss of flexibility. - Anticipating Complexity
- Build a general-purpose solution that will
satisfy all the future requirements you can think
of, as well as the present requirements the users
have asked for. - Hesitation
- Flexibility is achieved not by keeping your
options open, but by making decisions. Keeping
your options open is a form of neurosis, and
leads to paralysis. Bateson calls this a narrowly
homeostatic system, rigidly indecisive. (It is a
characteristic of schizophrenic families.) - Exporting Uncertainty and Risk
- Dumping the responsibility and cost for future
variation on subcontractors or other business
partners - but this often increases the overall
turbulence in the market, with negative
consequences for all players.
12Shearing layers
- Complex artefacts tear themselves apart.
- The dynamics of the system will be dominated by
the slow components.
Stuff
Space Plan
Services
Skin
Structure
Site
Source Stewart Brand, How Buildings Learn
13Managing the evolution of complex artefacts.
14SatisfiesRequirements
Caprice
System
Over/Under Determined
Self-Organizing
Environment
Closed
Turbulent
15Key Messages
- There is a widespread belief in the business or
social value of flexibility. - A truly flexible business would adapt easily to
changing demands and conditions, and could
accommodate social and cultural diversity and
this in turn would depend (among other things) on
flexible computer systems and platforms. - We think we can recognize flexibility - and lack
of flexibility. - There are many solutions in the IT world that are
promoted as flexible, or helping to deliver
flexibility. - There are also solutions (including legacy and
COTS) that are widely criticized as inflexible. - Most claims of flexibility are based on unfounded
optimism and unverifiable wisdom.