Geek of the Week – Bill Vaughn

William Vaughn is a well-known author who writes about Visual Basic and database-related topics. He previously worked for Microsoft, and now runs Beta V Corp.


An interview with William (Bill) Vaughn


by Douglas Reilly

William Vaughn is a well-known author who writes about Visual Basic and database-related topics. Looking at a list of his books serves as a history of Microsoft software over the last decade or so, from VBSQL, to ADO, to ADO.NET and most recently, SQL Server reporting services.

I have not read all of Bill’s books, but I can recommend the most recent, Hitchhiker’s Guide to SQL Server 2000 Reporting Services. I wanted to understand how reporting services worked, and until reading through the bulk of his book, I simply could not get my head around it.

Bill and his wife Marilyn run Beta V Corp. in Redmond, Wash. Bill was previously employed by Microsoft, but left the company in 2000 after 14 years. He now travels worldwide to guide, mentor and train developers. Bill is not shy about sharing his opinions, and his blog is a great place to add to your favorites or your aggregator.

The following questions were answered by Bill via email.

Doug: If my math is correct, you joined Microsoft in 1986. That does not seem long ago to someone my age, but it was almost 10 years prior to Windows 95! Can you share a little about your early days at Microsoft, and the changes you noticed over the years?


Bill: I came to Microsoft in 1986 after surfing the PC industry for about a decade, and the mainframe business before that. I worked for many large companies that for one reason or another wiped out as the tsunami waves of change caught them unprepared. These included EDS Business Systems Division, Mostek, Challenge Systems, Digital Research and CPT Corporation.

When I was invited to join the team at Microsoft, I was hesitant to relocate to Redmond, but agreed to work in the developer liaison group supporting a new product called Windows V1.0. The company had just moved into buildings 1 through 4 from the Northup Way buildings with about 1,200 employees. Except for Frank Gaudette, it seemed like, at 40, I was the oldest guy there.

In those days, if Microsoft wanted to run with an idea, it did. Almost everyone you saw worked directly for the company, from the security guards and janitors to the artists, receptionists, developers, salespeople and marketing folks. I mention this because nowadays having a blue badge is more of a rarity at Microsoft. It seems that every function that could be outsourced has been.

We partied big and worked long hours back then. As more buildings were added, we noticed the company got more like IBM. Today it’s hard to tell the difference. When I left it had grown to be a politically correct, bureaucratic maze of rules and regulations. It had lost its small-company entrepreneurial spirit.

Microsoft is really made up of a dozen good-size companies spread over a campus the size of a small city. Some are profitable, some not. Some work with the others and share their resources and talents, some don’t. It’s not the Microsoft I joined in 1986.


Doug: I know from your blog that you are in favor of Microsoft continuing to support Visual Basic 6. You have said that Microsoft is hamstrung by what it can do. Do you think that large organizations such as Microsoft, GM and IBM can respond to customer’s needs?


Bill: It’s essential that Microsoft remember that its products touch everyone in one way or another. Visual Basic 6.0 was, and perhaps still is, the most popular language the company ever created. I know. I was on the team that documented versions 2 through 5 and helped launch Visual Basic 5.0 and 6.0.

Microsoft wants to move on and get developers to adopt the .NET Framework for a litany of good technical reasons and some revenue-related ones. It is a business, after all. When Microsoft said it was not going to support Visual Basic 6.0, regardless of what that means, it sent a shudder through the industry. Suddenly, good, well-written and successful applications became less marketable.

Would you want to buy a package based on a language that Microsoft would not support some time in the not-so-distant future? I don’t think Microsoft had many choices here, but it could have extended support for Visual Basic 6.0 for an indefinite period like it did with FoxPro, at least until 80 percent of the VB6 developers had migrated to .NET.

It’s not that easy to migrate serious applications to .NET. Microsoft’s own applications at some large customer sites have yet to be converted. While .NET is better in many respects than COM-based platforms, Visual Basic 6.0 shops have been slow to convert. Why? It’s expensive. And while it’s easier to create .NET applications once you learn how, that’s the rub: You have to learn a new language. Visual Basic .NET is not Visual Basic 6.0 by any stretch of the imagination. You also have to learn a new programming paradigm and many more details, including deployment, security, data access, UI changes, control changes and more. I see it as my job to help folks transition and make the leap cheaper, at least where it makes sense.


Doug: Of all the features dropped from Visual Studio 2005 in recent betas, which will you miss most?


