Old Jakartan Newsletter (March 7, 1997)

Weirdness Magnet: Phase III - NSTB Nightmares

Part II: Endings

We lived in the nearby Singapore YMCA, about a kilometer distant from the office. While Ganesh and I preferred the quick walk to office, the idea was anathema itself to Ajit and Varadan, who could not fathom the incomprehensible and casual waste of energy that this implied. They regularly followed on the local bus. The expenditure of 50 cents that this involved caused some distress to the thrifty soul of Ajit, but he rationalized it away as being necessary for a good cause.

The Vaccilating Varadan shared his roommate's aversion to speed, preferring to write no more than three SQL statements a day at the height of his enthusiasm. He was also responsible for his subordinate, the Perpetually Persistent Promilla, whose enthusiasm normally exceeded her good sense by miles.

Varadan's main dream in life was to become a DBA, a position he saw as an endless stream of riches with little or no actual work. All other jobs were merely a matter of passing the time until he actually attained his dream.

Varadan found a kindred spirit in Ajit Kumar, a person who was content to listen at great length to Varadan's speeches upon the nature of life. Ajit remained content as long as Varadan asked nothing of him that might be considered actual work. Since work was a condition that Varadan despised whole-heartedly himself, the two got along together like long-lost childhood friends.

Being desperate to get some results on the EIS, I began teaching myself that software, probing deep into the code. One piece of code caught my eye: a join on five tables, that looked like it was slowing down the system. Upon deeper examination, I noticed that the fourth and fifth tables in the from clause were never actually used, either in the Select or in the Where clause. This meant that there was a useless Cartesian join on two more tables than needed, something that would badly slow the system down. I pointed this out to Promilla.

"Oh, yes", she smiled "I copied that SQL statement from this other screen. Since I didn't need the other two tables, I just left them there. They're not hurting anything, anyway !"

Groaning, I explained to Promilla that they were indeed hurting performance, and needed to be removed from the query.

Upon further examination, I found a few more joins that were lacking WHERE clauses. Beyond all shock, I gently pointed this out to Promilla who explained to me that the situation was perfectly normal.

Glowering, I walked over to the Vacuous Varadan, and explained the scheme of things to him.
"She's your subordinate; you ought to explain this to her !"

"So ?" he slowly blinked "What is the problem ? Queries and joins don't always need Where clauses !"

After I dragged him over, he conceded that the query performance might be improved with a Where clause, but refused to believe that this was anything critical. I wished any organization that hired him as a DBA the best of luck, and slowly collapsed into my chair.

EIS was a domain that I was not totally familiar with as yet, and I was sure that there would be several more tales of horror within, did I only know where to look. An idea struck me: the Paranoid Punk had mentioned his skill at EIS to me when we met in Jakarta; perhaps I could request him to do an internal audit of the code.

SKG swiftly set Pankaj on this task; still not content, I phoned the Punkster and asked him to do a deep probe within the actual code itself. Pankaj thought this a weird request: why would anyone need to get as detailed as that ? His hyper-sense for trouble had been lulled by his extended absence from Aman, a state of affairs that lasted only until his actual opening of the code.

After recovering from the shock of viewing the initial few pieces of code, the Punkster called back in a tone of dread. As per his scrutiny, the code approached levels of foulness hitherto undreamt of, and comparable only to devastation at Hiroshima. His initial report over, the Punkster returned to his excavations, soon coming up with pieces of brilliance that he refused to believe possible. A person passing outside his room late at night heard soft sibilant cries "Oh, God ! Oh, Gawd ! Ohh, Gawwwdddd !" followed by a soft sobbing. The sobbing sometimes turned into a maniacal, hysterical laughter, and the halls of NIIT gained a bad reputation for being haunted in the nights that followed.

Still, Pankaj was no longer the soft, sheltered youth that had emerged from the protective mantle of NIIT's CSG division; his time with Aman had toughened him, and the new Pankaj had been hardened enough to cope with even such problems as this. The Vacuous Varadan had undoubtably been extremely creative in his work. As Pankaj watched in slow horror, more and more banes kept coming to light:

* a button, that if pressed, would get you the total production of Tata Steel (no matter what the actual contents of the database might be, or even if the Singapore-based NSTB had no interest in Tata)

* a combination of buttons that was guaranteed to crash the application if any unsuspecting user actually touched them

* buttons that took you nowhere when you clicked on them

* the creative use of V-- (a Varadan-created rejection of C++, that demands that no code may be re-used anywhere else, and that all code must be re-written fresh for each screen)

and other such elaborate concepts.

Further followed when Pankaj began to investigate the SQL used in the project. His heart dropped, but the bold Pankaj probed onwards, testing and reducing queries to his utmost. To be sure, this did not win him admiration from every side; one notable detractor was Promilla, who took exception to his having taken a 100-plus line query of hers, and having reduced it to 6 lines. To be fair, Promilla agreed that both queries did do the same job; what her complaint was, was that Pankaj had destroyed her "cute" SQL. He had spared no consideration for the dozens of joins and unions she had so thoughtfully added to her query to beautify it, and instead mercilessly scraped them all away.

