When talking with a client, a developer will hear her say: "I will accept every thing you do as long as it is flexible". My views on flexibility as the major ingredient of a system are:
10 | Exceed expectation | I
love to exceed my clients' expectations, but I hate to be expected to do
so.
|
|
9 | Give me the head of Billy the mail boy | Flexibility
is a disclaimer on every requirement document. It revokes the
responsibility for the accuracy of the requirement from the user. It
smoothly transfers the onus to specify needs from the client to the
developers.
|
Users complain that the system lacked its main ingredient - flexibility, when isn't able to perform a task the user did not request. |
8 | Discipline | If
you have a truly flexible system, the users do not need discipline. Every
decision they make take can be overturned with no effort. Therefore users
do not take decisions seriously. No one needs to make a decision.
|
You think that "if you do not like a decision, wait a day and it will change". |
7 | Stability | A truly flexible system does not enforce any workflow stability. | You
can enter a spiral of workflow modification and lose control of the production
process.
|
6 | Good better best | To
thrive to develop a truly flexible system, you should aim to deliver more than
your clients need or willingness to pay. You enter a never ending spiral of
improvements the users do not understand or are willing to pay for.
|
I want your prompt availability, but I want to pay only for the time I use. |
5 | Modularity | Writing
a system that can serve two unrelated lines of business (the ultimate
flexibility) is dearer than writing two systems. Furthermore, by binding
the combined systems, you receive the flexible solution after at least
twice the time.
|
It would be faster to write a system to handle one business and then write a system to support the other line of business. |
4 | Focus | Asking
for flexibility as the major ingredient in a product demonstrates lack of
focus.
|
I may do this, but yet again I may do that, or that or that… |
3 | Is it a bug or a feature? |
The client should know what he is paying for and get it exactly, no more and no less. Diversion from the agreed upon scope of delivery is a defect. |
Your pickled cucumber vendor delivered two olives in some cans without telling you. It can break your teeth.
|
2 | Forecasting | The
problem with forecasting unspecified needs is that it deals with the
future.
|
|
1 | Last | You know that you have added the right flexibility years after the deployment, rather than during the design. That implies that you can not know that you have added the right kind of flexibility until it is too late. |