The Prescience Story

In 1986 I started developing a line of mathematical software. Initially, I was the technical lead and only programmer. Except for a small part of the code, I wrote almost all of these products in their original Macintosh incarnation, although over the years more than a half dozen other programmers have helped out in various capacities. We later came out with Windows, Linux and Solaris versions, and international versions in about a dozen languages. They earned a bunch of awards, at least as long as I was at the helm.

In 1987, Expressionist, an equation editor, was released into the newly nascent Desktop Publishing market on the Macintosh. Within one year, it was the leading product in its category, with a number of favorable reviews. By the start of 1988, the company, named Allan Bonadio Associates at the time, had stabilized to three whole people.

In 1989, we incorporated as Prescience Corporation and released the product Theorist. Theorist was a more general purpose math program. It had an equation editor on it, but that was only because it would have been inconceivable to do it any other way. The graphs were more interactive than anything else available on the market in its day, and possibly still today. And the software was actually designed to have a mathematical mentality; it actually worked the way a mathematical system worked. Contemporary math programs tended to be programming environments that did math, rather than math environments. A reviewer at the time remarked, "Theorist has the best user interface on any math program available anywhere. Indeed, perhaps the only good one." This was a Macintosh reviewer, he knew what he was talking about.


Our best year was 1990. I remember reading about the "Inc 500" in Inc Magazine, the 500 small companies with the hottest growth in the US. I went through the criteria, and we met all the requirements but one: we had to have five straight years of growth, and we'd only been around for four. Even with just those four years, we had enough growth total to barely make it onto the bottom of the list, high 400's or so. Unfortunately, the fifth year, our sales fell.

In fact, being the CEO, CTO and dictator was fun while the company was in an upswing, but we went on a downswing (coinciding with a recession, but there were lots of other causes). Our CFO was apparently trained to pacify upper management instead of actually doing his job, budgeting ahead, stuff like that. There's lots of problems that aren't a big deal at high altitides, but when you're flying low over the trees, the same mistakes become very expensive. We never went through bankrupcy, but did go on one round of layoffs. It was 1992, I had gotten sick of being the CEO, and wanted to confine myself to the technical end.

In 1993 I sold it to a competitor, who shall remain nameless, that made another math program, very powerful but with a command-line UI, and rather unintuitive as command-line UIs go anyway. I will call them The Company, and I will call their program The Flagship Product. I was to continue to work on Theorist and Expressionist. That was the idea, at least. Before the merger had even been signed, I'd begun work on a merged product, with the ease of use of Theorist and the power of The Flagship Product.

Management

There were many problems visible from the beginning. (Now that the employee roster has turned over a few times, I can tell what really happened.) For instance, I remember porting the The Flagship Product library to my system. Given that there were like ten times as many Flagship Product programmers as Theorist programmers, I thought, why can't they get one of them to do it? They already know the stuff. But, I didn't want to make waves so I went along. It wasn't too hard.

The Company management was called in to manage our office. It was a disaster, or at least, so I thought. The two carpetbagger people sent down were "secretly" having an affair, although everybody knew. I learned first hand how deluded people can get when they get involved with a coworker. One of my best programmers quit months before the contract was even signed. He could see it coming. One of my officers, who habitually worked long hours, was fired out of hand, escorted out the door, and they even changed the locks. Unfortunately they neglected to give me the new combination, and later that evening, I locked myself out. I was the only one there; nobody else to let me back in. I was so steamed, I started punching numbers randomly. The third combination I tried, the door popped open. Not only were they incompetent, they were stupid.

Finally, at my vehement insistence, the carpetbaggers were removed and sent back to The Company home office. A year later, they were removed from the company. The rumor was, there was an incident with one of them at a sales conference. This carpetbagger manager apparently drank too much and started making inappropriate comments about a certain attractive woman in the group (a customer, no less). To her face. And in front of everybody. One of his assistants tried to escort him safely back to his hotel room but got punched along the way. The hung-over manager was fired the next day. At least something went right.

The Company S & M

That's what the "Sales and Marketing" group called themselves, "S & M". I delicately tried to tell them that perhaps "M & S" would have been a better choice, but as usual they ignored me.

We quickly learned what kind of "cooperation" we were going to get from our new Company "brothers". We cooperatively did a trade show, where we had one end of the booth, for Theorist, and The Company had the other end, for the Flagship Product. When we were demoing for a customer, and the customer seemed more appropriate for The Flagship Product, we'd pass them to The Company's sales people. When the same thing happend at the The Company demo station, they still tried to ram The Flagship Product down their throats, even in totally inappropriate situations.

