Dec 15, 2014

Did you answer the question I asked?

The last cartoon told the story of a meeting that was trying to deal with a broken schedule but the real story is about broken communication. People hear what they expect to hear. If I ask you a question and you give me an answer that sounds reasonable, I am likely to believe that 1) you understood the question I asked and, 2) you answered the question I asked. That is rarely the case, it is never the case when people are scared. The complete story goes more like this:

I was hired at a company to help them develop a new product line that required a high speed long distance data network. I had been working doing network services research for what was then known as SBC, now known as AT&T, for the last five years and was very much the right guy for the job. (Not to mention that working for the phone company made me so depressed that I had gone to a shrink for help. It was either drugs or leave SBC. I left after I found out that most of the people I worked with were on anti-depressant drugs. Working for a soul sucking evil company is bad for your health.)

After I had been working there for only three or four days I was asked to sit in on a meeting about a project that was running about three months late and that didn't look like it was going to finish any time soon. The project as planned was to take one year. They were now 15 months into the project and were starting to panic.

This was a typical "come to Jesus" meeting where the company president was asking everyone to pledge their lives to the completion of the project. They were told that the future of the company depended on the prompt completion of the project.  (In other words they were told that they either had to complete the project soon or find another job.)

After the attempt to scare his employees to death the president went around the room and asked each person to give him a completion date for their part of the project. He spent a lot of time doing this. He made them swear to the dates. Then he turned on one poor engineer who had been working for more than a year trying to solve a critical technical problem. The problem had to be solved to get the performance they were planning for. Failling to solve the problem would make the system run 50% slower. Worse than that, failing to solve the problem might mean that the process could never be made faster. That was not acceptable. They had to make it faster.

The mistake of making one highly competent person responsible for the most critical part of a project is more serious than it sounds. It puts tremendous pressure on that person. If they fail, the whole project fails. The stress can ruin a great engineer. Everyone needs to have the support of a team and feel that they can always ask for help and get help if they need it. Even the most hard core lone wolf (like me when I was younger) needs to know they can go to management and ask for help without getting put down or beat down. The worse thing that management can do is to say something like "YOU! need help? Gee, I guess you aren't as good as we thought you were." You might as well just carve their heart out and leave them dead on the side of the road. Of course, it does give the manager a perfect scape goat when the project fails.

At the end of the meeting the president turned to me and explained "I know you are not part of this project, but I want your opinion of the new schedule". "Oh shit", I thought. This is the time to either lie or lose any chance I had of making friends here. I decided to tell the truth because I wanted to work there a long time. Better to be truthful with management than to make friends. (I wound up leaving after only nine months, just ahead of the lay off that got everyone over 40.) 

The situation in the meeting was particularly touchy because I was in my late 40s and most of the people in the room were in their late 20s and early 30s. They all had graduate degrees. They had been out of school for only a few years. Most of them had degrees from schools I couldn't even dream of going to. Almost all of them were from rich families, I was not. I was 15 years older than the president of the company. The age and social class structure of the group was out of whack. That all matters more than you might think.

The project was months over due and the engineers had just committed to finishing it in four months. I was being asked to tell them if this would happen or not. I said, "no one asked any questions about how long it was going to take to test the system and integrate it into the production environment". The president looked at me oddly and so did everyone else. I went on to the president "You were asking when the system would be in production and generating revenue. But, the engineers were talking about when development would be complete". You see folks, the question they heard was "When will you be done?" but the president was asking "When will is start making money?".  The engineers all agreed with me. They were telling the president when development would be complete, not when the system would go into production. 

I went on, "Also, there is no plan for what to do if the performance problem is not solved. You need to have a plan in place in case the problem is not solved. How do you know when to punt and go with the lower performance?" The engineer responsible for solving the problem looked damned angry at that point. Tight lips, white edges around the mouth and eyes. I said to her "I am not saying you can not solve the problem. I am saying that it might not get solved in time for this system." That calmed her down a bit.The real problem was that management had never considered any of the risks involved in the project. They planned for the best possible case and never even considered what to do it something went wrong.

