Friday, April 11, 2008

Vadivelu in IT

Disclaimer: The original thought has been circulated already in emails. This is just with a few personal value additions

Vadivelu comes to meet his gang of friends after being back after attending a torrid interview.....

Vadivelu: Soppa...Soppapapapa
Friend(s): Ennada machan ivvalavu down-a irukae....enna aachu
Vadivelu: Adhu onnum-illeda...oru interview ku poitu varaen
Friend(s): Apdiya....enna romba thalichitanungalo
Vadivelu: Mudiyala
Friend(s): Enna dhaan kaetanunga
Vadivelu: Modhala oruthan vandhyan....konja naeram piriyama dhaan kelvi kaetan....dhidirnu enna aachunu theriyale subject matter le kelvi kaeka aaramichitaan....Thodarndhu padhinanju nimisham da machan....thaalichitaan....Seri kaetutu podanu naanum jaaliya thaan eduthukitaen.....
Kadaisile phone potu....innoruthankitta...."free ya irukkiyada machan....inga oruthan chikkirukaan....evvalo simple kaelvi kaetalum thiru thirunu muzhikkiraan....nee konja naeram kelvi kaekariya-nu" kaetaanda
Friend(s): Ayyiyo....appuram....
Vadivelu: Avan chonnan.....naan konjam busy-a irukaenda....nee vaena avana inga anuppividunaan
Lift le kooda poha vidama....stairs vazhi kootitu poi....oru dim room le thallinanunga....
Anga pona oru moonu paeru da....summa muppadhu nimisham moochu thenera thenera kelvi kaetanunga.......
Friend(s): Yaenda nee oru kaelvi koodava thiruppi kaekala.....
Vadivelu: Illeda.......andha moonu paer le oruthan...."Ivan evvalavu kaetalum badhil solla maataengaran da.....ivan romba vallavan" nu sollitaanda. Seri kaetutu pongada nu vittutaen....

Naanum ethana naeram dhaan samaalikka therinja maadhiriyae nadikkaradhu.....Oru vazhiya en nelamaya purinjikitu lift varikkum vandhu vazhi anupinanunga......Naanum offer letter dhaan kudukka poranungalonu nambi lift le yaerinanda machan........patha naera ground floor kootindu vandhu visitor pass-a pidingi kuduthutaanunga
Naanum velile vandhu suthi kithi pathaen....therinjavanunga yevanum suthu vattarathile illenu therinjikkitu...."right right vidu vidu poikitae iru.....sunapana va nerungathaan mudiyuma" nu karagoshatha ezhupittu....getha maintain pannindu veetukku vandha saeraraen....



Thursday, April 10, 2008

Madras to Manila

Looking back at the past week, it has been quite eventful for me. In fact the week prior to my travel was the most confusing time I have spent shuttling from Philippines Chennai Consulate–Satyam's office locations....in the course of which I found that I have to take a round trip via Delhi to Manila just for the sake of Visa.

The flight to Delhi was very pleasant and little did it offer any clues about the impending twists in my tale.

This has to be one of my most ill-planned trips and I shudder to think that I was en route to an international travel and would return home only three weeks hence.

My first mistake was not to activate roaming in my cell as I completely forgot my migration from prepaid to post paid since my last Delhi visit. This forced me to take a new prepaid number with HUTCH. Thanks to new user friendly rules of TRAI activation takes 24 hours which is close to 60% of my planned duration in Delhi.

Before even this I had gone straight to the Philippines embassy from the Airport on Monday morning but was politely told to come the next day as I had missed the token issuance from 8:30 to 10:30. I panicked that I made a mistake of taking the Monday morning flight instead of Sunday evening, as they already quoted two working days for issuance of Visa and it really looked like my travel would be postponed to the weekend.

I could not wait for the next day to dawn and was anxious to see the Visa officer face to face as no matter how important a document on which my VISA was going to get issued I only had the Security to contend with who could only see me as a valid / invalid Token No :-)

As I waited I went searching in and around Delhi for a internet parlor and a Reliance Web World in the least. I guess Reliance should change their Ad Quote to “Karlo Duniya minus Delhi Mutti mein”. Fortunately my attempt led me to a Saravana Bhavan where I recovered partially with a mini-tiffen and madras kaapi.


I was forced to go back to the PARK to use the business center, which I was desperately trying to avoid, for browsing the internet at a measly rate of 300 Rs to an hour. The lady at the counter offered me lessons in Mathematics saying I could use it for 15 minutes and pay 75 Rs/- :-).

Maybe she was just trying to be of help seeing my popped out eyes but I was seeing everyone as operating against me.

