Thursday, January 31, 2013

berries are expected to be sweet

the story

Do you remember the beautiful story of Shabri? While in Vanvasa King Rama visits Ashrama of Sage Matanga where he meets Shabri, she offers Rama berries, then Rama liberates her soul. Oh! Wait. She does not offer berries directly, she first tastes them, discards the bitter ones, and offers sweet ones only. Isn’t it? But, you know, Rama doesn’t ask her sweet berries. So, why does she really do this? Yes, yes, you got it right, she tries to offer the best that she could. OK! Got it.

but, why this story?

For a moment, keep aside a mythological mindset, ignore the typical storyline and try to make characters and the event more abstract; you will observe that in the story, Shabri represents an offerer, Berry represents the Content/offer, Rama represents the offeree. And let’s not draw the traditional conclusion - whenever we offer something, we must offer the best content but, read what was not written and was left to think - Rama did not ask for something (a sweetness) that Shabri offered. And there comes my topic of interest - should you really deliver exactly what is asked for or should you go beyond it? My answer to it is - Yes. The reason is simple that berries are expected to be sweet because it’s a basic quality you expect in berry when you eat it.

oh boy! Is it?

Yup! When we get the requirements through any requirement document then generally we focus on the functionality, being more specific, we focus only on what is written in the document - ditto - and we program it. Due to this, nowadays, companies started to mention a term explicitly which is called NFR (Non-Functional Requirement).

NFRs

NFRs (aka Itys) generally define the software qualities like security, reliability, performance, maintainability, scalability, and usability. These qualities may or may not be mentioned in the documents but I consider it as a responsibility of every contributor (to software) to assume these as basic requirements that are worth considering just to deliver robust solutions. Again! The reason is simple: berries are expected to be sweet because it’s a basic quality that you expect in every berry. I acknowledge, understand, and accept that time could be a constraint at times but of course, it does not need time to put things on the table and then let stakeholders choose from offerings. And yes, it may happen that the client or decision-maker may ignore (or even discard) your inputs to these qualities due to his/her short goals. It’s ok. Relax and turn the next page of your book. Nothing to get hurt, you did what you had to.

Every software may come with the same (or similar) technology but has some difference in the logic, always; and every logic affects NFR in one way or the other. This gives you an excellent opportunity to learn to deal with the same NFR in a different context or in a different way. So, set your own benchmarks and deliver them. I am damn sure that you want your berries to be tasted sweet whether or not they are expected so, by someone. Don’t you?


No comments:

Post a Comment