Home | Avner | Humour 

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.