I went to the embassy site for any further hidden surprises as they never told me about the token system. I found that the VISA fee was expected only in a local DD and not cash. So I rushed to the ICICI bank and cut a draft for 1500 came back to the room and in the idle time cross checked if I had missed out any documentation. The checklist noted down by me said Rs 2000/- for single entry VISA fee. The damn website was outdated.


So I had to rush to the ICICI bank to cut an additional draft for Rs 500/-. In my effort to not get into further trouble I asked the ICICI bank officer, who had changed by this time, to make the payee exactly similar to my previous draft so that there is no rejection due to such issues of carrying incompatible drafts.

The girl kept smiling at me and I was wondering whether I blabbered something.
I was sure she was going to curtly tell me “I know my job mister” but in hindi she said “Uske Liyae humko aapki pehli DD Dekhna chahiyae naa”. I sheepishly handed it over from my bag.

To my surprise I found the Payee was misspelt in the first DD itself so I hurriedly asked her to cancel the first DD itself and give me one consolidated DD for Rs 2000/-

A tired day came to an end and I cancelled my plan to go to Saravana Bhavan for dinner and had a quiet dinner at my room itself.

Next day at the embassy I became token no 6 for an hour of my life anxiously waiting my turn to get into the "Pearly" Gates to present my documents and get to know when I can get the Visa.

Once the Visa officer saw my tickets were for the same night to leave to Manila he was shocked and asked me how come I came so late as if it was my wanton delay or laziness...

When I told him the communication has come from Ministry of Foreign Affairs he picked the fax communication and said “Sir, Why did you come all the way to Delhi. We could have authorized the Chennai consulate to issue your Visa”. I was about to faint but gathered back my composure and got enough courage to ask him whether I will get my Visa that day itself and he told me he would call me on my local mobile around afternoon to tell me when I will get the Visa.

So unable to bear the tension of idling in the hotel I went to the Ministry of Statistics to finish some project work related to my travel to Manila and blindly checked out of the hotel and kept my luggage in my elder brother’s in-law’s place.

I got a call on my mobile as promised from the embassy asking me to collect my Visa at 5:00 PM and I traveled on schedule as per my itinerary.

I took a momentary pride in my quick decision to get a local mobile card as only that helped me keep in touch with a faceless consulate officer as each time I get turned down by a security officer asking for inputs I can never think of possessing till he mentions it to me

Till that time I had very little imagination that I would see the dawn only in Singapore’s Changi Airport. More than a dawn it was an awakening of sorts. I was like transfixed into a new world. Something straight out of a Tom and Jerry cartoon where Tom takes an escalator to heavenly abode and keeps looking around at everything with so much of awe.

For the first time I saw the convenience of escalator belts being used for horizontal displacement of people and made maximum use of it instead of walking around

But my funnier moments were in the airplane from Delhi to Singapore. Its been quite a while since I took an international flight and the gizmos attached to the seat are always state of the art and often make you appear wanting in common sense to make use of them.

There was this cute LCD monitor in front of me but with only two buttons to increase and decrease the brightness and I was wondering how to turn it on. Then I remembered that the remote was quietly concealed in a cavity on the side of the seat armrest attached with a spring cable.

I would not have been so unsettled had the old lady who was next to me smiled back as I took my seat and smiled at her. Somehow she gave me a feeling that I was Mohammad Atta himself. From that moment I started fumbling around for things and took quite some time to settle down in my seat.

The best part came when the air hostesses were distributing head sets to be used for the TV sets and I was again lost on how to connect the damn thing. I could see two hole-like cavities at the bottom of the LCD monitor and for a good five minutes was trying to attach it under the monitor but the thing would just not fit in.

I desperately looked around to see if somebody connects it so that I can learn the trick without asking a stupid question to the air hostess. To my dismay everyone was pretty much at ease and did not want to even open the headset from its plastic cover.

Sometimes I feel frequent travelers have a very pompous way of settling down in the air craft by doing things in a particular sequence and giving you a complex by sneering at you as if you are straight out of a village if you don’t know your way around.

After all it is not rocket science and for all I know the other guy has just traveled a couple of more times than me. In fact you travel once and it is all the same except for your anxiety to not look foolish if you are traveling after a long gap.


I waited patiently for the take off for someone to start using the TV set so that I can simply ape that guy and was pleasantly amused()to see some of the pompous looking travelers making the same mistake I was trying to do with the headset.

When I glanced across the aisle to the farthest window seat I saw a guy who was in full flight (I mean with the TV set) and the wire was not going across his seat to the LCD but was hanging by his side. When I also looked around the corners of my armrest I found that my own thighs were hiding the socket plug-in for the headset....

