Letter to the Editor

You’ve gone on a vacation with a bunch of friends. Each of you has taken a gazillion pics, posted the best few on Flickr and shared it with the group. While browsing through the collection, you realize… that’s a good one, but hey, I was there in that same place, I took a photo at the same time… how come I didn’t see that?

Is it because your friend had a few megapixels extra, or a faster lens? Let’s extrapolate the galloping advances in optics, CCDs and storage to the point where you have a camera which can take continuous 24fps ultra-high resolution pics of everything you see, so that at the end of your vacation, you have a complete digital recording of everything you ever saw. Would that be a good thing?

Of course not. Sitting through somebody else’s vacation home video is the second deadliest form of torture (the first, of course, being an Indian Wedding Video, with accompanying voice-overs about unke mause ke chachere bhai), because so few bother to edit the video.

Which brings me finally to my point: Editing is one of the prime functions of the brain. Like shellfish unfurling their fan-like appendages to strain bits of food from the flow of water, the brain has evolved to pick out interesting bits from the raw wash of sense data. To pick that one instant, that particular subject, that particular angle, that particular framing, is one of the highest expressions of this skill. Photography is all about editing. All that bull about megapixels and lenses and F numbers is just nonsense – you can take interesting pictures with a point-and-shoot and Patel shots with a Nikon D300.

At least, that’s what I tell myself when I see the $@#% price tags on those $@!% lenses. I bet they taste sour, too.

Cprsn

I was waxing eloquent on the new gzip compression program when Guru Hemal turned to me, a twinkle behind his soda glasses.
“I can tell you how to compress any file of any size, down to”, he waved his hands with airy nonchalance, “8 bytes. Or 16, at the most.”
“OK, I’ll bite”, I said warily, wondering if a bar of unit length and an infinitely sharp pin were about to make an appearance.
“Imagine an infinite disk”, he said, “give me any file – I’ll copy it there and give you a unique index number for that file on the disk. Whenever you want it back, just present the index number and I’ll retrieve the file. See?”
I saw. “With 16 bytes, you could store 2^128 unique files and we could never produce that many… of course, there’s still the small matter of the infinite disk…”
“Moore’s law!”, he handwaved again, “just you wait!”

This was in the early ’90s, when 100 MB disks were considered big, the web was still a glint in Tim B-L’s eye, and Usenet was the Great Time-Eater. Today, the infinite disk is a palpable reality. With Wowbaggerian resolve, Google decided to suck up the world’s information and – this was the part they really decided to grit their teeth over – make it universally available. Many a conversation has, in this age, been compressed to a pithy, dehydrated phrase. Just Add Google for it to spring to full and lush meaning.

Not only does the infinite disk exist, it is addressable in human language. It is a measure of how deadened we are to the pace of technology that we do not wake up every morning in utter amazement and awe. I vividly remember trembling with excitement when first summoned the ftp daemon behind sunsite.unc.edu, half a world away and – in real time – it asked me for a username and password. Today, I routinely use the Google genie – still half a world away – for trivial math, just because it would require a few extra keystrokes to fire up the local calculator program.

This is not an unmixed blessing – any pretensions to original thought, which a poor education might have enabled you to sustain indefinitely, are swiftly and mercilessly killed. Someone, somewhere already had your “original” idea, and expressed it much better than your crude attempts to rub two metaphors together and produce a spark of… see what I mean?

Autonomous Software Agents as Trustees

Now we come to idea #2: immortality.

“Arthur’s brain could always be replaced,” said Benji reasonably, “if you think it’s important.”
“Yes, an electronic brain,” said Frankie, “a simple one would suffice.”
“A simple one!” wailed Arthur.
“Yeah,” said Zaphod with a sudden evil grin, “you’d just have to program it to say What? and I don’t understand and Where’s the tea? – who’d know the difference?”
“What?” cried Arthur, backing away still further.
“See what I mean?” said Zaphod and howled with pain because of something that Trillian did at that moment.
“I’d notice the difference,” said Arthur.
“No you wouldn’t,” said Frankie mouse, “you’d be programmed not to.”

My limited definition of immortality is – ensuring that a part of you lives on, so that your wishes are carried out well beyond your expiry date. The traditional way it has been done is

  1. Genetically
  2. Make a lot of money and establish a trust fund run by a bunch of lawyers whose firm has been around for centuries.

Both methods have their limitations. The genetic method involves creating a creature which develops its own ideas about what to do with your legacy. The other one has a high barrier to entry and is prone to creative interpretation on the part of trustees.

