Monday, 30 June 2008

Where Microsoft (and the software industry) is going (and why they won't like it when they get there) PART 3

Why is computer software so unintuitive? How many times will we be asked by our computer if something is OK when it is not at all OK? Why do I have to search for the memory stick I just put into the USB port. Why does my wireless connection tell me its busy trying to connect to somewhere useless when I am trying to tell it to go to the right place to connect?

Why does my pictures folder suddenly disappear? Why are their folders at all? Why is the model for a computer screen the desktop? How long have desktops been around? People got along for 100,000 years before there were desktops. Why is that the right idea? There were always people who wanted to talk to you, and things you needed to remember to do, and threats to be dealt with, and goals to be accomplished. Why isn’t that basic human agenda the paradigm for computers and not the desktop and the sharing of folders and files? The caveman didn’t have folders or files, but he sure had issues to deal with that are fundamentally the same ones that we deal with today.

Starting with the assumption that humans have basically the same mental apparatus today that they had thousands of years ago, let’s think about how the caveman might have designed a computer screen, since it is fairly obvious that today’s software designers are out of touch with how people actually think and operate on a daily basis.

Cave men didn’t use folders and they wouldn’t have known how to label them if they had lots of them. We can’t ever find where we put a file we need because files and labels didn’t exist for cave men. They do exist for software designers however. Why?

Programmers misunderstand the world in a profound way. They copy the metaphor of a desktop as if that metaphor was a basic human concept. Since desktops, paper, folders and such haven’t been around that long, the question is: what indexing scheme did cave men use? How could the caveman’s indexing scheme be harnessed to make our lives on a computer easier?

Does the mind have folders? It seems obvious that it does not. The mind must have some way of storing information that makes it easy to find. And, it is obvious that whatever means the mind has, was the same means that the mind of the cave man employed. Or, to put this another way, programmers would make easier to use software if they understood how the cave man’s mind stored information.

Do we have to dig up some petrified cave man brains to figure this out? Of course not, our own brains are the same. But examining our brains will not help. We are interested in the nature of information, as our ancestors saw it, not in the structure of meat.

Cave Men did not Point and Click

Neither did they drag and drop. This seems a silly point, but it isn’t. When a person approaches a sentient entity they expect that entity to have some goals of its own, and some knowledge of who they are and what the interaction is likely to be.

Computers are seen by their users as sentient, but somewhere along the way the user comes to the conclusion that stupid would be a better choice of adjectives. But, why are computers stupid? Simply put, there are three reasons.

1. Folders

Cave men don’t use folders. Computers do. People try to use folders but this means they need a filing system. Cave men had filing systems. Without them they would never find prior experiences to help them process current experiences and we know they would have had to be able to do just that in order to survive for tens of thousands of years. Those filing systems were not alphabetical, sorted by date, or sorted by size. How they worked and continue to work in modern man is a very important question.

2. The Lack of Expectation

Cave men had expectations about what would happen next. When these expectations failed, they tried to modify them so they would be smarter next time. One thing cave men expected was that those they interacted with also had expectations. They expected that others knew what they might want and it made interactions easier and faster.

Computers seem to have no idea who is using them. They don’t know that I am writing this, why I might be doing so, and what I might want to do next. Tomorrow, when I start again, the best the computer will be able to tell me was what I did most recently. This may have been reading e-mail or checking what was on TV at night, so this may not be very useful to me. Why doesn’t the computer know more about me? A cave man expects that it does.

3. The Missing Goal and Plan Structure

Of course it isn’t just me. People have clear goals and plans to achieve those goals, and they are, for the most part, well known types of plans and goals. Shouldn’t a computer have enough domain knowledge of the domains its owner works in to be helpful in knowing what to do next? Shouldn’t it know more about the user’s domain than the user does in most cases? Cave men knew about the available plans and goals in their world. Computers that cave men can easily use would know what there user was trying to accomplish, how he accomplished it the last time he tried and would suggest doing it that way again unless the user had a better idea.

In the era of the cave man, it is safe to assume, your average person didn’t know all that many people. So, conversation was personal. People didn’t seek help or advice from people they didn’t know. This matters because when people seek advice they usually imagine that the information they receive has somehow been tailored for them and their particular situation.

Socrates remarked that he was against books because they would say the same thing to everyone regardless who was reading them and without the possibility of interruption. He knew that the mind of the cave man needs information that is given with him in mind.

When you ask a stranger for directions, do they know how fast you walk, or how good your sight is, or what landmarks you know, or how hungry you are? All these factors would help someone give good advice. Instead we get generic advice. In the world of cave men there probably was not all that much generic advice, so we expect to get advice suitable for us, but it usually isn’t.

This is why travel agencies, and in particular, travel web sites, are so difficult to use. What do these agents know about you besides how much money you want to spend and where you say you want to go. You may not even know where you want to go. Perhaps you heard about a place on television or in a magazine that looked interesting. But, of course, that information was absorbed as if it were meant for you, because cave men think that way, despite the fact that the author doesn’t know you at all.

A Caveman Example

Andrew has a family sailing boat. His family has been using it since the kids were young. His son Paul want to use the boat now that he is 22 and an up and coming geopolitical analyst working at his first job at a major consulting firm. But Andrew does not see his son as a yacht owner since he doesn’t have the funds to maintain this hobby. He prefers to see him rent a yacht. So he lets his son use it if he can rent it and sustain the expenses. Paul has his first guests on board. He cooks a nice meal for the guests that evening and when he is finished he feels like he just finished running “desert storm”.

He ponders the problem and realizes that part of the problem was opening hatches and getting stuff out of storage including the second can of tomato paste, a water bottle and cooking wine out of the bilges via 2 different hatches. One choice is to plan everything and bring it to the kitchen ahead, in which case he is stepping over mustard jars while cooking and he has to ignore the guests in case he loses concentration and messes up dinner.

The second choice is a bigger boat.

The third choice is to get his sister to bring the stuff from the bilges, and possibly help in the cooking. For this he will have to replace the hired hand. This choice seems better since his sister has been sailing in the boat since she was 3 years old, she can assist in mooring, sailing, cooking etc, and she can fit in the crew quarters with Paul.

Now let’s transfer this plan to the world of software. To work in an intense space-restricted environment, Paul can try to plan every move and practice this for years to get it right, knowing exactly where everything is and having thought of all contingencies.

Or he can have an expert assistant.

If the choice isn’t obvious, add to this that Paul’s charter guests are the most important people in his life and they are very chatty. Does Paul want to be the perfectly organized yacht captain (which would require years of practice? Does he want to ignore the opportunities to take advantage of social/career opportunities while using the boat? Does he want to be thinking of cooking and boating contingencies all day? Wouldn’t it be better to hire his sister as an assistant who is also a yachting expert in this particular boat and cares about him accomplishing his goals?

Now imagine that the sister was actually a good piece of software. Software does not take up space or take vacations. A service oriented expert service would costs no more than trying to configure and learn how to use a software product that knew nothing about your boat, but was intended to do everything for everybody.

Or, to put this another way, cave men knew how to use expert assistants to help them in the hunt or in war. They knew better than to try to configure a general purpose newcomer to the tribe to go into battle.

Tuesday, 24 June 2008

Where Microsoft (and the software industry) is going (and why they won't like it when they get there) PART 2

Not so long ago I was hired to speak to, and consult with, a company whose name I will not mention but whose name is well known. They are a rather recent player in the software industry but one that has done very well by the standards of Wall Street. Its founder has become quite wealthy from the one size fits all strategy. So, when I criticize this strategy for software, be assured that I am well aware that many folks have become rich because of it.

Naturally Microsoft is one of this company’s main competitors. This alone tells you quite a bit about what this company sells. If Microsoft does it, then it is generic. In other words, this company sells a software platform that helps you manage a process that all companies have to manage. I am putting it this way because, that is my point. The big players in the software industry always sell software that any company could use in principle. This is the route to mega-bucks. It is also the route to lousy software.

This is the dichotomy: one size fits all versus serious work to get the software to know your world. It is easy to see who is winning and why. It is also easy to see that this state of affairs cannot continue.


Why this methodology has won is clear. It has been promoted by every player in the software business and by the financial backers of those companies. Google is also a one size fits all business. (You don’t notice them building special search engines for shipping now do you? Shipping search engines might return, for example, for searches on engine room, something other than the Engine Room Bar in Houston as its first choice.)

Why this methodology will lose is also clear. There comes a point where one size fits all software hits the wall. Let me explain.

Let’s suppose you were selling software for sales. What you put in it? My instinct and, the instinct of most people from the part of the software industry that I come from, would first ask the question: what do sales people need help in doing? In fact, I did build programs to help sales people do their jobs better on a number of occasions. Any reader of this would not be familiar with them. Why not? Because they came from the know your world philosophy of software development.

One of those programs helped people who sold ads for the Yellow Pages sell better. What did that software need to do? It needed to tell a salesperson who was about to call on a doctor how to talk to him and what previous experiences the company had had with respect to Yellow Page ads and doctors. And then it had to do the same with florists, and real estate companies, all of whom behave differently from one another. Real work went into that project.

Another program we built helped salesmen from a very big hardware company sell a consulting service they were having trouble selling by showing examples (and interviews) of people who were successful. The success stories were told just in time as a salesperson needed to hear them to counter objections they were hearing, all in a simulation.

To put this another way, these programs knew about sales.

But that is not the way to make mega-bucks in software. There is a small market for knowledge of how to sell Yellow Page ads. There is a much bigger market for managing sales and essentially replacing the secretary to the salesperson to keep appointments, record events, and help the sales manager track it all. So that is where the investment has been and that is where Microsoft and others compete.

But this state of affairs cannot continue.

Why not?

Because companies that sell platforms have reached a limit. Where is the content? The hope is that the content will be provided by others. These companies are moving towards selling platforms that allow others to provide the content. That is really what Facebook and MySpace are about. But the people on those platforms aren’t doing the serious work in content that I talked about in part 1 of this piece.

Serious work on getting serious content into the software will differentiate the winners from the losers going forward in the software industry.

You can’t just have a platform as a service. You need a brilliant platform to be your service. Knowing all about sales doesn’t just mean coordinating sales, it means helping you make more sales. This is the challenge for the next generation of software.

But that’s too hard isn’t it? Not only is it not too hard, it is what will be happening in the next generation of platforms as a service.

The wisdom of a sales organization isn't in its numbers. It's not in the names of its customers and prospects. Rather, it's in the experiences of its salespeople – the deals they've won and lost, the strategies they've employed, the clever things they've done, and the mistakes they've made. None of these things are currently captured in software companies buy to manage sales. To address the competition the salesman needs just in time information and seriously good performance support to keep the salesman from losing focus, and confidence.

And, this is true in shipping as well as every other industry. The software must change. Right now the model promulgated by the money people behind the software industry is the norm. It makes us think a platform will work for any purpose. This is just wrong.

Content will be king. By this I don’t mean movies or entertainment. I mean software that knows what you are doing and why and can help because it knows more about what you do every day than your secretary does.

Tuesday, 17 June 2008

Where Microsoft (and the software industry) is going (and why they won't like it when they get there) PART 1

There are two paradigms being offered in software:

a. The Microsoft/warehouse paradigm where there is a warehouse of applications and data for the user to configure and turn into something useful.

b. The service oriented approach where an assistant is configured to do something useful.

Microsoft has been offering software, for as long as there has been a Microsoft, that works for nearly everybody. They didn’t always build that software. Most of the time, in fact, Microsoft bought companies that had chosen to specialize in one thing (operating systems, word processing, presentations, spreadsheets, and so on.) Then, they figured the right way to make money on these products and the rest is history.

There is an implicit assumption of what it takes to make it in the software business, with this vision, if one can call a acquisition of specific software products a vision) of the what will work in the software industry as a business strategy. The implicit assumption is this: one size fits all. Or, in other words, all businesses are alike in their software needs. (The sad things is how many people now believe this nonsense.)

I was confronted with this one size fits all vision in the early 80’s when it was first coming into the software world. Until then, there were plenty of players who were inventing cool software. There were many word processing systems to choose from for example, and VisiCalc, Lotus and others applications were being developed by independent companies with a point of view about good and useful software. But, lurking ready to pounce, were the Venture Capitalists.

The VC’s had a point of view, one that made lots of sense to them given their general get rich quick attitude towards business. I worked in Artificial Intelligence (AI) at that time. (I was the Chairman of the Computer Science Department at Yale.) VCs were in and out of Yale in the early 80’s, looking for the next big thing.

AI was in their sights and they visited every AI lab in the world, trying to commercialize intelligent software. At that time, AI was dominated by Expert Systems, which were a set of rules meant to imitate the behavior of experts at finding oil, or medical diagnosis, or stock market analysis. There were some very nice expert systems that had been painstakingly built by AI experts in university labs. The VCs wanted to commercialize this process and so they began to finance the construction of various expert systems shells.

These shells were meant to be sold to companies who would then employ them to build their own expert systems for internal or external use. In other words, the idea was to take the AI people out of the AI process thus allowing for a one size fits all tool to be a commercial success. The problem is that the AI people were the key to AI. AI people were doing something that is quite difficult: they were interviewing and attempting to model the thinking of, real human experts. This was serious work.

But in the VC model, that serious work could be done by anyone in any company, as long as they had the right expert systems shell. I begged the VCs to consider a different model, but they wouldn’t. I ran a panel at the yearly AI conference hoping to energize the AI community to fight this trend, but there was money in everyone’s eyes. I predicted (accurately) the coming of AI winter, when AI would be a bad word and funding would dry up.

But really, the VCs were not to blame. Over time what has happened is that we have all come to believe in the idea that was really being sold to us by everyone involved in the software industry: software should be for everybody. This is another way of saying that it is the job of the user to customize software not the job of the software industry. (This idea is the bedrock upon which Microsoft was built.)

Every time someone tries to build some specific, knowledge-based software, they must compete with an army of Microsoft salespeople who claim that the generic software that Microsoft offers will work anywhere for anybody.

The expert system shells worked anywhere for anybody too, but in the hands of anybody, they didn’t do very much of interest and AI failed as an industry.

Ask yourself who is offering software to the shipping industry? What do they know about shipping? Would software for shipping be different if it were designed by shipping people? I bet software designed by shipping people wouldn’t have a box to push to press OK after telling you that there was a fire on board.

Eventually, an assistant will exist for every person on earth in every enterprise. This assistant will be developed and configured by the software service providers - thousands of them. Who develops the underlying platform is no longer the user’s problem it is the service provider’s problem.