Slowly one by one I recalled from my earlier experience of traveling in Air France 5 years ago and was soon merrily surfing the channels. One improvement that I could see was that there were on demand movies that you could start and play any time you wanted and much to my relief there were two Tamil movies (Vasool Raja and Gilli) and I gleefully watched both of them.

The Concept Of System Boundary

It is very fascinating to note the revolution of automation that the electronics and the IT industry have fostered over the past several decades. 

It is indeed true that one can go to any extent of modeling real world objects with increasing advances in the discipline of design and engineering as it evolved from structured and modular thinking to object orientation and further into a layer of abstraction called design patterns.

I am a true believer in this concept of systems thinking and an ardent subscriber of the ideologies of systematic decomposition of a problem statement to finer levels of granularity so that the design can scale up to NOT JUST solve the stated problem but also address, with minimal rework, un-stated problems that usually arise as usability issues while using the system to solve the stated problem. 

But I have simultaneously felt that there is sometimes a lack of moderation in the enthusiasm by some people to extol the ability of humans to model and then automate real world objects and their behavior into a package of hardware and software right up to the extent of building Cyborgs (or Cyber Organisms) that can mimic human behavior in totality.

Of course I am referring to some filmy depiction of the application of this form of the technology in films like Matrix, Terminator etc.

I used to wonder why I was not able to put my objection to this in words although something within me kept telling me that this is exaggeration of the highest magnitude. 


Some point was totally being missed in depicting the usage of technology to this level.

My pet hate topic in this industry has always been Artificial Intelligence as it always ends up being a case of 6 blind men defining an elephant. I feel almost everyone has their own opinion of how much artificial intelligence can actually be developed and demonstrated as a result of using electronics and supporting software for the same.


I really feel thankful for having read a very insightful article that elaborated on why we need various external consultants like a system's analyst or a business analyst in modeling a problem domain and to define it in a telling manner the author had beautifully used the concept of Artificial Intelligence in stressing this aspect. 


I am not able to recollect either the author or the journal that published the article and what remained imbibed in me were his defining views on this subject which I would like to share to everyone through this article.

The central theme of that article was the simple philosophy shown below

"You cannot be a part of what you define"
The key word is being able to "define" which should be understood as being equivalent to the meaning of a word as defined in dictionaries. 

Of course one can talk a lot about what one is a part of. Like how one can talk hours on end about one's own self. 

But to be able to define something is a totally different ball game and for the content to be end to end in scope and to be near perfection it always needs to come from a source external to it.

For example a storekeeper would never be able to define the inventory management system and can at best excel in providing his perspective of what he wants it to be and the same is true with all the stakeholders of the Inventory Management System. 

It really takes an external consultant or a modeling specialist to put all the pieces together to form a synergistic whole called the Inventory Management System.

To underline this theory of "The need for someone external to an entity to be able to model that entity in entirety" that author had used the domain of Artificial Intelligence.


The keyword in that domain, which misses many enthusiasts, is the very first word: - "Artificial". 


It has a significant meaning and means that whatever be the scope of human intelligence that is modeled by a specific AI implementation, say a robot in an assembly line or a unmanned aircraft for that matter, it can never ever be complete and replace human intelligence altogether in that field. 

Even if an intelligent framework is built to sense atmospheric parameters and take some decisions based on a combination of variables, somewhere it all boils down to a pre-programmed set of conditions being mapped against a clearly documented set of actions for which the software that drives its implementation is built for. 

In other words since the implementation can come only from a human being, however extra ordinary he is from a normal human being, the implementation cannot be more than his own complete intelligence which is naturally a subset of all of humanity's put together.

This was somehow my basic instinct in rejecting such concepts in films although the technical brilliance was overwhelming and then the moderation that it’s after all a film helped me enjoy the entertainment without further bias. 


After reading this article my instinct got the form of some words and also my perspective of System Boundary improved leaps and bounds. 

This blog is not about Artificial Intelligence anyway and in no way meant to trifle the advances made in the field of AI, as by itself it is a highly revolutionary field. 

Fuzzy logic based systems have enabled man to travel hitherto uncharted territories like sending an instrument to read the ocean floor, plot data to predict earthquakes, Tsunamis and so many other things that have enriched the existence of even the average human being.

An appreciation of the topic of system boundary has always stood me in good stead when bringing my interpretation to the table in day-to-day project discussions or proposal preparations especially when it comes to deciding what is within scope and what is outside the scope. 


The fundamental basis by which scoping can be done correctly is by deploying a sound understanding of what is the system boundary of the system we are currently analyzing. 

This understanding can also help us in correctly identifying the interfaces and the structure of each interface that the entity exposes to its outside world.

This concept comes in very handy in projects when a feature is being analyzed for the validations that one would do before initiating a process.


Typically an application is a sum total of Event-Response chains. 