Unfortunately for posterity, this legendary piece of Promilla's code was lost forever when JC formatted the LAN, a tragedy comparable to the burning of Alexandria.

Change requests and Bug Reports were flying fast and furious by this time. Ee Sin and Lai Mun, thoughtful and thorough testers that they were, had developed the habit of meticulously writing down every error they spotted and faxing them to the NIIT offices at the close of each day. Each evening saw the fax machine getting clogged by a couple dozen pages of incoming faxes. The thoughtful Ee Sin waited until the end of each day before sending out any faxes, so as to ensure that she would have covered any and all possible errors. Unfortunately, our receiving them at the end of the day also meant that we wound up working for the rest of that night ...

Fascinating new pieces of code kept appearing from the depths of the application; Ajit appeared to have found devious methods of fooling the compiler, and written creative code that the Visual Basic creators had never conceived of (and thus failed to defend against). As Ee Sin kept discovering them, Ganesh and I kept weeding them out. And quietly typing away in a corner, Ajit Kumar kept adding fresh chaos-code to the application ...

Came the day when Ganesh was at last freed from the project, finally to return to the arms of his lady-love Hema, who awaited him in India (running up tremendous telephone bills all the while). Ganesh and Hema had long since come to the conclusion that it was pointless for one of them to work abroad, as the extra income was far offset by the massive phone bills they ran up.

Gan was in a paroxysm of joy, and went around spending his last pennies at Singapore Airport.

"I won't need it, yaar !" he grinned "Hema's meeting me at the airport, so I won't need money there either."

Gan had agreed to take a return flight which had a stopover in Bangkok, due to its being the only one available for some time. Alas for him, the day after his departure, India was isolated from the international community due to a raging plague which had burst out there. As a result, there were no inbound or outbound flights; every last one had been cancelled. Which meant that Gan was stuck at the first leg of the flight: stranded and penniless in Bangkok.

This threw panic into the NIITian ranks, both at Singapore (where I attempted to track the man down) and in Delhi (where Hema left no stone unturned in the quest for the Gan). The additional matter of him being penniless weighed heavily upon us, and alas, Thai Airways remained unable to locate Gan in Bangkok.

Pankaj, who was still in Delhi at that time, cheerfully queried Hema,
"So Gan's stuck in Bangkok ? Why should you worry about him ?! Knowing Gan and Bangkok, I'm sure he's having the time of his life !"

Hema paused in her tracks for a couple of moments, giving Pankaj the scant seconds he needed to make good his escape from the torrent of wrath that swiftly followed from her !

Eventually, Gan did contact Hema, proclaiming his safety, and all was well.

I continued making the rounds of NSTB, meeting all the clients and users, and generally staying in touch with them.

"So, how's Rajeev ?!" Ronnie asked, brightly, upon one of my visits.

"He's just fine." I replied, surprised. Ron had never indicated that he held any love for Rajeev, and this concern was unusual.

"Oh, we had heard about the plague hitting India, and we hoped that he had died." mentioned Ronnie, in a downcast voice.

Still, Ronnie's native Singaporean good cheer came up to the front, and he smiled again; after all, Rajeev had to die sometime, right ?

Eventually, implementation time rolled around, and the work expanded once again. As an emergency measure to cut down the number of errors in the system, Ajit Kumar was sent home. This appeared to have done the trick, reducing the list of new errors that kept appearing. In an effort to maintain the focus of the system, the EIS team was also prepared to return, with the understanding that Pankaj would arrive in Singapore to take a short EIS class for Calvin and Ee Sin. Pankaj gladly agreed to that condition. Harpreet and I were considered essential for the implementation, and had to remain.

Calvin requested bio-datas of all the people working on this project, and I quickly assembled all that I had. To my dismay, I noticed that Promilla's bio-data only showed three months of experience, a far cry from the minimum three years NIIT always promised its clients. It would be difficult to hand this over to Calvin.

"So how much experience do you have, Promilla ?" I asked desperately. "This only mentions three months, but that can't be right, can it ?"

"Of course not !" protested Promilla, indignantly. "That's wrong !"
I heaved a sigh of relief. "Okay, tell me all the rest of it, and I'll type it up myself !"

"Well, there was a week with my project company, and I had gone to this other company for a day, so that's eight days more !" explained Promilla.

I stopped in my tracks.
"And uhh ... what else ?" I pleaded, hoping against hope.
"Oh, that's all !" replied Promilla, brightly.
I gave up. There were some days when it just wasn't worth the effort ...

Luckily Calvin was in a good mood, and accepted the bio-datas as they were, with just some gentle needling.

The rest of the team left Singapore shortly thereafter, leaving Happy and myself in place. We continued until the implementation had successfully run its course for that year, and then slipped into our new roles with NIIT: Happy in his true DBA role, and myself with NIIT's Singapore office.

A new contract was signed for the next year (in Rajeev's absence, as NSTB promised that they would refuse to sign if he arrived), and Madhavan took over the project for a while. He quickly gained the nickname Madman shortly after, but it is improbable that this was on account of the NSTB project ... presumably.

That's enough travel ... now let's head back home