On Complexity, the Web, and the Future of Software Development

An Interview with Microsoft Tools Chief Paul Gross

MSDN Interview
September 2, 1998

As vice president in charge of the Developer Tools Division at Microsoft, Paul Gross led the charge on Visual Studio® 6.0, a huge effort that took more than 1,000 people 17 months to develop.

In this wide-ranging interview with MSDN Online, he outlines some of the key developer initiatives underway at Microsoft, discusses problems developers face today, and explains how Microsoft will try to help solve them.

MSDN: What's holding back most developers today? What are their biggest problems?

GROSS: I think the biggest problems developers face today center around complexity, the speed of change, and the ability to keep their skills up to date.

The complexity stems from the breadth of new technologies and APIs coming their way that seem exciting or important to learn. This includes the latest aspects of the Windows API. There are also all these new Web technologies. There's Java. There's the need to understand architectural changes such as object orientation.

The average developer is inundated with choices of what to learn in order to increase their value to the company they work for. If they're a VAR or Solution Provider, they want to increase their value to their customers. They're all faced with this growing level of complexity about what to learn.

A key concern of developers is whether they can take the skills they already have, with Visual Basic, for example, and apply them to the Web. We're focusing on this a lot. Developers have a limited amount of time and are being hit by all this complexity of new technologies. That's making us ask ourselves questions like, "How can this tool make developers more effective in addressing new technologies, new paradigms?"

MSDN: Do you think it's going to get easier or more difficult in the future to master software development?

GROSS: We're trying to make mastering software development less of a priesthood or high art form. We want to continually simplify it, to allow the broadest range of developers to be successful and productive at building applications.

In the future, our job will be to look at distributed computing and the complexity brought on by building these Web-based, multitier architectures. Just as Visual Basic® placed a constraint and simplification over the Windows API and version 2.0 of MFC gave developers an applications architecture, we'll constrain this new space so developers don't have to learn all the underlying details of state management, how the graphical user interface is represented as a persistence format, and things like that.

We want the average developer to be successful building highly scalable applications that work in a Web environment. We want to bubble them up to a higher level of productivity.

MSDN: Was reducing complexity a big goal with Visual Studio 6.0?

GROSS: Yes. That's a continuous goal for us, trying to reduce the complexity of developing software. The tools we put into Visual Studio 6.0 Enterprise Edition are aimed at popping developers up to a higher level of abstraction and making them more productive at building software for a broad array of technologies and architectures. There are tools for helping them manage components and share them with teams, tools for helping them with the Web, tools for helping them design things graphically, and a lot more.

MSDN: Do you deal with much complexity of your own, managing this huge Visual Studio development effort?

GROSS: I would say that building a release like Visual Studio 6.0 is one of the more complex software development tasks in the world. It has a number of large internal dependencies for pieces of shared code, as well as external dependencies that need to be managed. There are also other external forces affecting it, such as the wide range of customers we're trying to serve and the number of architectures we need to support.

MSDN: Can you briefly describe the effort Microsoft put into creating Visual Studio 6.0. How big was the effort, how many people participated?

GROSS: Between employees and contractors in the Developer Tools Division, we had about 1,100 people who worked full time for about 17 months building Visual Studio 6.0.

It's important to realize that Visual Studio is the result of much more than just the people in the tools division at Microsoft. It also includes the work of many other groups, such as people from the Data Access Group who produced the whole ADO through OLE DB stack for accessing data. The Trident group built the HTML rendering engine in Internet Explorer, which we also use. We interface with all these key people. We ship core parts of their applications.

MSDN: Has Microsoft's focus on enterprise development changed much in the past 18 months since your division released Visual Studio 97?

GROSS: Yes, I think three main things have changed since then. The first is Microsoft's strategic push into the enterprise with Windows NT® and the set of services that surround Windows NT. These include Internet Information Server, Microsoft Transaction Server, MSMQ (Microsoft Message Queue Server), a set of services for building distributed applications, and a higher level of services in BackOffice. Developers are trying to digest all these offerings and figure out how to take advantage of them to build applications that serve their businesses better.

The second major change in the past 18 months is the impact of the Web on enterprise development. We see the merger of traditional two-tier client-server applications with the Web as a major force operating on our enterprise customers. Elements of the Web such as HTML are moving down to the client and becoming the user interface. User-interface elements such as pages and links are solving some of the fundamental problems companies have had rapidly developing applications.

The third big change is yet another factor related to the Internet. We see corporations swinging back to thinking of information technology as a strategic weapon for their business. We see them trying to leverage their computing infrastructure to do things like integrate customers and partners into their existing systems using standard Web protocols. Corporations are doing this to try and gain efficiency, reduce costs, reduce time to market, and gain an overall competitive advantage, either through serving customers better or outdoing the competition in some other way.