Bill: I’m focused on data access and reporting issues, so I am disappointed that many of the features are still not in place that we lobbied for after seeing the alphas of the first framework. The fact that ADO.NET has not caught up with ADO classic (COM-based ADO) is disheartening. It still does not have server-side cursors, asynchronous Open, or a way to request a specific concurrency at runtime, to name a few features.

There are a number of important new features in 2.0, however, including asynchronous DataReaders (but not Fill or Load), SqlBulkCopy, better connection pool management, support for XML and other new SQL Server datatypes, generic data access factory classes, and better DataSet performance when doing dumb stuff like loading 100,000 rows. Tighter integration with Visual Studio is also cool, but there still isn’t a way to set or manage users, roles, schemas or permissions in Visual Studio.

MARS was included, although I don’t see how it solves a problem. There is a new TableAdapter, and I’m still getting my head around that. The DataAdapter Configuration wizard is still there, but it’s hidden, and you can’t generate a Parameters collection by dragging a stored procedure to a form. Two steps forward, one step back.


Doug: How did you become a Microsoft MVP, and what you think of the program?


Bill: I was appointed (anointed?) MVP a couple of years ago when I convinced the MVP people that I had really retired from Microsoft. I had been answering questions on the newsgroups even before I left Microsoft, as that’s a good way to see what problems developers are having.

I think the MVP program is great. It opens doors on campus for me and other MVPs, so when I need insight into what’s going on in the quad towers (buildings 40 through 43), I just ask. It’s a wild group with lots of vociferous and passionate folks who believe in what they do.

I’m proud to be an MVP. Most of us are dedicated customer and developer advocates. I just wish they had a dual-head approach that would enable me to be a Visual Tools and SQL Server MVP instead of just a Visual Basic MVP. Perhaps that will come.


Doug: One of the biggest issues among SQL Server developers is whether or not to use stored procedures. Where do you come down on the issue?


Bill: There are always going to be folks who insist that the earth is flat or that there really was a reason to go into Iraq, other than oil. Stored procedures are a tool like any other. If they aren’t used intelligently, they won’t help much, if at all. When I ask a crowd of 1,500 developers how many run SQL Server or Oracle who don’t use stored procedures, there are always a few who raise their hands. I ask them to look around and ask themselves if they should reconsider their choice. Sure, in smaller applications it does not make that much difference. But in applications written by a team spread all over the building or the world, stored procedures provide a degree of control and security that’s tough to achieve using ad hoc queries.

When it comes time to change the logic in stored procedures, you have to be careful because, like COM components, the applications that call them are dependent on their signature. As a way to centralize code, however, they work better and are managed more easily than COM+ middle-tier components. And they can help performance. Ask any serious IT manager or DBA.


Doug: What sort of work are you doing these days?


