An interview with Rebecca Riordan
by Douglas Reilly
In addition to writing articles and software, I sometimes write books, which is one of the most difficult things I do. If you think that getting the contract is the hard part, it’s not. It takes longer to write a book than you might think, and you have to deal with people who tell you a particular title is too simple, too short, too long, or too boring. Others have ideas about how you could have—should have—done the job better. The bottom line is: You place your ideas out in the world, in permanent form, and allow others to pick them apart.
Rebecca Riordan is someone who feels my pain. Although I don’t think I ever met Rebecca in person, I may have heard her speak at a conference before I knew who she was. My first interaction with her was when she was having trouble duplicating a problem that a reader was having with code from an early book of hers. The code in question certainly worked, at least for me. So I contacted her about that, understanding how difficult it is to get every reader on board with your vision.
Since then I have had the pleasure of reading a couple more of her books, as well as reviewing one or two of them, and I have come to appreciate her style. Her two recent books, Designing Effective Database Systems and Seeing Data: Designing User Interfaces for Database Systems Using .NET, are wonderful. The second title, especially, fills a gap in the books that have been available until now.
Software developers are notoriously poor user-interface designers. They are especially poor with respect to presenting data in ways that work for both users and databases. Reading Seeing Data will help developers become better database designers. (See http://www.awprofessional.com/title/0321290933 and http://www.awprofessional.com/title/0321205618 for additional information on Rebecca’s recent titles.)
The following questions were asked by me and answered by Rebecca via email.
Doug: One of the biggest issues among SQL Server developers is whether or not to use stored procedures. Where do you come down on this issue?
Rebecca: I’m on the fence, of course. There’s no one answer. "Who owns the data?" is an important question, particularly in corporate environments, so when it’s a question of data integrity, I’m absolutely in favor of SPs—it’s the right and responsibility of the data store to protect itself. But for data presentation, I prefer that the manipulation be done locally to maintain application flexibility. (I still remember six-week delays getting a system administrator to add a single field to a SELECT query.)
Doug: When you program in .NET, do you favor VB.NET, C# or some other language?
Rebecca: VB.Net, absolutely. I have to build samples in C# for my books, but frankly, I’d rather go to the dentist.
Doug: There have been a number of blog posts, even petitions, to bring back official Microsoft support for VB6. Do you have any thoughts on the matter?
Rebecca: VB6 and Jet both. Microsoft is marketing driven. By and large that’s a good thing, but it gives the company bias toward large corporate installations that I think is inappropriate. I saw a Microsoft marketing presentation a few years ago during which the guy was justifying the company’s "big app" emphasis by quoting sales statistics: 40-something percent of Microsoft’s customers are major corporations. I was the strange woman in the back of the room waving her arms and saying, "Yeah, that means 50-something percent of your customers are small guys, so why aren’t you paying attention to them?"
VB6 and Jet are wonderful tools for small applications, and without having done formal research, I’m convinced that the majority of applications are of the guy-building-a-customer-tracking-system-for-his-auto-parts-store variety. They’re not cool or sexy, but they’re important, and I hate like hell to tell these guys that they need to run SQL Server. It’s too big, too complicated, and requires too much housekeeping. And it’s not needed, not technically.
Doug: What was your first database-related job?
Rebecca: LOL! When I got out of university, I couldn’t get a job to save my life. I finally wound up as a word-processing operator for Wells Fargo Bank, back in the days of dedicated word-processing machines. When the bank brought in personal computers, they put me in charge of them because they looked more or less like word processors. My first database application was a customer list used for mail merge in Word Perfect 1.5. Normalized and everything, I was so proud of myself…
Doug: How did you learn about databases?
Rebecca: C.J. Date’s book. It’s still a classic, and one I recommend to those who are serious about learning database theory (after reading my Designing Relation Databases, of course ). Actually, on the newsgroups, I recommend that people start with Steve Roman’s Designing Access Databases before they read my book, and then move on to Chris Date afterwards. That is, if I haven’t turned them off the subject entirely.
Doug: Have you done much with XML?
Rebecca: No. I understand the "ASCII for data" theory, but I always think, "and I care about this because…?" And because the .NET Framework and SQL provide such great support for XML, I’ve never had to do more than simple "spit this out" or "pick this up" stuff.
Doug: Your books are among the few that cover both Access and SQL Server. About what percent of your work is done with each? What do you miss when using Access, and vice versa?
Rebecca: It’s about 50-50, I guess. Surprisingly, there isn’t anything I miss when switching environments. Triggers in Jet might be nice, but the interface environment is so closely integrated in Access, and I’m so used to working without them, that it isn’t a big deal.
I miss VB stuff when I’m working in VBA, though. Big time. And I miss .NET controls in Access. Although, to be honest, I don’t so much miss them, because Access has some wonderful stuff too, as I get myself confused about what’s available where.
Doug: Have you had a chance to work with the betas of Microsoft SQL Server 2005 and Visual Studio 2005? What do you think about possibly using VB.NET or C# for stored procedures?
Rebecca: You might say I’ve worked with them—I’m writing books on both of them. Using CLR languages in SQL Server seems like a good, convenient thing, and of course it’s a natural outcome of the Yukon rewrite, but I’ve heard too many non-database developers say, "Good, now I don’t have to learn SQL," and that would keep me up nights if I let it. Can you imagine what kind of database junk is going to be written by people who don’t know SQL, and therefore don’t understand how data sets work? Oh, heavens, that’s scary.
Doug: Your recent book, Designing Effective Database Systems, covered dimensional databases (or OLAP databases). This was a topic I had not thought much about, even though I consider myself a database-savvy geek. You taught me something. How do you keep up with changes and stay ahead of our readers?
Rebecca: Thank you. Being something of a recluse—if you heard me speak at a conference, it was a long time ago!—I mostly cruise the technical bookstores and Amazon to see what’s new and exciting, then do my research on the internet. The generosity of the Internet community never fails to amaze me.
Doug: I independently "discovered" markup languages long after Tim Berners-Lee developed HTML . My markup language involved lots of @ signs and was not terribly device independent; I hard-coded things that should not have been. Have you ever "invented" anything, only to discover that something better already exists?
Rebecca: Not with an entire language—I was never that ambitious—but I do remember one particularly cringe-making moment when someone pointed out that if I was calculating an 80-character line break, it was probably more efficient to start at character 79 and scan backward for a space than to start at character 0 and scan forward and then backward. It was then that I decided I really wasn’t cut out to be a programmer and moved into systems analysis.
Doug: Are you in the process of writing any great developer-oriented books?
Rebecca: I’m working on two books; whether they’re great or not isn’t for me to judge. I’m updating ADO.Net Step by Step for Microsoft Press, and working on a SQL Server 2005 tutorial for Addison-Wesley (title to be determined, along with a bunch of other things. You’re right: Getting the contract is the easy part!).
Doug: Can you think of a cool tip or trick that many database developers do not know about?
Rebecca: You’re probably looking for some snippy bit of code, but as I’ve said, I’m an "if it works, nail it" programmer; I leave the tricky stuff to guys like you. But one thing I really wish developers did more often is walk through the system from the user’s point of view. I talk about this (ad infinitum) in Seeing Data, but you should take an hour or so and work though it: "The user is going to get this piece of paper and enter information here and here, and…oops." Finding those "oops" places makes a world of difference in the usability of a system.
Doug: What music do you listen to these days?
Rebecca: I’ve always been a jazz girl, but much to my surprise, I’m listening to country these days. (It’s no surprise that there’s a man involved.) I always thought country was twang and whining and love songs to pick up trucks, but of course I was wrong. So these days it’s Keith Urban and George Strait more often than Jean-Pierre Rampal, Louis or Ella.
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 firstname.lastname@example.org include "Database Geek of the Week suggestion" in the subject line.