Now consider the breadth and depth of data available online and the increasing number of things possible to do simply by being connected to the Internet. It is possible write a program – essentially, an autonomous software agent trustee, an asat, which will

  1. manage the resources required to fund itself and its objectives.
  2. monitor the net for events
  3. carry out actions like selling stock, sending roses, periodic emails, giving money to individuals, institutions, charities based on triggers like timeouts and events visible on the net.

The legal framework would be the same as that used by trusts. It’s just that the human trustees now have a very simple job – they need to verify the legality of the program, host it somewhere where it has net access. This enables the trustees to deal with orders of magnitudes more clients than they possibly could if they had to function as “human executors” of “wills”, which is essentially the same thing. It also reduces the scope of creative interpretation.

Given Moore’s law, the cost of running the asat is next to nothing. Given compound interest, after several decades, its financial power will be far greater than you could achieve in your lifetime. Especially since it will use strategies which work well over really long terms (buy-and-hold), whereas impatient monkeys like you can’t resist the urge to meddle. You can then use it to do significant stuff without relying on your descendants. You can leave the bulk of your assets to your descendants in the traditional way and a small amount to power your asat. Compound interest will do the rest of the job.

The asat would use abstractions which would be meaningful across long periods (~100s of years) of time. The framework in which the asat is written will provide fixed APIs and implementations of these abstractions. The framework will need to be upgraded from time to time as the implementation of the abstractions changes, but the core logic can remain as-is.

Here is a simple example something which can be done by an asat:

  • Generate some amount of cash every year from an investment portfolio.
  • Pick some descendants at random, probably the younger ones. It’d know who your descendants were, from walking through the births/deaths/DNA fingerprint database. It is possible that you might be even be able to compute who your favourite great-great-great grandchild is, by looking online at their school scores, favourite books, toys etc.
  • Pick at random from the 10 most popular toys for that age which fits in the budget. (Today’s implementation in the framework: look at the Amazon top 10)
  • Buy and ship, optionally with a note and a sermon from great-great-great grandma appropriate for that occasion.

This simple example illustrates a few common characteristics of such agents:

  • They can identify people by a chain of trust which extends through time, with resources available online, and make decisions with a high degree of confidence.
  • They can make a good buying decision – appropriate for the time in which it is made – without having any conceivable idea at programming time, of what toys would exist or be popular 100 years hence.
  • The framework needs to translate a time-independent command like “give me a list of the 10 most popular gifts for 6-8 year olds under 100 dollars (indexed for inflation)” to an Amazon API call. 20 years later, this may be a lookup on some MegaGoogle API. Someone needs to keep updating the framework.

There are many interesting points about asats. I will talk about a few of them below.

  • One of the most important issues is that of legality. Human trustees would be ultimately legally responsible for the actions of the software agent. Therefore, one immediate barrier to agent complexity is that the code needs to be simple enough to verify and get certified (and recertified, on demand, when laws change) by a qualified human that its behaviour would be legal. One way is to translate the code to LEGAL, an Anglo-Saxon language full of whereases and heretofores. This LEGAL document can then be examined by the trustee – if he is comfortable with executing this piece of LEGAL, then all he is doing is outsourcing his execution to the software, which presumably functions as advertised. This is not such a big deal, since humans are called upon to validate, certify and audit the behaviour of very complex information systems for compliance to regulations specified in LEGAL. Anyway, there are going to be any number of tiny island republics with liberal laws, submarine fiber (and maybe nuclear deterrents), which will gladly host your asat for you.
  • You don’t need AI, strong or otherwise, to accomplish this. It’s possible with today’s technology. However, AI would certainly make it possible to specify more and more complex behaviour (approximating your own), although it would pass the behaviour verifiability event horizon at some point. Asymptotically, this would lead to the download-yourself-into-teh-intarweb immortality which strong AI and Singularity proponents are dangling in front of us.
  • A language for speaking to asats will emerge. Let’s say you want to build a hospital in Hingane Budruk. You would write a blog post or a press release, with a Request for Funding tagged with the appropriate keywords. Some asats would notice – through MegaGoogle news – that someone is planning a hospital in their home town. They would then put up some money towards it.
  • “Exploits” targeting such agents to get money out of them (“I am the ghost of MRS MARIAM ABACHA…”)
  • A stronger way to ensure that your asat doesn’t squander his money on fraudulent RFFs would be to create a chain of trust. For example, I trust the judgment of X, Y and Z for financial matters and assign scores to each to reflect my level of confidence. A, B and C for political matters. I will encode this, sign and publish my trust matrix. X, Y, Z, A, B and C will also do the same. Sooner or later, the trust chain will include younger and younger people. So some guy in 2100 may endorse a particular scheme and you can evaluate the value of his endorsement by computing the path through the trust graph and the weights on the edges. It won’t be just one guy, of course. Thousands will vote on schemes and by aggregating their judgment, your asat will have as good a way of getting sound advice as any. This is similar to the PageRank and other Web2.0 peer rating methods, except that it extends much further through the time dimension. Using the temporal chain of trust, you would even be able to take a stance on the then-extant politics and contribute to political causes.
  • How do you update the core logic? Again, the chain of trust will help. The agent could fork(), with the new copy getting some money and trying out some other “highly rated” code fragments for financial planning from other asats, etc. Asymptotically, this line of thought points towards DNAesque evolution.
  • The asat never tires, never wants to die, doesn’t waste money on vacations or health care. Asats may be among the richest people in a century or so and society may be dominated by “dead hands” (this, of course, may already be true).
  • The asat can have a presence in Second Life or other online virtual worlds. A soup of ELIZA, voice recordings, text to speech, some seed data would make for a really creepy experience. People generate massive quantities of content – photos, email, videos, which can be mined to provide some idea of their behaviour.
  • You can run one, or two or twenty such agents. You can start running them right away (“living trust”), with yourself as the human trustee responsible for guaranteeing their good behaviour.
  • Extra-legal agents using anonymous funding can be created to run in some offshore data haven. They can do a lot of mischief, like sponsoring terrorist activities, verifying their occurence via news events, then paying off the perpetrator…
  • Collaboration between asats. You might help out asats of your “friends” (computed through the chain of trust), descendants, peers who are in danger of extinction due to some imprudent investments. Or collaborate on filtering events, financing ventures, etc.

