Saturday, March 11

software requirements

Ken is one of the guys, who explains to me, the standard procedures defined for Engineering Changes for his company. The responsibility of me and my consulting team is to customize and to maintain a commercial software product, to suit his company's process needs.

Let me try to explain of what is that I actually do for a living. Here is a company that builds aircraft engines, which, not surprisingly, is made up of thousands of components. To design, to develop, to repair, and to service these components that make aircraft engines, not so surprisingly, this company gotta have hundreds of Engineers working on these components - simultaneously.

And those Engineers work hard. Engines are made, and sold. They are installed into nice, big airplanes. People fly on those airplanes all over the world... yada, yada, yada, and the whole world is a happy place.

Now lets say, a component, that goes into such an aircraft engine, requires a modification for engineering reasons, such as, a re-design to handle more pressure. Or Probably, it has to be modified for quality requirements, such as, a change in the inspection method. Well, if we have to change it, Why don't we just do it ? Not so fast, Young man!!!

When hundreds of engineers working on thousand different components, obviously, we need a standard process of doing it. Also, we need a pre-defined way of documenting those changes, so that we can go back or reverse the change, if needed. Now, go back to first paragraph... Just read the first paragraph, and come back here.

So, now you know what I do, right ? Yes, that's what I do. If you didn't get it, I can say all that in a line - I make a living by trying to make a commercial software work for a business.

So, Where were we ? We were talking about Ken. Ken and I were talking about how to keep track of a component, that is just lying there, and is never used in any engine - Of course, using the software. Well, the process and the software is already there, and Ken just wants to know how it works.

When we were talking about another related functionality, I said that it is already there, and showed the paragraph in the documentation explaining it. He said,

I know this requirement. But we forgot what we meant, when we asked you to do it. If you could say me, how you made your program to do this, then, we could know what we meant, when we asked for that.
And he laughed. Then, I laughed.

I was reminded of this Dilbert Cartoon, when the analyst asks the user for his software requirements. The user asks the analyst to make a software that would tell the requirements. In Software, it is always like that.

When you buy a car, you exactly know what you are buying. When you buy a software, you really don't know what you are buying. When you put your hands on it and start using it, you wonder "Did I really pay for this ? Why did I ask for this ?". That's why it is so difficult to define a software requirement, especially, when it is customized for a business.

Wednesday, March 8

vagueness of a psychiatrist

I saw the movie Analyze This yesterday. The movie is about a New York mob boss (Robert De Niro) seeks the counsel of a psychiatrist (Billy Crystal).

In the final scenes, Billy Crystal would appear on behalf of De Niro, in a meeting of gangsters. Before going to the meeting, De Niro's right-hand man would give an advice to Billy Crystal to be vague. Billy Crystal replies 'I am a psychiatrist. I can't be nothing but vague'.

I have never been under a counsel of a psychiatrist, but I have read books written by psychiatrist. More often, I have felt the vagueness in their content. I mean, they seem to talk about something, but they wouldn't conclude on anything.

I think, the goal of a psychiatrist is to induce, what they call a break-through in a patient. This break-through is not a target, you can push people into or heal only with medicines... Its a kind of self-awareness.

I have to relate it with the puzzles in Zen Buddhism. These monks ponder over some puzzles , to reach the state of self-awareness. A sample puzzle would be - 'Hear the sound of one hand'. Yes, its vague.

I guess, it all comes down to something like - If you really want to know yourself, immerse yourself into vagueness... Hmmm, Very interestingly vague.

Monday, March 6

செல்ஃபோன் சிந்தனை

செல்ஃபோனின் இடஞ்சல்களால் ஏற்படும் எரிச்சல்கள், அதன் உபயோகங்களினால் ஏற்படும் சுகங்களை விட, அதிகமனு தான் சொல்லுவேன். அந்தச் சாதனம் ஒரு சுமையாத்தான் நான் நினைக்கிறேன். அதைப்பத்தி என் room mate ஷரத்தோடு ஒரு உறையாடல் ( converstation-ங்கற வார்த்தைய மொழிபெயரத்தா, உரையாடல்னு ரொம்ப formal வார்த்தையாடுச்சு. கலாச்சாரம் நம்ம மொழில எப்படி கலந்திருக்கு !)...

