How Hard Could it Be?: Glory Days
As Bill Gates retires, our columnist recalls what it was like to work for the world's most successful entrepreneur
Published July 2008
When I graduated from college, in 1991, I started working for Microsoft (NASDAQ:MSFT) on the Excel team. My title was program manager. I was supposed to come up with a new programming system so users could automate Excel. I sat down to write a spec, a huge document that grew to hundreds of detailed pages.
In those days at the company, we used to have these things called BillG reviews, at which Bill Gates personally went over every major new feature. At the time, he was already famous and on the cusp of being named the world's richest person. The day before my BillG review, I was told to send a copy of my spec to his office. It consumed almost a full ream of laser-printed paper.
Once the spec was printed and on its way, I picked at random one of the million little details of the spec that I still had to tackle: figuring out if Excel's internal date and time functions were compatible with BASIC, the programming language we were using on the project.
The next day -- June 30, 1992 -- we gathered in a conference room. In those days, Microsoft was a lot less bureaucratic. Instead of the 11 or 12 layers of management the company has today, I reported to Mike Conte, who reported to Chris Graham, who reported to Pete Higgins, who reported to Mike Maples, who reported to Bill. About six layers from top to bottom. We made fun of companies like General Motors, with their eight layers of management.
So the whole reporting hierarchy was there -- along with, it seemed, its cousins, sisters, and aunts. Someone from my team was there, too. His job was to keep track of how many times Bill said the F-word. The lower the F-count, the better.
Bill came in. I thought about how strange it was that he had two legs, two arms, one head, etc. -- almost exactly like a regular human being. And he had my spec in his hand.
He had my spec in his hand!
He exchanged witty banter that made no sense to me, with an executive I did not know. A few people laughed. Then Bill turned to me. I noticed that there were comments in the margins of my spec.
He had read the first page!
Not only that, he had read the first page and written little notes in the margins. Considering that we got him the spec only about 24 hours earlier, he must have looked at it the night before.
He began asking questions. I answered them. They started off pretty easy, but I can't for the life of me remember what they were, because he was flipping through the spec.
He was flipping through my spec! (Calm down; what are you, a teenager?) And there were notes in all the margins! On every page! He had read the Whole Darn Thing!
As the conversation went on, Bill's questions got harder and more detailed. And they seemed a little bit random. But I didn't care. By now I was used to thinking of Bill as my buddy -- a nice guy who had read my spec. In my head, I was already thinking of how I would address his comments, pronto.
Finally, the killer question. "I don't know, you guys," Bill said. "Is anyone really looking into all the details of how to do this? Like, all those date and time functions. Excel has so many date and time functions. Is BASIC going to have the same functions? Will they all work the same way?"
This was exactly the question I had spent the previous day investigating. And as I had discovered, there was a discrepancy. In both Excel and BASIC, each date was assigned a numeric code. The code for any day in 1992 that I looked up was the same in both. But when I looked up a date around the turn of the last century, Excel and BASIC were one digit apart. Huh?
When I went to find someone who might be able to help, I was directed to Ed Fries, a longtime Excel programmer famous for inventing those screen savers with the swimming fish. I hadn't had much contact with Ed, but I used to see him every Friday afternoon as he played miniature golf in the hallways outside my office.
"Check out February 28, 1900," he told me.
Its number in the Excel code was 59.
"Now try March 1."
Its number was 61.
"What happened to 60?" Ed asked.
"It's February 29!" I said proudly. "1900 was a leap year!"
"Nope," Ed said, and left me pondering the problem for a little while longer. I eventually figured out, with some more guidance from Ed, that a group of programmers at Lotus had skipped a day in 1900 because it created a mathematical shortcut for them, and they probably figured that nobody would care about a mistake buried in the software's internal calendar more than 90 years in the past. The people who made Excel hadn't cared at all and built the bug into the code that the spreadsheets ran on. But the people who had written the code for BASIC had apparently been offended by the shortcut, so they set the start of their internal calendar a day earlier. That way, it would accurately reflect the actual calendar, but the solution was also practical. Because BASIC started its count a day earlier, the number that BASIC assigned to March 1, 1900, was also 61, and from that point on its date and time functions were aligned with Excel's.