Technology can empower millions of people to create asats, just as millions of them create avatars, Sims or tamagotchis today. Extending it to a solution which can function as a will will require you to grandfather in a company of solicitors which has a hundred-year track record, in addition to developing the framework, the language, the chain-of-trust, etc. This is the standard way for new insurance companies to acquire a veneer of respectable age and stability – they buy up the tailor whose great-great-grandfather made chaddis for Mangal Pandey and proudly claim “Covering your assets since 1857”.

Go ahead, play God. Program for eternity!

The Game

The name of The Game is… Consumer Services.
The object of The Game is… a revenue stream of Rs. 1 crore (~ $250,000) per year.

All you need to do is find something which

  1. 40 people pay 250,000 per year (forget it)
  2. 400 people pay 25,000 per year (schools, daycares, tuitions, vocational education)
  3. 850 people pay 12,000 per year (the psychological 1,000 per month mark, telecom, internet)
  4. 4000 people pay 2,500 per year (250 per month. Almost lost in the noise.)

A good place to play is somewhere between 3 and 4.

Now I’ll make the game simpler, to avoid the “oh-we-don’t-know-what-customers-want” song. You now have a large enough peer group of IT professionals who think sufficiently like you, so you should not have problems empathizing with their needs. They constitute a big enough TAM (total addressable market, as we business gurus call it) to easily hit 3 and 4, even if you restrict yourself to one city, even to just 2-3 companies! IT folks also have sufficient money sloshing around in their pockets and are more willing to spend.

Here is one example.

The gas stove cleaning scam: Clean-cut chap comes to your house and says, you sign up for this service, pay this small amount in advance and we’ll come clean your gas stove every month. You pay up and get a yellow cleaning schedule card. You never see the guy again. Although it’s a scam, it has some points of interest which can be usefully emulated.

  1. It picks an activity which you know you should be doing, but don’t (and therefore have some guilt)
  2. It appeals to your laziness by coming to your house, doing a “professional” job and charging a modest fee which you don’t mind. No action is required on your part.
  3. Even if something goes wrong, you don’t get very upset because the amount involved is not large.

And here is a more realistic example.

Door-step backup: You go to people’s houses once in a quarter. Backup their entire machine (for bare metal restore) or part of it (user-generated data, photos, home videos, etc). See how it maps to the gas-stove principles:

  1. Nobody ever backs up of their home machines, but it’s always at the back of their minds and they always feel guilty about not doing it. Regular backup requires discipline and few folks are organized enough to do it. Like insurance salesmen, it’s easy to give a stern lecture about your responsibilities for backing up your priceless photos, “If… God forbid… some virus wiped your disk…” etc.
  2. Appeal to laziness. Someone comes to your house to do it. You don’t even need to install software or visit a website. This is particularly appealing to the Mom-and-Pop demographic.
  3. The charges are small enough that people won’t get very upset when they realize that you only promised backup and nothing about restore 🙂