Theorist was more appropriate for the high school market, The Flagship Product was better for perhaps physical sciences graduate students and above, and the undergraduate market could be debated back and forth. Unless you were familiar with calculus, linear algebra, and programming, and the internals of symbolic algebra software, the manuals were going to be slow going. The academic writers of The Flagship Product basically wrote it for theirselves: research algebraic geometers, numerical analysts and symbolic algebra algorithm gurus. (Algebraic Geometry was a field I'd never heard of before: basically, using algebra to figure out geometrical issues in spaces with a zillion dimensions, so for instance you can't just draw it on paper. Yes, they hacked a lot on their algebra with software.)

The year that Theorist was sold, sales of the Flagship product went up by 40%. This was from ripped-off Theorist sales. Of course, the new CEO got the credit. When he failed to increase sales the same way the next year, they canned him. I looked at sales statistics, and sales never increased beyond single digits in the several years before, and the three years after, the Theorist merger.

It turned out that there were two factions within The Company: one faction liked my product and supported the combined program. The other faction saw it as a competitor to be fed into a meat grinder. Unfortunately, that second faction slowly took over. My customer lists went to the The Company sales department, where the commissioned salesmen sold them all The Flagship Product. After all, they earned about six or seven times the commission selling them The Flagship Product than Theorist, and how the program worked out for the customer was of no concern. For the Sales group, this was Theorist's fundamental problem.

There were some sales efforts going on for Theorist. (Expressionist, by the way, was totally ignored, even though one manager calculated that it was 40 times as profitable as any other product in the company.) One of the salespeople got a site license for Theorist for a large geographical area (>10M people, westernized and wealthy). A few months later, she was laid off, and it was pretty obvious that this was why. She should have sold them The Flagship Product.

Another time, I met a customer/salesman at a trade show who wanted to sell a site license to the entire high school system in France. We're talking, the whole country, fourth largest economy in the world. We already had a French translation ready to go. He knew people, he knew what was needed, we got along very well. I remember he wore a trenchcoat and had stories of how he worked in France.

Months later, there was an announcement throughout the company. Good News!! The French high school system had signed a site license for... The Flagship Product! They had quite blatantly stolen the sale I'd handed to the sales team, and did a bait-and-switch on a whole country. The Flagship Product had no tranlation into French or any other language, no plans for any translation, and ten years later still has none. Talk about pissing off the French.

