This is a true story — one that taught me a very useful lesson. I hope you will find it useful on your journey as well.
In 2000, Adobe launched InDesign 1.0 to critical acclaim. With its modern code-base, fresh UI, transparency and powerful text engine, finally here was a challenger to the dominant Quark Xpress. Though it was late by over a year (which v1.0 product is not lateJ) and it was not yet fully powered to knock out the incumbent, the potential was there to see and sure enough over the next 3–5 years, InDesign overtook Xpress as the dominant page layout and composition tool.
But my story is not about InDesign — it is about its predecessor, the humbler (and still standing), PageMaker — one of the first mega software tools that had come to dominate an industry. As Adobe focussed its engineering and innovation might on InDesign v1.0, PageMaker with its old code-base, 10+ years of legacy, and challenges with the architecture had been sick and losing weight (read revenue) with each quarter. Age had caught up with it and the end was near it seemed. No engineer worth his C++ wanted to poke into its C code — why waste hours on globally scoped pointers when you had the safety of InDesign’s COM architecture.
Yet, PageMaker had millions of users. Users who were gainfully using the tool day in and day out. Livelihoods depended on it though increasingly with its weak integration with other new-age tools and old-age limitations, it may have been the cause of plenty of heartburn and some occasional hypertension itself. PageMaker was a misfit in the 21st century desktop and fixing it needed some ‘fools to tread in’. No prizes for guessing who the fool was in this case!
My team had just delivered a bunch of plugins for InDesign v1.0 and we were high on adrenalin (mostly testosterone variety) and blinded by our powers of concentration, seeped in enormous patience due to our culture and motivated at getting a shot at a product with a couple million users. So we jumped at the opportunity to build a new version of PageMaker (and delivered PageMaker 7.0 — the last release for the product and probably the first product mostly developed from an India campus). We had to setup a renegade team with non-conformists and I had to put on my best “nothing can stop us” mantra to power thru many many, many many, many many issues but that is another story.
Today’s story is about how the collective wisdom and efforts of people can fail if you don’t have the right inside knowledge. Its also about how critical it is to understand the evolution of systems before one can inherit a legacy. And finally about how a sense of humour can turn a nasty situation into a friendly productive work environment.
So, after 6 months of working 60+ hours a week, with minimal team and near zero code documentation, the Zoji-la team (code name for PageMaker 7.0) reached the summit. All planned features were done, all major bugs fixed, no major new bug had crept in, and the UI had had some fresh paint — new icon, new splash and some proud Indian engineers on the about screen. Then disaster struck (what else were you expecting). Nay, catastrophe rather. Our shining new build would not print. NO PRINTING ? The whole purpose of a page layout program is to PRINT, damn-it!!
Sure, it would work with PCL printers (mostly HP) but ask it to postscript and it would simply eat up all your pages. And we had not made a single line of change to the printing sub-system (we were too scared of touching printing anyways). NO POSTSCRIPT PRINTING? Can you even imagine what people will say, Adobe, the creator of postscript could not get PageMaker (a tool to demonstrate postscript efficacy) to PRINT POSTSCRIPT ?? We could not have this, could we?
After a couple of days of frustration and anxiety we broke the rule — seek help from the old foggies at Adobe who probably had some stories about PageMaker in their years. And floated a simple question — hey guys, we did not change anything on Zojila printing sub-system but guess what, its not printing postscript? Know what’s happening?
There were many responses. One particularly funny one that I remember is a good friend and colleague saying “You are doing PM 7.0? Who set you up” (to do this). The more helpful folks offered advice on driver checks, version checks, print to file, steps on tracing and debugging — the whole nine yards. We might was well have written the OS ourselves. Time was running out and the team was losing momentum — perhaps all the Nay-Sayers were right and we were wrong and foolish to have tried this; perhaps our desire to cover ourselves with glory had blinded us.
Then came a ray of hope. A golden light dressed up in the darkest of languages. A curt one liner — “did you change the application name?” Of course we changed the application name, you $#%@^&, I told myself. It’s a new version of the application, it can’t have the same name. My insides were screaming to write back to write my best one-liner and show the respondent his obvious folly but sanity prevailed and I sent back a safer and ignorant response — “Yes we did. Anything we should be knowing that we don’t?”
The glorious reply to this made me wiser beyond years. Turns out that back in the days of DOS, when postscript had just been introduced and Microsoft could not find a way to integrate the postscript driver into their printer driver, a special “hack” was created in the operating system for “PageMaker” — the printer driver and ‘PageMaker” were joined at the hip so to say and the printer driver would behave differently for other apps while “PageMaker” got pride of place and a postscript highway. Of course, once you know who all are in the bed, it is easier to figure out who to jump on to get your fix — lo and behold we had fixed the issue. All was well!
At our weekly post-mortem meeting, our project manager, a hard-working simple bloke who was tired with all the poking around to figure out the issue and bore the brunt of jokers saying — “huh, this team will be revving up PM, they can’t even get it to print!” could not hold his anger any longer — he pointed his baritone at the gentleman who had given away the cosy secret between Adobe and Microsoft and challenged him — “and just who the hell are you? And why the hell did you not let us know this six months ago?” A fairer question had not been asked before, I was sure, and did well to put the gent in his place, I said to myself.
A moments silence ensured. Most of us were expecting a strong rebuttal with a “hell with you. I don’t work for you” type response. But this gent was made of different steel — “I am X. And think of me as the the CHIEF IRRITATION OFFICER” he replied to loud guffaws and smiley faces. Chief Irritation Officer — indeed! He had done his job well!!
So, as I said earlier, the combined wisdom of people will fail if you do not have an inside track of how things have evolved in an industry. This is why context and continuity are important. Also, there are many co-workers who can irritate you with their smartness, mannerisms, politics and sometimes just presence. Whenever you feel like killing one of them, think of my new CIO — unless you have a champion for the consumer on your team prepared to ask hard questions, chances are your product will fall short on some parameters.
To all customer champions out there — keep pushing !!