Some optional extras:

  1. Privacy option: Give the customer a shiny key and assure them that without the key, nothing can be read from their backups and he is hereby charged with keeping the key safe. Gives him a feeling of responsibility and control.
  2. Online archival, incremental backup/restore option with Amazon S3. See http://www.jungledisk.com/ and http://www.codinghorror.com/blog/archives/000808.html
  3. Physical copy of his backup, in DVDs.

Other details

  1. You could partner with someone who already has the “last mile” connectivity i.e. someone who has the infrastructure to go to people’s places, collect bills, with basic computer skills, etc. One example is a local ISP. Your value add is to come up with a simple, fool-proof (well, as much as possible) backup architecture and the software to implement it.
  2. Graceful exit possible – just give everyone their backup copies in physical form, say ta-ta.

FAQ

  1. Why services? I have this brilliant product idea…
    • Product ideas are difficult to germinate, very risky (especially financial, unless you can con a VC) Services are lower risk. That’s why most of Indian IT is in Services.
    • The idea is, in fact, not to do product innovation, but to integrate well-known, well-understood pieces of technology and create a workflow which can be run and managed with relatively low-cost manpower.
    • Subscription-based services, if done even half-decently, tend to be very sticky, again because of the laziness factor. People are too lazy to even cancel unless you provide some serious negative value. This results in a much more assured and steady revenue stream.
    • Once you’ve built critical mass, you can just float without having to continuously search for new customers, because every customer gives periodic and continuous revenue.
  2. This is a very different ball game, need to recruit a different set of people…
    • Hiring is actually easier for such services. You don’t need the high-skill, expensive, flighty talent which is required for product development.
    • Or simply build the infrastructure for the service, partner with someone who already has the ability to deliver the service to the last mile.
  3. Why not a web-only service?
    • Sure. The main appeal of a web-only approach is the elimination of the physical last-mile connectivity requirement. Bookeazy is an excellent local example. But there are many services which, by their nature, need last-mile connectivity. Also, certain web-only services may have too low a barrier to entry, making it difficult to distinguish yourself from the herd.

The Baseball Development Methodology

Management and software engineering are still dark arts. Anything which happens to work is instantly picked up and turned into a cargo cult, spawning a flash ecosystem of consultants, training programs and seminars for the fad diet du jour. I will tell you how one of these got started.

In the late ’90s, managers all over America realized that most of their workforce consisted of slackers, with a couple of nerds called Dexter who actually got the job done. Now you don’t want to be a Vice President and confess at a board meeting that your empire, responsible for the company’s flagship product, consists of two guys called Dexter. You’ve got to have slackers to pad the numbers. With the flattening world, it made a ton of sense to outsource the slacking to India, where it could be done much more cost effectively.

This was a windfall for Indian companies like Baba Soaps & Outsourced Services (motto: “Trespassers will be recruited”). BS&OS was press-ganging far more people than could be absorbed in existing projects. The rough wooden benches lining the corridors to hold surplus personnel were perpetually overflowing. Benchies would hover around those fortunate enough to bask in the green glow of a terminal, solicitously ply them with beverages and wait for nature to come calling. Clearly, such a situation could not last. After a few episodes of the type which mortified Tycho Brahe, a new social order spontaneously emerged from the chaos. Groups of two formed, with each guarding access to the precious green light while the other did his business.

A visiting client from a US was intrigued by this phenomenon. “Why are they sitting in pairs? Don’t you have enough computers?” For an instant, his Indian chaperon thought of telling the truth – that computers were far more expensive than people. Despite Moore’s law, Indian family planning values (“The Moore the merrier”) still had the edge. He dismissed this moment of weakness and launched into an impressive spiel which was to make history. Well, a little bit, anyway. “Oh, that? We call it Pair Programming…”

And so the long day wore on… “How come you’re charging us for 10 QA engineers? We haven’t even finished the design yet!” Caught at overbilling, the Indian remained unfazed. He drew himself up to his full height and put on his best philosophical, idealistic expression. “How would you define a working product? One that passes the test suite, right? Therefore, creating the test suite defines the product, wouldn’t you say? Much better than a design document which nobody bothers to update anyway…”

The American had the last laugh, though. He took down notes, gave it a “cool” name – Xtreme Programming – and got rich.