I was actually an early adopter of Internationalization, that is, fixing your software so it can be translated into French or Japanese or whatever. In fact, those were the first two languages for Expressionist. I had my own translation system built-in, and it was very cool. On one of my visits to the Home Office, I brought a laptop (big deal, this is in the 1990's) to lunch at some area restaurant and demonstrated to everybody around the table just how easy it was. I took the English version, I prefixed all text with "Like, ", and called it "Californian". I figure it was better to make fun of my home state rather than theirs. All the menus and error messages and buttons said "Like, OK" or "Like, No Such File". The menu bar read:

Like, File     Like, Edit     Like, View...

The Flagship Product was far, far from being internationalized. One engineer who understood the issues commented to me that there was too much code that examined the text of error messages in the logic. This basically kills internationalization, because you have to translate the error messages into French or whatever, and then the logic gets broken. He also joked that before translating it into French, the error messages had to be translated into English!

But I digress. Back to sales.

Basically, anybody who called asking to buy software was sold The Flagship Product in almost all cases.

I remember one employee who complained to me, "That's not true. I'm right over the divider from some of the sales guys and I hear them on the phone. They sell Theorist... um... whenever a customer can't afford The Flagship Product". In other words, customers who came in the door asking for Theorist were automatically fed The Flagship Product. Only if the salesman was on the verge of losing a sale because the customer couldn't afford it would they try to save the sale by selling them Theorist.

When you have competition between two products, from two different companies, usually you can assume that the story out of each marketing department is going to be different; company A will be more sympathetic to product A, and the same for company B. Usually, this is rabidly irrational, and the sales people make grandiose, over-the-top statements about their product, and improbable condemnations of competing products. In general, the most optimistic story you're going to get about product X is from the marketing department for company X.

In this case, though, the entire marketing department for Theorist was telling you to buy The Flagship Product, as if Theorist was a competitor whose sales office had been hijacked by a competitor. There was nobody in The Company telling customers anything positive about Theorist, anywhere in the world, unless you fell into a narrow category. The damage to its market share was disasterous and irreparable, as was the damage to our spirits. After having my own company and being on the front line, in contact with lots of customers directly, I ended up behind layers of bureaucracy, and out of any contact with the real customers who still liked it.

Theorist Professional

It seemed obvious to a lot of people that the only thing of value in The Flagship Product was the the core Flagship Product math engine itself. (Everybody, except the The Flagship Product GUI programmers, of course.) And, frankly, my math engine was limited and underpowered, secondary to the user interface. The obvious product was to combine the best of both worlds. This is the project I tried to work on for four years. But it slowly dawned on me that there were all sorts of political issues. See elsewhere in this story about the political issues; they dwarf the technical issues.

Other developers had linked to The Flagship Engine, but they had always done it textually - the engine puts out text to your front-end, which you turn into an equation on the screen. Then you feed it the next command in text, as if your program is a human trying to use the software by keyboard. This was clumsy and slow, but several released products were doing it because it was the only option.

One of their programmers turned me on to the internal tree structure. I ended up with a copy of the source of The Engine, again, because those guys couldn't be bothered to port it to my compiler, so I did it myself. (In fact I did it three times, with three different versions, over the four years.)

The tree structure was simple and quite appropriate for what they were doing, and I quickly wrote code to translate between their equation trees and mine. The most critical issue was symbolic integration, and in just a few weeks I had Theorist doing really really complicated integrals by using The Engine in back. This was the year of the merger.

The goal was a product we called "Theorist Professional". I put in lots of features - you could call any Flagship function from Theorist, and you could do programming in Flagship and use the programs in Theorist. I remember spending one christmas vacation wiring up tons and tons of Flagship numerical functions so they could be used in Theorist.

As the years went by, it became increasingly obvious to me that it had political enemies. Eventually we gave the project a code name, a sort of pun, all about how The Company was inevitably going to cancel it. All the bea users were saying that it was spectacular. One of them said "Ship it."

I'd set up my own websites for development and beta testing, and communication with foreign translators. All three were kept on different ISPs, none of whom knew each other. I documented those and anything else I could think of on the internal Company website. This proved to be a mistake.

Getting anything to happen on the company website was like pulling teeth; they would destroy places on the site that people had bookmarked. In fact, there were URLs hardwired into the Theorist software, you know, "I want to Buy Theorist" commands and such, and the target URLs would all just disappear when they got someone new to do their website. Attempts to get them put back were pointless.

One of the late issues was, what price? Theorist at the time was $100, Flagship at like $700. In the company, Theorist had a negative taint, so some in Marketing said that Pro should be $300. I knew this was not going to solve the fundamental problem, that it was cheaper than Flagship. So I added features that, basically, added almost all of the functionality of the Flagship product directly into Theorist Professional. I tried to keep this secret from most of the company, as with other features. But then I could make the case, Hey, this product should be like $800, 700 plus 100, right? Maybe it should be more.

In the process I made a fool of the UI group by supplanting their work. Well, the political forces would have nothing of that. It was killed. And, the way for future reincarnations was sealed when Theorist left The Company, as the Flagship engine was unavailable.

The Company Engineering

The Flagship Product was a product of A Local College, in the same town. The original authors, professors and grad students, were major shareholders in The Company. Some of them stayed in academia, often moving to different universities. Others got jobs working for the The Company. In general, the internals of the engine were managed by a loose network that grew to several other universities. The programmers in The Company, though, were employees who showed up for work at the office.

It wasn't until I'd been with them for about a year that I was informed that they considered themselves the "user interface group" for The Flagship Product. I was aghast. Of the math programs on the market at the time, The Flagship Product was generally considered one of the poorer user interfaces. I never suspected that anybody would have the courage to claim responsibility.

At the Prescience office, we'd sit around, playing with The Flagship Product, and laughing at how bad the UI was. Of course it was a command-line program, like most other math programs of the time. But that's not all. You'd type commands into one window, and the answers would come out of another window, unlike any command line program anywhere. Often this answer window would be hidden behind the window you were typing into, a complete disaster - for instance, you'd type in "2 + 2" just to verify that it all worked, and you'd get no visible answer. They were shipping software like this and didn't think anything was wrong with it. Misunderstandings were the fault of the user, not the programmers. The program worked differently on different platforms; apparently there were totally independent GUI implementations for windows, macos and unix, and they had to be mostly rewritten for each major release. (The core engine, of course, behaved uniformly, even on different word-size or endian machines.)

The user interface was so frustrating that, at one university, students printed up teeshirts that read like "F-ck [Flagship]" where the hyphen and the brackets had different letters plugged in. Yes, they used the word, this was a college campus. Of course, the solution to this is 'more training', always what they say at bad-user-interface companies, where mistakes are always the fault of the user. Why, all our programmers can use Flagship just fine!!

As one employee put it, "The engineering group can do no wrong in this company". (That was the The Flagship Product programmers, including the GUI programmers.) As the months wore on, I could see that this was true. If sales went up, it was because the The Flagship Product programmers did a 'great job'. If sales went down, it was because the Marketing group was 'incompetent'. It's not surprising that the marketing department was a revolving door; never were they praised for anything. One time, they had zero people in it, as there was plenty of other high tech companies in town. And, about once a year, someone in marketing would make the ghastly mistake of trying to defend Theorist. "What a nice product! People love it! It sells itself! Why is everybody ignoring it?" Soon enough, each was whipped into shape, or fired.

I remember once, a guy in international sales came to me when I was working in the The Company office. "Can you tell me, will there be a French Macintosh version of the latest Theorist?" he said in his distinctive accent. "Yes, of course", I replied, quietly, so that we weren't overheard. "Every version, we're releasing in English, French and Portuguese, except the Portuguese really isn't..." He pressed me, "When will French be ready? The French distributor is getting impatient, and I need to tell him something." With a painful expression on my face, I replied, "It's ready now... I produced it and uploaded it to the server... oh... I guess five months ago." There was a pause of pursed lips, neither of us were surprised at the treatment my products were getting. He gave me two floppy disks, and I produced originals to send to France.

One story that I'd be told is that it "conflicted" with their existing product line. They gave me various examples to try to make the case that no company can compete against itself. Of course, every car manufacturer, computer manufacturer and appliance manufacturer sells slightly-similar products that directly compete and vaguely-related products that indirectly compete, so that argument was pretty bogus. In their flailing attempts to publish the software, Theorist was renamed to MathPlus and then to MathView. They actually paid money to buy the trademark of MathView. (Expressionist retained their same name because everyone ignored it.)

The engineering group, which included also QA, was supposed to test our software, and maintain the bug list. They never tested anything, and Pete and I would always discover horrid bugs after the software had shipped. If we were lucky, they'd send us a copy of the bug list once every six months. We had no access from outside the office. As such, we kept our own bug list among the Theorist programmers.

Towards the end, things got worse. One of the guys in QA started making up stories all about how I was keeping the Flagship source on a 'public server'. In fact it was always under password, and the site itself should have been unknown to the public - it was used only for the source. But, this one guy sent an email around all about how you google (back then of course it was altavista or yahoo) to look up 'bonadio', then do some digging, and "there's the Flagship sources, just one directory away". In fact, he had found one of my personal accounts that had no sources at all. But he used the information on my sites that he got off my project page, to convince people that I'd committed some kind of hideous sin of broadcasting Flagship sources to the world. (Of course Theorist sources were inconsequential. And, of course, an earlier version of Flagship included most of the sources anyway, so it was just a dumb thing to say.) At this point, I was getting close to leaving anyway. If these creeps wanted to believe those lies, let em.




The Liberation

As time went on, the Engineering group used the lack of Theorist sales as a bludgeon to chip away at its funding, and also as a political scold against the fallen people in the coalition who originally pushed for the merger.

I left the company in 1997 and took two months off in southeast asia. As I left, there was one guy left in the Theorist group, and he left while I was gone. Great guy, tech support, smart, really loved the product, but I don't blame him running out; I had to also. And it won another award during that time, which just pissed off the people in The Company more. The products were officially discontinued, sortof kindof, although the company gladly accepted new sales, which never entirely died off.

In the few years after I left, new versions of Windows, MacOS, Netscape and IE arrived, and bugs showed up that couldn't have been forseen. The Company was powerless to fix them, but they were also powerless to halt sales, as the software was still popular. Thirty programmers and none of them would dare to touch it, or had the competence to touch it. Meanwhile, the sales group saw customers downloading The Company-branded software from the The Company website that crashed immediately.

The abandoned users, distributors and content providers pressured The Company to fix the bugs, or to sell the remnants of the product line to someone who would.



Web Primitives in Cambridge MA. I've been working with them part time to get the ball rolling again. Watch their site at www.LiveMath.com.

The rest of this page is an advertising webpage I used at one point. There is a Netscape plugin version of the software that you can download directly from the site, and inject into Netscape or Internet Explorer, and actually try it out. For an up to date, current version, go visit www.LiveMath.com.


What is Theorist?

Theorist is a general purpose math program designed for graphical user interfaces. You type in equations, and they display realistically, not the way computers traditionally show them. Then, you can do algebra by simply clicking and dragging. Also, you can draw graphs of the equations. The graphs are interactive; you can use the mouse to zoom in or out, pan or rotate them.

Algebraically, Theorist is designed for carrying out long derivations, whereas most other similar programs are designed to do one thing at a time. You can add your own transformation rules that fire specifically or generally as you do algebra.

Numerically, equations can be hotwired together so that each variable is calculated based upon the values of others. Numerical pipelines can easily be set up to do involved calculations or graphics using real or complex numbers, vectors or matrices.

Theorist notebooks have a built in outliner so you can organize your work, or hide hotwired pipelines to keep them out of the way. In the comments, you can enter text or inactive equations in a variety of fonts, styles and colors.

The Theorist Plugin, the Netscape plugin version of Theorist, cannot do all of that; it is designed for viewing notebook files that have been already written.