YAGNI   Leave a comment


Imagine a door in the place of the open window in the building; the architect knows that, one day there might be a need for an emergency exit. He feels that, a window is not enough for lots of people coming to the exit and puts a door there. Well that is clearly crazy idea, right? Every body would ask ‘Do you really need that?’ and the answer is ‘No right now.’ But imagine this scenario; there comes a new building next to it and the two building wanted to have a bridge between them, may be after five years. This time, the architect is not crazy if he puts a door right there in the smae place so that people go to the bridge and to the next building. In the first place we would have told the designer YAGNI, this is not Chinese :).

YAGNI (You Ain’t Gonna Need It) is a principle in extreme programming. It means that, there is no need to add a functionality unless you really need it. It is clear for any developer out there it is tempting to write some sort of code that he/she feels might be important sometime in the future if not right now. In some cases, sure we need to think of the future; that’s what makes a good software, it should look at what is coming.

The last weeks, I was out of Addis for few days and when I get back I met my friends. We had  little chat on what I faced in my field work. One of the guys told us a story on a blog he read about a sample project to automate a prison. I am not going to tell you about that project but an easy one, where we all have been at least once; a hospital. If we think of a typical health center, the main focus of there business is providing medical service to their customer, it might be a specialized hospital; however, there are tens of support services that are important for the business. It has to procure medical supplies, it has procurement department. It has to collect payments and pay for the human resource it has, it has finance department. The bed, the sheets, the rooms … should be clean, there are ambulances dispatched, guards for security purpose etc.

Imagine the institution is currently less than 5% automated. They just have a PC in the management offices only for email purpose. A typical one right? So, if they wanted to fully automate the whole institute, starting from the gate to the surgery room or the highest complication you can imagine, if we ask the same question as in the door above, do you really need a system to manage the cloths that are given to guards and janitors, guess what the answer might be…… I guess some people may say ‘Yes they do need that’ and some may say ‘No they don’t’, show your view by commenting, but I say ‘YAGNI’.

In the ideal scenario, it would be perfect to automate everything. Clean the room with a machine, a programmable one, secure the doors with possible electro-mechanical locks…  I think, there should be a way of assessing the e-readiness of the institute. I want to share with you a story my friend told me when we discussed this issue:

He did this application and installed it on the computer of one of the section managers of company X and was showing him how he’s going to use it. Believe it or not, the  guy was surprised by how he managed to put that all information in the flash. He felt like, my friend is showing him some sort of movie. I hope he’ll comment on the story.

This is a typical case in most organizations. People are not ready to use the computer to do their work, specially admin and management people…. If you are reading this, for sure you are not one of them, so no worries 🙂 We as developers, or consultants, should convince those people who need everything to work with in the same project phase, they don’t need the module right now. Let them wait till it’s time. I guess there will be a time we’ll need the door on the 10th floor leading out of the building.

Advertisements

Posted July 26, 2011 by Behailu S. in Uncategorized

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: