The customer says: we need to be able to add data to the system.
The software engineer says: No problem. Add new rows to the database.
The customer says: But we’ll need new data fields – we need to be able to say that our data now has new attributes, and the GUI has to be able to handle that without coding changes.
The software engineer scratches her head for a while (a long while) and finally says: Eureka! I’ve got it! I am invincible! [Our software engineer is a fan of the GoldenEye James Bond movie . . . insert your own mental image of our heroine in the appropriate pose.] We’ll just write the code in this convoluted way – and your system will be flexible to the nth degree.
The customer says: But I need it flexible to the n+Zth degree! I want to also stretch it in this hitherto unknown way that nearly approaches the bounds of intelligence in computing. The system has to be flexible enough to allow me to add new concepts and entities to it, and relationships between entities that not even Solomon could comprehend, without coding changes.
Interjection of paying client, since the customer is the associate of the paying client, but isn’t actually paying for the work: Oh, and you need to do it based on this code base here – that knows about 1 entity and no relationships, so that we can retrofit this into this earlier system.
The software engineer says:(in a professional and wise tone with her fingers in her ears and her tongue out) Pfffffft.
[The previous blog entry is based upon a true story. The names have changed to protect the guilty-as-all-get-out parties. The software engineer regrets any opportunities missed to say ‘Pfffffft’ in real life. And waits for inspiration. And hopes it comes in the form of very good beer.]
Let it be known that hubby took this opportunity to stock the fridge with lots of very good beer this weekend.