நான் : செல்ஃபோன்னால என்ன use ?
ஷரத் : செல்ஃபோன் வைச்சிகறது நமக்காக இல்ல. மத்தவங்க நம்மல contact பன்றதுக்காக.
நான் : அதுக்கு தான் வீட்டல ஃபோன் இருக்குதுல்ல...
ஷரத் : வீட்ட விட்டு வெளிய போனா, contact பன்றதுக்காக.
நான் : வீட்ட விட்டு வெளிய போறதே, மத்தவங்க நம்மல contact பன்ன கூடாதுங்றதுக்காக தான்.

அது அந்த வார்த்தையிலே இருக்குது. " விட்டு வெளியே போறது " - அப்படி விட்டு போறப்ப, அத்தன பேரையும் வீட்டுல விட்டு போக வேண்டியது தான்...

I used Kamban Software's Universal Editor (beta) to write this paragraph. Its good. I guess, it takes quite some time to get used to it.

Saturday, March 4

cricket for the people of united states - part two

On the changes required for selling cricket to the people of United States, the next category is scoring. And the nominees (with which we have a problem) are... 1) sky rocketing scores, 2) pumped up batsman averages, and 3) caffeinated run rates.

Since the number of balls in a over is reduced, it automatically reduces the scoring chances. Still there is a possibility of scoring 220-250 runs. For people in the US, 220 can be an OK Cholesterol count, but certainly unacceptable as a game score. (Disclaimer: Actually, 220 is NOT an OK Cholesterol count. I am NOT a physician. So don't sue me if I made you believe that this is a fact.)

Hence, I propose a reduction in the runs awarded in each play. To maintain the proportion, every scoring unit will be reduced by half. Only 0.5 run is awarded for what is now a one run play. A four run play would be just two runs, and six would be three. That would do it, for the scores. From now on, I would refer a six as three.

To reduce the run rate, I propose a new rule - (Take a deep breath) - "A batsman can score a second three (aka six) in three overs, if and only if his partner has scored atleast one three, or his partner gets out. This rule is applicable for the every second three (aka six) scored by a batsman (aka six) in the three over stretch, starting from the first three (aka six)." No such restriction for twos (aka fours) scored.

If you think the above rule is very complicated, my friend, Welcome to the world of American sports. Let me explain you this rule "clearly". Stay with me. OK ?

When a batsman scores a three( aka six), he can not score another three (aka six) for next three overs. Still with me ? Good! BUT the batsman can score a three (aka six) after his partner scores a three (aka six), or his partner gets out. Clear ? OK. What if the batsman scores a three ? - He would be awarded only 0.5 run. And this rule is applicable for every second three (aka six) scored by the batsman.

I know what you are thinking - This rule is dumb, and filled with lot of loopholes. That's what American sports are all about. First - Make dumb complicated rules. Second - Bring in lot of controversies out of these rules. And Third - Blame the referee or the umpire for everything, including the Bird flu in Asia and Europe, and of course, Malaria in Africa.

Finally - Handling a tie. Why this should be a even considered ? A tie game happens, say, once in half-a-dozen years ? Americans can not handle that, even there is a chance of it happening once in, half-a-million years. What would they write in the history books ? That no body won ? And most importantly, that no body lost ? Who was the "Looser" (with a big 'L') ?

And, how good could be a tie game ? - For American fans, "A tie game is like kissing your sister on the lips. Of course, you had a kiss. " This is one of the most important reasons, when you talk about soccer, the real football, Americans say "I don't know, man ! I think it tastes like almonds, may be ???" Translated: They don't care. That's a game, that the whole world is crazy about.

For handling tie, I propose Sudden Death. Alternate plays of one over each, who ever scores more than the other wins!!! (This should happen even if a team had all of its players out)

If we do all that, may be, Cricket would be as exciting, as dramatic, as nerve-racking as a Basketball or an American Football game. But it wouldn't be that as relaxed, as lazy, as a game it is now - with heart-warming light fun... Like a Cafe Latte. No, we wouldn't be seeing those bikini women lying, as spectators, when a game happens in Australia or Newzea Land.

No, we wouldn't be seeing a single player, as a hero, (like Rajinikanth movies) saving everything. No, it wouldn't be played by 11 fools and watched by 11,000 fools, as George Bernard Shaw thought it was. Cricket, then, would be a product deigned, manufactured, quality controlled, painted, packaged, made more sexy, shipped, and delivered for the sake of excitement, and entertainment.

Cricket, just wouldn't be cricket anymore. Cricket, wouldn't be played just for the sake of Cricket. I guess, it has already begun, and I am not sure, I am happy about that.