Each process thread (say a Save action in a screen) is a series of event-response activities before it dies down with the first event being initiated from an entity (typically a human agency) sitting outside the system's boundary. The most immediate response by the system for an end user initiating event is typically a validation process before it can trigger the next event of lets say a database storing activity. 

The concept of system boundary is the most essential clarity required to analyze what is the scope of validations you can automate and what remains within the boundary of the end user to ensure for himself.

Let us take the example of a excel upload of data. 


If the application is expecting data in a particular format then one of the validations to put in place would definitely be various checks on the format compliance.

Now while it may be easy to check a few critical signature cells and decide that the format is valid or not, it will open a whole world of scenarios for the user friendliness of the error message if you consider all the invalid data input scenarios. 


For instance an end user may be uploading an excel sheet that is slightly out of sync with the format (say a spelling mistake in a cell having some key field) or may be uploading a file that is totally out of sync in content.

Let us assume that the functionality is such that by inspecting cell A1 of Sheet 1 to have a particular signature value for a downloaded template it might be enough to convey to the end user with a highly generic message that the input file is not as per format. 


Here is where the concept of boundary will come in deciding how far you would go in conveying how much away from the format compliance the input excel sheet is.

Any or all of the following validations may be included in scope, with exclusive messages that convey what exactly is wrong with that file
  1. Whether the file is an excel file at all (sometimes a word document can be renamed as an .xls and file filters in the OPEN FILE dialog may not always save your application from disgrace)
  2. The file may be an excel file and may totally be empty
  3. The file may have the data in the right format but in the second sheet while you expect the data in the first sheet
  4. There could be duplicate rows of data across the data region
  5. ...........
  6. .........
  7. ......
  8. ...
Actually there is no limit to the seemingly finite number of scenarios that you can check and give error messages and is only limited by creativity, project scope (i.e. how idiot-proof should your application behave) and most importantly budget. 

The concept of system boundary in this example can be understood as where the list of validations will stop and it naturally means that at that boundary (Artificial Intelligence), the system boundary of the end user (Pure Native Intelligence) takes over and he/she has to inspect what exactly could have gone wrong with this upload. 

The user may even be surprised to see that he tried to upload some weather data while the application was expecting some bulk upload of exchange rates !!

The above example may seem rudimentary but is only being used to convey the universality of the concept of "System Boundary” that equally applies to each granular process that is part of a "Response" in the Event-Response continuum that makes up a process thread in a system, the sum total of which makes up the overall System Boundary of the system.


The more deeper your appreciation of this concept the more scalable the system that you will spec, design, build & deploy.

Good luck.

Regards,
Mahesh

Anniyan in IT

A timid project leader who is very passionate about the quality of software that gets built into his project is reviewing the code of one of his careless programmers
PL> enna idu thappu thappa code ezhuthirukael. Functionality kum code kum sammanda me illiyae
TM> Enakkum indha role-kumae sammandham illaya yow. Enakku indha role pidikala
PL> Ippidi ellam pesa koodadhu....project mudiyira verikkum uzhapaennu interview le othundaele......ippo ippadi thooki erinju pesina enna artham
TM> Adhu pona vaaram.......idhu indha vaaram
TM is going to rest room after sometime
Anniyan> Yaenda somberi mavanae.....
TM> yyaaaru adhu
Anniyan> Naan dhaanda Anniyan
TM>nee....neenga en PL illa
Anniyan > Yaaruda un PL....un PL oru pilla poochi.....avan cubicle le ukkandhu un veena pona buga poi root cause analysis pannindu irupaan.....naan unnayae root-oda pidungi cause illama alaya vechiduvaen
TM> Idha parunga ippidi ellam meratina.....ippo silent poiduvaen aana build release le yarukkum theriyama 5 bug set panniduvaen........time bomb maadhiri eppo build crash aagum nu enakku mattum dhaan theriyum
Anniyan> Yaarada bayamuruthara....naan enna appraisal, normalization nu meratuvaenu paakaraiya.....onsite UAT ku unna anupchi daily build le naan bug potu kuduthu un maanatha vaanguvaen....ivvalavu pesariyae......5 bug irundha thappa
TM> periya thappu ille
Anniyan> 5 KLOC le 5 bug irundha
TM> Lesa thappa dhaanga thonudhu
Anniyan> 5 KLOC line ovvonnilum 5 bug irundha
TM> pe.... pe....Periya thapunga
Anniyan> Dei vennai un program ellame appidi dhaanda irukku.
Unakku naan kudukkara thandanai bug podara TM kum thaeva illama root cause
analysis pandra PL kum oru padama irukkum

Humility - An Introspection

I felt it was very important to jot down for myself and incidentally share with others a deep realization on Humility that I gained based...