I went on to tell the group that I expected at least a month, mostly likely two months, of testing and performance tuning, and at least a month for integration into the production system. I went on to say that I thought it was likely to take three months after the end of development to get the system into production. All the engineers slowly nodded "yes" the president looked like he was about to blow a vein.

It took three months to get the system into production after the end of development.

I talked to the president privately. He thought they had all been lying to him. I tried to explain that they had been perfectly truthful, but they were not hearing the question he was asking. They were hearing the question they thought he was asking. And, they answered that question with perfect honesty. The president could not accept that idea. He lost trust in his development staff.

How come I could spot the problems in the meeting? I spent four years working at the help desk at my university as an undergraduate where I got a lot of experience figuring out what people were actually saying. After school various corporations put me through listening training, requirements gathering training, and interviewing training. I have been a manager and an engineers and seen the same problem in meetings I've been in before. I have seen the problem from both sides and saw the terrible results. You can sum it up as "been trained, been there, done that, have the scars to prove it".

Dec 12, 2014

I've never been a cartoon before!

Seems like some people think my writing is actually interesting. The folks at decided to make a cartoon based on me, yours truly, the grumpy programmer. You can see the whole article or just look at the pictures right here.

Talk about how to inflate my already inflated ego!

Dec 10, 2014

Why is the Next Big Thing always Ancient History?

Recently I've been seeing a lot of hype about the Internet of Things (IoT). It is clearly the next big thing. A brand new idea that is going to change all our lives for the better. No doubt it will. I've been talking about the day when the refrigerator will track its contents and the age of everything in it for so long I can't even mention the idea to my wife without getting an eye roll and a glazed look. I think she got bored with the idea sometime in the '70s.... But, really wouldn't it be great if the refrigerator and the pantry would keep track of what was in them and generate shopping lists for me? How about being able to suggest a nice dinner menu using only stuff on hand? I'm still looking forward to that!

But, IoT is the
next big thing, how could anyone have been talking about it for 30+ years? Well, it was kind of obvious that something like this would happen. After all, have you seen a picture of a robotic manufacturing plant? Do you think those robots aren't on a network? Networked "things" go back to the early days before Ethernet and Internet technology. Take a look at the history of the Internet Coffee Pot from 1991. No, that is not from before Ethernet, or Internet, but it gets the idea across. The idea of smart things has been floating around for at least 30 years, and really for a lot longer than that.

Are printers smart things? They have been networked since at least the early '80s.