MSDN: What's driving the trend towards building Web applications rather than traditional client-server apps, and how is Microsoft addressing this trend?

GROSS: First and foremost is the low touch of a Web client. This appeals to corporations. So much of their Total Cost of Ownership comes just from having to install software onto the client and then deal with other applications stepping on shared components of the installed pieces.

With Web applications, the user interface moves down to the client at run time and is automatically updated with new components when they're needed. This is a much more attractive way for corporations to distribute and install applications, because of its impact on Total Cost of Ownership.

A second factor driving the trend toward Web applications is the simplification and richness of the Web's user interface model. By simplification, I mean a forward and back button and a URL to take you somewhere. These are pretty simple concepts. Adding pages and links to move from one screen to the next is a simple metaphor that everyone gets.

As developers use the Web more and more, they say, hmmm, this seems to work for applications. We're examining all these technology trends and adapting our operating systems and tools to these new benefits developers are discovering.

There's also a third factor we see driving the trend toward Web applications. That's the need for a multitier architecture in order to gain real scalability. It turns out that building multitier applications is fairly difficult. Well, the Web is kind of like a poor man's multitier application. It forces developers to cleanly separate their user interface from their business logic from their data access. We see the Web as a good force, because it is making people build more scalable and manageable applications.

Our Windows DNA architecture addresses this. It's a real step toward synthesizing the Web with client-server. The whole concept behind our Windows DNA architecture is "How can we allow developers to build applications that merge the best of the Windows client-server world with the best of the Web world?"

This is our multiyear framework to synthesize the benefits of these two environments. It includes bringing HTML forms to the client, merging them in ways to manage business logic on the server, and making it all accessible through a Web server. We're also creating a unified way to access data, whether it's SQL-based data, mail messages, information in Excel files, or other data.

MSDN: Do you think some developers will continue to classify themselves as Web developers, or do you think that distinction will fade as every developer to some extent becomes a Web developer?

GROSS: I think the distinction of a Web developer eventually will go away. Today people think of themselves as Web developers if they use HTML and CGI. But we're seeing a lot of developers now who want to add an HTML component or HTML capability to their application. Sometimes they want to build scripts or functions they can call that reside on a Web server. They're learning about that architecture.

As the operating system evolves and makes it more seamless for developers to build Web applications or server-based applications, I think more and more of these people will just view themselves as developers, not Web developers. There will be inherent Web capabilities in the applications they build.

MSDN: How can developers choose between buying a whole package of tools such as Visual Studio 6.0, Enterprise Edition, or buying an individual tools product such as Visual Basic 6.0, Enterprise Edition?

GROSS: In general, I would recommend that developers aim toward Visual Studio. I think it keeps their options open by giving them all the latest and greatest tools from Microsoft.

But if they're at a VB shop that uses only VB, will never need to move to another language, doesn't want to build applications that take advantage of new Web technologies such as Active Server Pages, then I could suggest they use VB as their only solution.

We expect to see more and more of our enterprise customers moving to Visual Studio, Enterprise Edition. We're seeing fewer and fewer customers who just want our individual enterprise tools products.

MSDN: We haven't talked much about customers. That seems like a good topic to close with. What have you learned from speaking to customers in the past year?

GROSS: One of the key things we've learned from customers is that we can get ahead of them in terms of architecture. We really need to look back and ask ourselves, "Where is the developer today on the technology curve? What do we need to do for them in our next release in order to create an order of magnitude improvement in their productivity?"

We look at what developers need to understand architecturally to build applications for Windows NT and see we're ahead of a large portion of our customer base. We look at the process requirements for building applications in teams and see we don't have enough fundamental support for making teams successful.

We look at many other things, too, like Internet usage, data usage, and how essential data is to every application. We realize we have a lifetime of work ahead of us just trying to make developers more productive as the shape of their world changes.

--------------------

As vice president of the Developer Tools Division at Microsoft, Paul Gross is responsible for managing the development and marketing of Visual Basic, Visual C++®, Visual J++™, Visual FoxPro®, Visual InterDev™, Visual Studio, MSDN™, and the Office Developer Edition.

Before joining Microsoft in 1996, he was senior vice president of R&D at Borland International (now Inprise Corp.), a maker of software development tools. In his more than seven years at Borland, he held positions in general management, development, and product management for languages and client-server tools. Prior to joining Borland, he worked as a software engineer of programming languages at Gold Hill Computers and Infocom. He holds a bachelor's degree in psychology from Wesleyan University.