Windows 95 and IE leader, Brad Silverberg, talks about the challenges facing Microsoft.
Do you have any philosophies of how to manage developers?
What works the best is to give the developers a vision of what you are trying to accomplish with the product, with the business, with the team. Get them inspired. Give them good leadership and a good framework for making decisions to get the product or business started. That way, as they confront decisions everyday, big and small, they know how to think about it. They don't have to argue from first principles every time an issue comes up. That framework then makes it easy to make decisions while fitting within the goals of the project and allows them a lot of freedom.
When you find a lot of discontent, it's usually a result of bad leadership-people don't believe in the team goals and don't believe if they do their work on their own they will get properly rewarded.
When it does work it's a beautiful thing, as we saw with Windows 95 and Internet Explorer. It's an amazing, beautiful thing when teams come together and accomplish something that people never thought was possible. I've had people come up to me on the street 10 years later, saying Windows 95 or IE 3 was the best project they ever worked on and something they were going to tell their grandkids about.
What kind of emphasis do you place on development processes as the projects get going?
They are obviously necessary. You have to have some structure so you have a way to make decisions, a way to measure progress and a way to define whether you are meeting objectives.
Even more what I like is to have people who understand the product and understand the customer, and are in touch with the technology, and who are then are imbued with the goals and objectives and the framework for decision making that we talked about. So they can make decisions on their own. It's amazing what happens when you take people and you trust them. They can show really good judgment because they are very close to the problem. They understand what we are trying to accomplish and what we're trying not to accomplish. The hardest decisions are not what to do: The hardest decisions are what not to do.
How did you handle the unexpected delays with Windows 95?
It was painful. There was no question it was painful. But we had a goal that we wanted to achieve and we were not going to cut it short. There was a lot of uncertainty involved.
Was it more difficult than you anticipated?
Almost everything about Windows was changing. We changed the UI. We changed the underlying infrastructure dramatically to a 32-bit architecture with the new VXD approach. We had extremely high goals for compatibility with existing hardware and software. There was a lot of difficult-to-be-compatible-with software out there that ended up creating a fair number of delays.
So issues external to the operating system caused most of the problems?
I wouldn't say that was the only problem. There were certain things internal with the operating system and being able to maintain compatibility. The world didn't stand still to allow us to have a static testing matrix. We'd think we [had] a handle on it and all of a sudden 2,000 more applications and 3,000 devices [would] come out that we [had] to be compatible with. It was a much more dynamic, growing world than it is today.
|"One of the most painful
meetings I ever had in my
entire life was going to Bill
before the last slip and
telling him we weren’t going
to make [the Windows 95
-- Brad Silverberg
Windows 95 and IE leader
Plus we added Plug and Play at that time, which was a new change to the operating system that was extraordinarily difficult to pull off. One of the most difficult challenges of Windows 95 was to get Plug and Play working. We had to go through at least two and perhaps three revisions before we finally had to change a couple leaders -- the guys in charge of Plug and Play -- until we finally had the right people on it to get it done.
It was a lot of detail, detail, detail that we had to work through and test and refine to make sure we didn't break something else. And it was a very high visibility project.
One of the most painful meetings I ever had in my entire life was going to Bill before the last slip and telling him we weren't going to make that date. I remember going in to Bill around Christmas of 1994 and saying, 'Bill, we are not going to make the current date. We are going to make the August date instead.'
Do you remember what he said?
He was actually quite understanding under the circumstances. I was a lot harder on myself than he was on me, to be honest. I remember an hour or two after having the meeting, I'm driving in my car and I hear on the radio, 'Windows 95 slips.' Ugh. That was a bad day. That was a real bad day.
But then, I think the product turned out quite well. And it was one of the most successful launches that Microsoft has ever had and perhaps the industry has had.
What could the Vista team learn from what was successful with the Windows 95 development process?
It's a completely different time and place so it's hard to compare to Windows 95. Windows 95 benefited from a perfect storm of good things happening all at the same time, with hardware advancing to a point, popular interest in computers and software, the Internet, graphical user interfaces. Everything came together perfectly in a way we could have never planned or orchestrated.
Vista and Longhorn really didn't have the luxury of that benefit. It's a much bigger installed base and people now take Windows for granted. And the size of the team was at least 10 times larger than the Windows 95 team. There are certain things that happen -- there're laws of large organizations that happen, once you deal with an organization 10 times the size. Windows 95 was only about 350 people, and Vista/Longhorn, I am sure, is more than 3,500.
Everything changes, which makes it even more important to have a clear sense of purpose. I don't know if Vista had that. They tried to be overly ambitious, to an outsider. Sometimes, when you are on the inside, you are blinded to the obvious. But to an outsider, when I heard what they were planning on doing for Longhorn, I said, 'that is never going to work.'
What things specifically?
Well, it was Cairo all over again. It failed for the same reason Cairo failed.
I am a believer in incremental development. Get the biggest risk things out of the way first and then just continually develop on it; get something done and then build on it. Get the next thing and build on it, get the next thing and build on it. Instead of a big bang. It never works. I worked on a big bang earlier in my career called the Lisa at Apple. It was a big bang-it failed in spectacular fashion.
It went big bang, but the big bang was in your face.
For Windows 95 -- for the team internally -- we had something called the ten commandments: Ten principles underlying Windows 95, which in the end we ended up boiling down to four. Those were the principles that guided the entire team. Whenever we had decisions as to what features would go into the product or not, we would measure it against one of these Ten Commandments. If it [didn't] fit, it [wasn't] in, no matter what. People need to know concretely what are you trying to accomplish with the product and what you are not trying to accomplish.
What were the four commandments?
I was afraid you were going to ask that. I'm trying to see if I can recall what they were. David Cole had them tattooed on his arm. One was a 32-bit multitasking operating system. Integrated networking. Compatible with mainstream hardware and applications. Easy to use.
Easy to use. Probably speed and performance were in there in the top five or six, too.
Performance was part of being able to run well on existing mainstream hardware and software. The original commandments were a little more granular, but they got clumped into those four.
What Windows 95 breakthroughs remain relevant today?
It was such a quantum leap forward because we were driven by a tight sense of what we wanted to accomplish. No more, no less. We didn't try to boil the ocean. We just tried to solve a concrete set of problems we knew we could do in a timely manner and deliver to a very hungry and willing customer base.
That is the philosophy of how to build software and the philosophy of tapping into customer motion-giving them something they can get excited about. Those are the enduring lessons of Windows 95. It was a tight team, who worked extremely well together, that had a clear sense of what we were trying to deliver. We were on a mission: We were a team on a mission.
Truth be told, the killer app of Windows 95 was the browser. With Windows 95 you could now run a browser on a Windows machine. That was really a killer app. The browser, all the underlying support in Windows 95, the infrastructure and multitasking, the integrated TCP/IP and the innovation around TCP/IP to make it Plug and Play, and the new UI. That was a great combination. And it hasn't changed much over the last 11 years.
Obviously it was a pretty junior team, and they did an amazing job. To this day I remain incredibly proud of being associated with the folks who developed Windows 95.
Any thoughts on what Microsoft might have done to avoid the problems that have plagued the Vista launch?
Sure, I have ideas. But none I can really get into. It comes down to having a clear sense of what you are trying to accomplish, having a clear sense of doing it and only biting off what you can chew. Boiling the ocean never succeeds. And you can contrast that with the different development model that you've seen from Amazon and eBay or Google and Yahoo, a Web-based development model, where they can iterate constantly.
It's a constant improvement, a constant cycle. Corporations don't want that type of churn, so you have to be careful. Especially when you are dealing with client software, it's difficult. What you are trying to do is put the odds on your side. You try to boil the ocean and odds are it's not going to work.
Dan Bricklin has talked about a split mentality with regard to open source at Microsoft. As someone who has worked there, what are your thoughts?
It's reminiscent to me of the debates regarding the Internet 12 years ago. It's the same sort of thing. There are people who were super excited by the Internet, and people who [felt] threatened by it.
Is there a growing movement within Microsoft -- among the programmer types -- for open source? Are they building a momentum within the company to accept it?
I don't know. What I do know is that open source is gathering momentum. As Microsoft continues to hire the best kids out of the best schools, they've got a huge amount of open source experience. It's inevitable that there will be more and more people inside Microsoft who have experience with open source and benefit from open source.
Are there any lessons from to be learned from the IE 3 launch and Microsoft's struggle with open source?
Leading the Internet turnaround at Microsoft was an exciting experience. But once we, quote, 'won,' then the company said, 'OK, the threat's gone -- let's go back.' When you are king of the hill you don't want the world to change. When the world revolves around Windows, and you're numero uno, why would you want the world to change? Hey, life's good. Why change? It's natural, and understandable, that they would be resistant to change.
It comes down to a recognition that the forces shaping the industry, mainly the Internet, are stronger. They are going to win in the long run. You have a choice. You can either align yourself with it and get out in front and shape it. Or you are going to get crushed by it.
When you look at technology leaders in the past who ignored the primal shaping trends of our industry, they ignored them at their peril. Whether it[was] IBM or other computer companies with PCs. Or some software vendors like Lotus and WordPerfect with Windows. They resisted and lost.
You somehow have to at least accommodate. You cannot just throw up your arms and say, 'it's bad, it's bad, it's bad,' and hold your breath and hope it will go away. It won't. You can see that recognition in the evolution of Microsoft's stance towards open source, where initially it was very negative and very hostile. That didn't work.
Was it very IBM like in some of its attitudes, in the sense of not accepting the obvious and getting steamrolled by it?
It made Microsoft look bad. It doesn't matter if they were right or wrong. It doesn't matter. The fact was they were isolating themselves and making themselves look bad and creating enemies that they didn't need to have.
What ideas do you see gaining traction?
Clearly the whole Web services concept. What's happened over the last couple of years is the Internet has transitioned from a publishing platform and a consumption platform into an application development platform with Web services. It's incredibly exciting and it's created this backbone of services that makes it super easy for people to develop new applications.
The world in many ways boiled down to two competing tool sets: Visual Studio on the Microsoft platform side and open source Java-based development. One of Microsoft's key platform competitive advantages has been Visual Studio, which was head and shoulders better than the other development tools out there. But that gap has narrowed. Visual Studio has continued to progress really well, but Eclipse has come on over the last couple years, pushing a lot of developers to go with Eclipse.
We used to see a lot of developers go with the Microsoft platform simply because Visual Studio was so good, and now we're seeing that competitive advantage sometimes going away, as people are going with Eclipse.
Is there an approaching tipping point between Microsoft and competitive tools like Eclipse IDE?
They are at the tipping point of at least parity. It used to be that Visual Studio was so far ahead that corporate developers and third party developers would develop on the Microsoft platform because Visual Studio was so much better. Now that advantage has been in many cases neutralized, as Eclipse and a lot of the add-on tools around the Eclipse platform have gotten so good.
It's incumbent upon Microsoft to go pedal to the metal on Visual Studio. That's what dragged in .NET more than anything else into the organization -- more than anything it was Visual Studio.
AJAX development is very hot right now. Will we see a solution to the server-side complexity it brings?
There is certainly a lot of interest in doing that. There are a lot of companies working to make it easier develop both on client side and server side. That is an area of progress over the next couple years.
The appeal of AJAX applications is so high. There is no install. It's kind of the holy grail of applications. You get rich clients, with all the benefits of rich clients, without many of the issues associated with rich clients. One thing that's missing still with browser-based AJAX applications is offline storage. That hasn't been addressed yet, but maybe it will be over the next couple of years. If you are offline and not connected -- say, on an airplane -- how do you connect with your data?
What we believed back in 1993, '94, '95 -- when we were developing IE -- was the browser would become the platform. Lo and behold, that's exactly what happened, with AJAX as the platform.
You mentioned Java-based development earlier. Is the face-off between Java and .NET as important as it was two to three years ago?
The battle revolves around development tools more than the underlying technology. It may be a little different in corporate environments than with third-party developers. Corporate uptake of .NET Visual Studio is higher than companies that are developing products themselves. [Of] companies that we fund, the majority are using Java and open source-based technologies. But inside corporations, where you are developing for your own internal use, the incidence of .NET is certainly higher.
Does it make sense for corporate developers to embrace more of the Microsoft stack? Sharepoint, Vista, Longhorn, IE, Office, SQL Server and even Dynamics?
We're seeing companies going slow in that regard. They are using some of the basics. For the most part they are embracing it a little more slowly, and more quickly embracing Internet and Web-based technologies.
How will software be different in five years? What technologies will drive the most change?
The next five years are going to see more innovation than the last five years. We are in a tremendously exciting period. You see a bunch of important trends all come together at the same time that play off each other and amplify each other -- the Internet emerging as a real platform for Web services and AJAX applications and server-based applications. That's made it very easy for people to get going. And you've got cheap hardware with commodity Intel-based hardware running either Windows or Linux, scaling up very quickly.
You've got global connectivity on a worldwide basis, with fixed or wireless, which makes it very easy for people to do outsourcing. You've got your core team in Redmond and you've got another team in Chile or Romania or China or India or something, who can develop a lot of code on a very cost effective basis.
We are in a time of huge experimentation. It's very easy to get started: Very low capital [is] required. It just takes a couple of smart people with a good idea and you can get going. You are seeing a lot of experimentation. You see the whole server-based model of developing applications. You see it with Google coming out with new applications every day. You see it with Yahoo! and Amazon and eBay. It's very easy to come up with stuff, evolve it, bug-fix it and iterate a new version. Whether it is YouTube or MySpace or FaceBook. Who would have even thought of these things a few years ago -- and [now] they are worth billions of dollars?
They've been unlocked with their business model, mainly subscription-based or advertising-based. You don't have to go out and get a huge license and install -- especially on a large project -- the software. Look at the success at Salesforce.com. Try it: If you like it, you flip software. If you don't like it, don't use it. You don't have to have a huge IT project to deploy your CRM that takes a year with all kinds of internal development and then at the end of the year you don't even know if you are going to like it or not. This new model of development eliminates all the friction. You don't have to be bundled in the application or bundled in the hardware to get distributed any more, either. There are no gates.
Have you been paying close attention to Google's development model and how Microsoft might model them?
That model of development is showing tremendous strength. If you had to think, 'who is leading the world today in terms of model of development', there is no question the answer is Google.
What fueled Google from the beginning [is that] customers just like it. It's a clean, simple design that goes back in some ways to the principles of Windows 95. They were completely imbued with and understood and were in love with who their customers were.
And they didn't have 50 million lines of code hanging around their neck like a millstone.
It was a philosophy of falling in love with who the customer is and giving them what they wanted, and not gooping it up with a lot of junk. It was very lean and very clean, and very successful. They coupled that with a server-based approach, so they [could] deploy it overnight. They can get a bug fix and deploy it overnight, and then everybody who uses it gets the bug fix automatically.
Microsoft is learning a lot of these lessons on how to update software and to be much more nimble. Obviously they cannot go through another product cycle like Vista.
Google has shown that you have to be very nimble, be in the market, connected to your customers, and iterating on a constant basis. When you are out of the market for five to six years, everything changes. The world doesn't stand still. That is the biggest lesson and Microsoft is heeding that lesson. You can't be off the market for five years. The world changes.
Would it help to design a more modular operating system? And is it even possible?
Absolutely. Of course it's possible. It's a necessity if you want to be more nimble. It's basic software engineering principles.
Could they do it now with their 50 million lines of code or do they have to start anew?
I think they are making good progress in trying to compartmentalize and componentize things.
Can they do this incrementally, say, deliver just WinFX one year, and Indigo the next year?
I think they are coming to the same conclusion. You can't be off the market for five or six years. The world changes too fast. When [Windows] XP shipped, Google barely even existed. And now look at the world. YouTube didn't exist. MySpace didn't exist. You can't be out of the market that long. You have to come out with strategies that let you come to the market in more efficient ways.
Ray knows that. Bill knows that. Steve knows that. Everybody knows that. Now you just have to follow through with it.
Looking back at your career at Microsoft, if you had a chance to re-play one decision, what would it be?
I was afraid you were going to ask that. I have a hard time coming up with an answer. My philosophy on life is you deal with it as it comes. You make some mistakes, make some good decisions and bad decisions, and learn from them.
All the big decisions: I'm happy with how they turned out. If I could replay something, I think it would be after we shipped IE3, [and I'd have] the company continue to embrace and move forward quickly on the Internet. In 1996 I led a group called the Internet Platform and Tools Division, which lasted for maybe a year, and then it got reorganized out of existence.
I think Microsoft realizes it didn't need an Internet platform. We had one. Did we have it all right then? No, we clearly had a lot of things that were wrong. So if I could replay anything, it would have been [that].
Bill Gates turned the company around on the Internet in one day. Why reorg the Internet unit out after just 12 months?
There was a lot of the company that was full speed ahead on the Internet before Dec. 7, 1995. I think Bill's declaration was more the culmination than the beginning of recognizing the Internet inside the company. The success of IE3 allowed the company to retrench back into a world where Windows was prime. If I could replay anything, it would be that the company would continue to move forward quickly on the Internet in the latter half of the '90s. Look at the last releases of IE. After IE4, the thing basically went into the freezer. After 1993, the company just started to retrench back from the Internet.
What do we look for going forward? What investments of yours look hot?
It's going to be super interesting to see what is going on with Vista over the next year: after they ship it, see how quickly it gets adopted and how it affects the industry. Does the world pivot around Vista, or will Vista have to pivot around the world?
We invest in a company called SourceLabs, which I'm super excited about, that provides support for open source. And we continue to see open source continue to grow and grow and grow within corporations. But they have an issue -- who do they turn to for support? By definition they are getting open source solutions from multiple different vendors or individuals. Right now one of the problems is companies have to stitch it together themselves into a system, and how do they get it to work, who do they turn to? Do you turn to Red Hat, Ruby On Rails, your Java application vendor? You don't know who's responsible -- there's no one who takes responsibility. That's what SourceLabs is doing. They pull all the pieces together, test them, certify them, and then provide support. That is the missing piece for open source.