Fed up with malicious comments and anti-Google flaming, the company's celebrated VP of engineering Adam Bosworth has more or less given up posting to his personal blog, but yesterday he made a small exception. The post links to an audio recording of his presentation at Salesforce.com's Dreamforce conference earlier this month, in which he talks about the notion of 'Intelligent Reaction' as one of the distinctive characteristics of on-demand providers such as Salesforce.com (and indeed Google).
I've transcribed a few passages here because it echoes several of the themes I've blogged over the past few weeks, such as customer focus and avoiding what I've called the 'command economy' model of conventional software development. The other factor he brings out is a commitment to an iterative approach that continually delivers features to users and tests their reactions before deciding whether to continue in a particular direction. This is one of the most distinctive characteristics of on-demand developers and product managers, he says:
"They are very intimately involved with operational data. They are trying things out. Rather than figuring out for two years what you might want, and then spending another two years building it, and then spending a year trying to figure out, maybe it'll work for you — or more likely just ignore you — they're trying it after two weeks and then watching with fascination to see how many people actually used it and [saying] 'Oh, good that one looks like it's working for people, let's do more of that' — or 'No, that one's not actually working. It seemed like a good idea, but no one wants it. Let's not do more of that.'
"... A model like that, where you watch, you try things out, you learn and you iterate, is a model that very quickly stays in touch with what you want."
This principle of delivering working software frequently is of course very similar to that put forward by the proponents of agile development. But on-demand vendors get an extra insight from operating the software in their own data centers, because they can monitor exactly how the applications are used in the field. This means the iterative development process effectively becomes never-ending (ie, you move from design time through runtime into a continuous state of what in my Loosely Coupled blog earlier this week I called change time). Rather than sitting in ivory towers designing applications that may or may not match users' needs, on-demand vendors therefore have to "run like mad" to keep pace with those needs as they continue to evolve, says Bosworth:
"... Software is not about intelligent design, it's about intelligent reaction. It's about figuring out what works for people — which will change over time, as costs go down, as mobile VoIP phones suddenly become pervasive — the things that we need to do for you will not be the same as the things we needed to do for you before a laptop was the standard operating piece of equipment for everybody, which was not the same as when you installed enormous disks that were 100k disks. You have to learn and you have to change with the times. You have to follow your customers in real-time."
Salesforce.com is successful, he concludes, in part because, "The company does not obsess about the grand plan. Because you know what? Like all grand plans, it doesn't survive the encounter with reality, and it is reality, not the grand plan, that matters."