There has never been a better time for starting another of these schemes. Managers in Big Companies have already experimented with all the management cults that exist, reorganized again and again, by product, by feature, by release, matrixed models, agile matrix models, with little visible success. They are looking for something, anything, which they can use to showcase as an example of strong leadership, being a change agent, and generally treading water for a couple of years until they get promoted to a different role or a different job, jettisoning their old responsibility like a spent booster stage and watching safely as it slowly falls back to earth. While they head onward to the fabled Moon, towards Cheese Everlasting.

You, too, can come up with a brand new development methodology and become a rockstar consultant, putting thousands of programmers in mortal peril. Just follow these simple steps:

  1. What goes ’round comes ’round. Pick something which was popular before the current incumbent. Agile’s ad-hocism was a reaction to the suffocating bureaucracy of Waterfall, which in turn was a reaction to Utter Chaos. So you’d do well to base your new development methodology on Waterfall, as a reaction to Agile.
  2. Insult the incumbent. Notice how Agile vendor presentations use words like nimble, quick, innovative to describe their own brand of poison, while dismissing older methods with words like regimented, slow, silo-driven, etc. Draw adoption curves showing where you are positioned. One Agile presentation I’ve seen even had helpful pictures of dinosaurs near the Waterfall (“obsolete”) end of the curve, and lightning bolts at the Agile (“leading edge”) end so that even your manager would get the hint.
  3. Make a Web Thingy. Web 2.0 thingies are all the rage now. There are Scrum tools which are so basic that they won’t even let you track dependencies, but you’ve got to buy and use them because they’re all Agile and Web 2.0 and stuff. You’d do well to draw on the reservoir of black hatred enjoyed by Microsoft Project and come up with a simplified Web Waterfall Thingy.
  4. Last and most important, Use a sports metaphor. Even the few sensible American men who are lukewarm about sports have to pretend to be rabid fans, on pain of having their testosterone levels becoming a matter of public debate. So you simply can’t go wrong using sporty terms to re-label all the concepts you’re ripping off. This will give the illusion that you have invented something new, confuse your detractors, force them to use your terms and make their arguments sound silly, while providing your supporters with a ready fund of sports catchphrases and anecdotes to distract the audience. Thus, Agile calls a meeting a scrum, a project manager is a scrum master, you have sprints.

Agile has already taken Rugby, so we’ll have to find another sport. Preferably American, since they’re still the largest market for this kind of mumbo jumbo. Baseball admirably fits the bill. It’s a team sport with an extensive jargon of its own, which can be mapped to software development terms. For instance, if you are going to create a Waterfall-like methodology, try this:

  1. First Base. Initial investigations, Project overview, Requirements Analysis. Generally get a feel for the issues at hand.
  2. Second Base. Detailed analysis of various features, flesh out one or two prominent features.
  3. Third Base. Rapid Prototyping, Simulation.
  4. Fourth Base. Frenzy of Development, Quality Assurance, finally culminating at RTF (Release to Fulfilment).

I’m sure you can find your own creative uses for other baseball terms. Like inning to replace sprint. Remember, no matter how crazy it sounds, no matter how many silly gimmicks you add (make everyone wear coloured baseball caps), it will find adherents. Even the most ridiculous religions and open source projects find devotees, much to the surprise of their founders.

Go hit a homer!

Music for Managers

Aimlessly sauntering down the aisle at Landmark, my eye was arrested by a peculiar audio CD title – “MUSIC THERAPY for Irritable Bowel Syndrome & Peptic Ulcers”. I was impressed. Therapeutic properties have, of course, been imputed to music for centuries. But I always thought it was a more generic, mood-uplifting effect which would contribute to a better and more optimistic frame of mind, leading to quicker healing. What I did not expect was a specific prescription, like, Take two aspirin and the Blue Danube after breakfast…

I thumbed through the stack, wondering what other dread diseases had fallen victim to the power of music. Let me see – “Music Therapy for Thyroid Disorders”, “Music Therapy for High Blood Pressure and Atherosclerosis”, “Music Therapy for Managers”, “Music Therapy for Arthritis”…

I grinned. Being a member of the Manager species myself, I was rather pleased at being categorized with top quality chronic diseases, rather than your minor annoyances like The Sniffles. On an impulse, I compared the track list for Irritable Bowel Syndrome and the one for Managers. They were identical.

Well. No surprises here. You always knew your manager was full of it.

Hello world!

Welcome to WordPress.com. This is your first post. Edit or delete it and start blogging! This is a test. This is a test. If this was a real blog post, there would have been some unfunny joke or pointless finger-pointing to another blog.