Take the case of Google Goggles (Yes, I know the are called Google Glasses, but seriously... Try saying "Google Goggles" ten times fast. If you don't end up saying "goo goo" or "goo gah" you are a better man than I. Better yet, try that while doing your best imitation of a goose. Not suitable for work!) OK, clearly Google Goggles are another candidate for next big thing. Turns out that its ancestors go all the way back to Ivan Sutherland's head mounted display (Google for pictures) from 1968. The idea behind Google Goggles is at least 50 years old. 

The examples of old ideas that became the next big thing go on and on. Remember how big and important SVG (Scaled Vector Graphics) was back around the turn of the century? They were the coolest thing since 7-Eleven started selling Ripple the refrigerator case. My boss at the time, a brilliant Electrical Engineer, who was for some reason working on designing software. (EE design skills do not always transfer well to software, a function call is not a cable even if they both transfer data. Software skills do not transfer to electronics well either; Is a picofarad a real thing? Really?) Well, she was excited about SVG. She had read all about if and had been told by many people that it was the coming thing and we, for some reason I never heard, had to be on top of it. She came into my cube and told me to research SVG in depth. I asked, what do you want to know and why is it such a big deal? I told her that once the tool set settled down it was something that only artists were going to have to worry about. She not only didn't believe me. She got pretty angry.

After she settled down I made the mistake of saying that SVG is not new and it is no big deal. It was the kind of graphics I did as an undergrad and had coded up several times for different projects. SVG is nothing but 2D computer graphics with a 3x3 matrix and shading all wrapped up in a standard file format. No Big Whoop! I implemented all of that, including elliptical and spline curves on a 68000 in assembly language back in '85. It was old hat, undergraduate level stuff in the early '70s. Again, the next big thing was more than 30 years old. She was totally befuddled by my reaction. But, then one of the reasons I was hired was because of my experience in computer graphics. (Algorithms, not tools.)

How does some ancient idea or technology become the next big thing? Why does this happen again and again and again?

It happens to me because I am old enough to remember, curious enough to read, have a weird memory, and an over active imagination. Seriously, I am not normal. The thing is that this stuff is
new to most people. When someone tells you something is new, and it is new to you, why shouldn't you believe them? The obvious answer is that people pushing the next big thing are trying to get rich and will lie like a rug to get there. Been there, almost done that. Another reason is that enthusiasm is infectious. It is just fun to jump on something that seems new and exciting. But, mostly the media have little to write about so they all jump on the same new idea and hype it.

No... that is not what I mean by why does this happen. I mean, why is it that something that was dreamed up, developed, and used 50 years ago can be the Next Big Thing

The answer can be summed up, but not explained, by a quotation from Robert A. Heinlein in the book "The Door into Summer":

When railroading time comes you can railroad—but not before.”

Read the book, it is a good read. I have had several cats that actually looked for the door into summer, or dry weather, but I've never had to follow the cat to more than three doors. As sagacious as the quotation is, it is not an explanation of the effect. What the quotation is saying is that no matter when the idea was first thought up you do not get to build railroads, or anything else, until several problems are solved. Some of the problems are listed below.
  • The Technology has to exist. If you do not know how to make steel and steam engines you do not build steam engines that run on steel rails. If you can't build a wireless network you do not build wi-fi enabled coffee pots.
  • It has to be Cheap enough. You have to be able to make a profit off of your new product even when competing with existing products. Smart coffee pots have to compete with dumb coffee pots. Railroads had to compete with wagons and roads.
    My first Ethernet card cost more that $100 and I put it into a computer that cost over $1000. To build and Internet enabled coffee pot the cost of a wi-fi port + processor + RAM had to drop down to just a few dollars. Very few people will pay over a thousnad dollars for a smart Mr. Coffee.
  • It has to be Usable. If there were not already millions of network enabled smart phones in the world a network enabled coffee pot would be pretty useless. The IoT people have it easy. The user interface device is already ubiquitous and well understood by potential customers. The networks needed to make them possible already exist. The railroads had to build their user interface, the train stations. Their whole network, the railroads. As well as the telegraph network needed to schedule them.
  • It has to be Legal. It seems like the reasonable thing to do when you have a great idea is to patent it. You can license the patent and make a lot of money. Or, not. Most patents are over valued by their owners. The problem is that once something is patented you either have to pay to use it or wait twenty years for the patent to expire.That twenty year wait is a major brake on the rate of progress.
    The other legal problem is the existence of actual laws that make it illegal to do what you want to do. Look at the problem Uber is having with local taxi regulations. Not to mention new laws banning them because of the alleged actions of some of their drivers.
  • It has to pass the Giggle test. Some ideas just seem silly to people. A product idea cannot succeed if people think it is just plain stupid or impossible. If there had been no Star Trek we still might not have cell phones. To be acceptable an idea has to be acceptable in science fiction. If it can't be accepted in sci-fi it will not be accepted by the public. 
  • There must be a Demand for the product. It doesn't matter if your product meets all the other requirements people have to want what you are selling. As my MBA ex-brother-in-law once told me "Toilet paper is the Perfect Product." Everyone one wants it and better yet, they only use it once. People knew they wanted toilet paper as soon as they saw it, but we went thousands of years without it.
So, to build a new product you need technology that is cheap enough, usable, legal, in demand, and passes the giggle test.

Think about Google Goggles versus Ivan Sutherland's head mounted display. In the late '60s the HMD was at the hairy edge of what was technologically possible. The displays used video tubes. The joke was that it was a great idea as long as you don't mind having 20,000 volts across your temples. The displays in Google Goggles were not even science fiction in 1968. Comparing the computer in Google Goggles with the computer used by the heads up display is, well impossible. Moore's law says that our ability to put transistors on a chip has increased by more than a million fold since the heads up display was built. Head position was determined using a huge mechanical gizmo call the Sword of Damocles. In Google Goggles head position is tracked using micro machine accelerometers and gyros. Technology that wasn't even possible in the middle sixties. The fact is that while Ivan Sutherland's head mounted display demonstrated the wonderful potential of something like Google Goggles, at the time it was built it did not, and could not, meet any of the requirements to be widely used. It wasn't time to railroad yet. Now it is, we can build Google Goggles. 

I actually saw Ivan's HMD. I went to the University of Utah for both undergraduate and graduate school. One day I was sent to get something out of a storage room. Way in the back of the room was this weird looking pile of equipment. It looked like a prop from a '50s era science fiction movie. I got what I was sent for and then asked around to find out what that pile of stuff was. Someone recognized it and told me about it. We went back to the storage room and he explained the whole thing. Later I was able to see videos of the thing being used. It made me really think. I think too much progress is blocked by a failure of imagination. Sutherland has a lot of imagination and the ability to make it real.

SVG was a very different situation. All the technology for SVG has existed since at least sometime in the '60s. The concepts and techniques behind SVG were well known, widely taught, and used all over the world. But, it was known, taught, and used by a tiny number of people. There was no demand for an SVG standard until computer graphic technology became cheap enough for a large number of people to be using it. There was no demand until there was a need to transmit art over a network. There was no demand until there was a need to dynamically scale art for many different types and sizes of displays. Once all those factors  came into play it seemed like SVG popped up almost overnight. It had been lurking in the background and suddenly became visible to the whole world when the need for it emerged. SVG seemed like a new thing, but to old computer graphics hands it was nothing to get excited about.

The effect of the law on the next big thing is unappreciated by most techies. We tend to look only at the technology and not at the legal environment that lets us, or stops us, from building a service. I did a quick check on the web for the history of the Internet. I found lots of pages that talked about the history of the technology. One even mentions Sputnik and the cold war as driving forces behind the Internet. But, not one of them mentioned the nearly 100 years of legal theory, law making, and litigation, that created the legal environment that let people own modems, connect those modems to the telephone network, and then connect to the Internet without having to pay per minute to use the phone line.

If the law did not force AT&T to charge a fixed monthly fee for local telephone calls then using the Internet over the phone lines would have cost hundreds of dollars per day. In most countries all phone calls were billed by the minute and that policy kept the Internet from reaching far outside of the US until that changed. If the law did not force AT&T to let you own your own telephone equipment, let you connect that equipment to their network, and use that equipment to connect to the Internet it would have been impossible for most people to afford to use the Internet. No consumer friendly laws, no Internet. And, believe me, the phone companies, all of them, hate the Internet because they cannot control it.

It wasn't that long ago that the law was not on our side. That changed and we got the Internet. The big telecoms are trying, successfully so far, to change the law back to favoring them. If you like the Internet, you need to take action to protect the laws that govern the Internet. Call you representative and demand that net neutrality stay the law of the land.

The key thing to remember about the Internet is that the technology was developed and in use by the government and the military for nearly 20 years before the law was changed to let you use that technology. The Internet was old hat for some of us long before it became the next big thing. if you really want to get into something interesting, try finding out about the Top Secret patent system. Scary stuff. Technologists, and people who depend on technology, that is all of us, need to understand and get involved with the law.