Winston Churchill (he remembered for his iconic bulldog and cigar the size of a forest log) summed up the state of software (although he did not know it then) when he quipped (to paraphrase): it is a riddle wrapped in a mystery inside an enigma. I remember attending a lecture back home in the dusty frontier town of Johannesburg, South Africa by the then chairman of Anglo American’s Gold and Uranium division, Clem Sunter. He, like Churchill (he did not know it then) summed up the state of software when he described it as taking the high road to success or the low road to failure. Neither of these great gentlemen was of course alluding to software but that’s of no consequence here. What they did say though, could represent the state-of-the-nation address about what software has become.
So what exactly has this to do with IA? First principles, that’s what. I am a recent convert to IA. Like many IA users I cut my teeth on that other product. The one thing I noticed was that when I danced to the merry tune of that product, each version seemed to complicate the dance steps and added more complex reels and jigs to the beat. Given that all I wanted to do was produce quality installation packages I sometimes found the complexity overwhelming. Yes, I do agree that you need a broad spectrum of features to make software more usable but at what cost? Microsoft no longer (to the best of my knowledge) herald that “we have added 1800 more features to our Word application.” Jolly good too. If someone told me that I had 1800 more things to use at my fingertips I’d feel a sort of obligation to learn many of them. Not because I need those features but possibly because without them I’d feel that I was not leveraging the best from the application. There’s the rub. When an application needs to be updated to keep pace with the other horses we have to draw a line between the thoroughbred and the dressage horse
I am as guilty as anyone when it comes to developing software that outlives its original purpose and design. So often I’ve added a riddle wrapped in a mystery inside an enigma all concealed as a new feature disguised as a bug. I have code I authored and am working on at this time that resembles an unfortunate cyclist’s bicycle inner tube – full of patches. How it manages to get me home each day is remarkable. Even moreso for our hapless users. When asked how the next release was progressing, I somewhat insensitively told the project manager “well, it compiles clean, so let’s go live and put it in production.” I sometimes wonder if that is not such a unique thought after all. I would never think of doing such a thing but in the endless cycle of effectively giving less that’s usable for more money, I think I, like the other company has reached that place where the original product has now become diluted. It’s still useful but less usable.
I know little about the birth pains of IA. What I do know is that it is not a hack of what went before it. They took a new look at what an installation package should do. It was designed from the perspective of first principles. It does not resemble a tin roof stuck on a concrete slab sticking out from the support of a rotten piece of swamp wood and then covered with white paint to make it look like something new, but concealing what exactly, within? I’d previously have had to use maybe 50% of lots of things to do the 15% I was trying to do. IA has met my design challenge of letting me use 10% to do 80% or 15% to do 90% although the ratios are irrelevant. The point I’m making is that by getting back to first principles I can do most things using the minimum I need but still giving me enough in reserve for the rest. For certain, much of that is due to IA handling the complex details out of sight down in the engine room. Should software play catch-up just for the sake of catch-up? There is nothing wrong with that. Time and again, we’ve seen products get better if there is an ever changing yardstick to compare it to. By the same measure it can work against a product. I think IA affords an excellent and extendable product. I’ve no idea what the next major version will offer and I hope that IA will not start to take it down the rocky path like some applications I’ve used. Compared to the other product, IA has achieved – by embracing first principles – divergence. IA is now charting its own course and destiny. The other ship not only has to contend with stormy waters but it has to keep a weather eye open for IA sailing alongside in the fresh wind of healthier latitudes. One industry analyst described IBM as a heavily laden ill-balanced tramp-steamer, reluctant or unable to change course without needing miles of open sea to do so and then compared it to that nippy speedboat called Microsoft that cuts and thrusts over waves and wake. I’m no industry analyst but I can see identical sailing conditions between IA and you-know-what.
That brings me back to what Clem Sunter offered: low road or high road. I’ve a good idea what one they are taking.