Bill: Peter Blackburn and I are working full time on our next book, Hitchhiker’s Guide to Visual Studio and SQL Server 2005, to be published by Addison Wesley early next year. I also write a bi-weekly editorial for Processor( magazine and am preparing for the fall launch events like the Connections conference in Las Vegas. I’m also trying to keep up with my “honey-do” list around the house.


Doug: What do you think about using VB.NET or C# for stored procedures? Do you think it will be, on balance, a good thing?


Bill: I think CLR-based stored procedures, triggers, functions, aggregates and user-defined types have been over-sold. There are a small number of important places in which this technology makes sense. It makes sense, for example, to use a CLR function when doing GPS calculations or anywhere that a developer has to branch out to an extended stored procedure to do something special. For ordinary jobs, like row-centric business logic T-SQL, it’s faster.

I’ve been experimenting with CLR UDTs and aggregates and think a case might be made for using these in special cases. But given the strength of T-SQL and the scary alternative of using XML-typed columns, developers will find there is a dizzying cornucopia of choices. We’ll be talking about these choices in our book.


Doug: Have you written any code using the ObjectDataSource control in Visual Studio 2005?


Bill: Not yet. That’s targeted for next month. It’s a waste of my time to work with the new Visual Studio tools and toys too early in the product cycle. This is my 12th book, and I’ve been burned too many times by starting my research and writing too soon. We’re still in the “if the function isn’t working by now cut it off” stage of development, so we’re likely to see even more functions fall by the wayside. That will continue to happen right up until release to market if Microsoft follows its usual pattern.


Doug: Have you done any work with SQL Server Mobile Edition? It seems to be a tool that could address some of the issues you raise in your blog, especially with regard to a lightweight query engine and server-side cursors. Even though there is no technical reason SQL Server Mobile can’t work on a desktop OS, it won’t work on x86 OS, except on developer desktops and the Tablet OS.


Bill: Yes, this is interesting and I think it has the potential to fill the gap between saving a DataSet to your local disk and having to install a full-blown DBMS like SQL Express. What makes it important is the ability to scale, at least to some extent, your logic and data access architecture to stronger data engines if the need arises. But more important, it’s ability to automatically replicate with SQL Server makes it a very attractive platform.

I want developers to move off JET, as it’s one axis of evil, but there is no truth to the rumor that I turned the JET team in to homeland security. SQL Server in its various forms is safer, more scalable and a better choice than JET. Period.


Doug: Can you think of a cool tip or trick for the developers who will be playing with the latest SQL Server 2005 beta?


Bill: Make sure you check out Reporting Services. Using the Business Intelligence Development Studio (really Visual Studio) built into SQL Server, you can create reports in no time. Check out the new Surface Area Manager as well. It can save a lot of time when you need to set up SQL Server. The SqlBulkCopy class is also cool. I used it to move 450,000 rows from the MSDN index CD to SQL Server in about 30 seconds-on a laptop.


Doug: As someone who has been writing books for more than 10 years, what do you think of the current state of the software development book market?


Bill: It’s in transition. When my last ADO.NET book was published about four years ago, the pressures on the industry to cash in on the market were enormous. As a result, too many publishers signed every living person with a keyboard and printed a lot of drivel. In my market alone there were more than two-dozen books on ADO.NET. Some were great, written by authors I respect and recommend as a reference. Some were not so great-a waste of trees. As a result, publishers were burned and some went down in flames. Publishers have grown more wary and are being more discriminating, or at least some are. They are also learning where e-book distributors like Safari fit in.

For the first time, I’m working with Addison Wesley, a publisher that actually listens to Peter and me and leverages our experience in the industry. The company’s marketing team, which is a critical factor in the success of the book, has been stellar-better by far than any other publisher with which I’ve worked. The editors, now that they’re trained, know where my books fit and can help keep my voice.

We’ll have to watch this next cycle. There are bound to be a number of books that make it to the shelves by November 7th, but to get there they have to be done within the next 45 days or so. We don’t plan to release our book on Visual Studio and SQL Server 2005 until it’s ready, and the publisher is cool with that. Our Reporting Services book is in its third printing, and the publisher can’t argue with success.


Doug: You generally write books solo or with a single co-author. In this day of books with barely enough space on the cover for all of the authors involved, how do you feel about working with a team of writers? Or more important, how do you convince the publishers that you can get the book done on time all by yourself?


Bill: I wrote six editions of the Hitchhiker’s Guide pretty much on my own. I had some helpful technical editors and reviewers along the way, of course, and they kept me on the boards as we crossed some alligator-infested swampland. Unless you know your co-author very well and have synergistic knowledge, having additional authors can be a nightmare. And having more than one voice in a book can quickly become a distracting cacophony of confusing points of view. Peter is not only a technical giant, he’s a close personal friend. He’s more of a business partner than a co-author.

The key when working with a publisher is to find one who knows you well enough to trust your judgment, and that’s not always easy. It’s important to know how long it takes to write once you know the material, and how long it takes to learn it in the first place.

I could not find a publisher for the first edition of the Hitchhiker’s Guide after repeated attempts. I even hired an agent. The agent did not know me and I had not written more than a few dozen whitepapers and a couple of chapters for other books. Microsoft Press turned it down. Instead, the company wanted me to adapt Hitchhiker’s Guide to VBSQL to PowerBuilder. So I decided to publish it myself a few dozen at a time. After three editions, Microsoft Press came to me and the rest is history.

Having a book in hand helps. That way there is no question about your ability to write. It’s tough to write a book-length manuscript without any assurances that it will be published, but sometimes that’s what it takes.

Consider that book writing, as opposed to articles and whitepapers, pays about 50 cents an hour. A good book will sell about 10,000 copies and a beginning author can expect about a buck a book. If it takes three years to sell those 10,000 copies, you can’t keep up your Maserati payments with royalties. If you spread that between six authors, it makes even less sense, so to speak. The problem with technical writing when Microsoft software is the subject is that everything you write is useless in five or fewer years. Who wants to read a book about Visual Basic 4.0 or VBSQL nowadays?


Doug: What music do you listen to?


Bill: I have a 200-CD carousel that has everything from Enya and Abba to hard rock, the Beatles, country, and classical. When it’s turned on loud, the family knows to leave me alone-I use familiar music to cut off external noise and distractions.


Do you know someone who deserves to be a Database Geek of the Week? Or perhaps that someone is you? Send me an email at and include “Database Geek of the Week suggestion” in the subject line.