Keith Pleas Blog

Keith's palimpsest

VB gets a little respect. Very little. Tiny, even.

Joel Spolsky wrote an excellent piece about software prototypes entitled "The Iceberg Secret, Revealed" back in February, and I just ran across it. As I mentioned last month, I did some contracting for Joel circa 1992.

[krp: I originally identified Joel as a Mac-head, then as a Java-head (see comments)] Imagine my surprise when - in his piece on prototypes - he actually referred to VB! Specifically, he said "...mockups, created in Photoshop, not even VB." So, hey, VB's a better mockup tool than...Photoshop? Well, I guess we have to take our victories where we can.

Anyway, I did dozens of VB prototypes for Microsoft in the 90s. I did a bunch for the "Cairo" UI, the original demos for handheld devices back when Microsoft was trying to interest Japanese manufacturers (I think some of the lessons learned have been forgotten in the interim), all of the prototypes for the Microsoft At Work (or "MAW", over my loud objections) devices, and even a cool little consumer app for subscribing to and reading comics online (which required lots of, um, research ). Probably my favorite was a visual programming tool for gradeschoolers that Bill himself was supposed to be excited about. Ironically, while he actually presented a bunch of my demos, sometimes in public keynotes, it was always someone else who showed him how it worked. I also tested a lot of these things in the usability labs, which was always a humbling experience. You've got the most obvious feature, and the "user" can't find it to save their lives. Even with someone sitting there saying "this feature is on the screen you are looking at" they say "no, it isn't".

Often I worked with designers, translating their ideas into something that could be demo'ed and tested. Of course, they used Macromedia Director, not Photoshop. And sometimes things got lost between the prototype and the final product. Tabbed dialogs are a great example: The designer (and I) build in smooth animation showing the selected tab coming forward. The developer says, screw that, I'll just blit the thing and save a bunch of cpu cycles. And the designers overcomensate, so we get crap like the flying folder animations. At least Microsoft at that time had a central design vision and a chief UI designer, Virginia Howlett. She even wrote a book about UI design for Windows (I was the tech editor).

Of course, I also wrote important, production code using VB. Let's see, there was the MindMaze game in the first version of Encarta. And the "Tour" that shipped with Windows 95 (and the reason it came with the VB3 runtime). OK, maybe that stuff wasn't really so important after all. But at least it wasn't Microsoft "Profit", that best forgotten accounting package that was developed by Great Plains. May it rest in peace.

So...much of what Joel said in his prototyping piece rang true for me. In particular, his admonition to do what you think is best rather than to always give the customer what they said they wanted. Frank Lloyd Wright did exactly that, and look where he ended up. Which reminds me of the time I put zooming and panning into the MAW fax prototype, even though the PM told me to delete it. Then Brad Silverberg accidentally demonstrated it to a meeting of the entire Windows 95 team and everybody went "wow"! Sometimes you win, and other times...well, as Keynes said, "in the long run we're all dead anyway".

Comments

TrackBack said:

SBC DotNet Weblog
# May 20, 2003 2:37 AM

Ben Richardson said:

Joel isn't a Mac-head, all his products are developed for the Windows environment, and he has said he doesn't intend moving CityDesk (one of his 2 products) to the Mac platform. Did I miss-interpret "Mac-head"?

For more on Joel and VB check out this article, he discusses how they used VB for CityDesk.
# May 20, 2003 3:12 AM

Keith Pleas said:

Oops, yes, my mistake. He's a Java-head. <g> I think I'll edit the post and fix that...
# May 20, 2003 3:23 AM

SBC said:

http://dotnetweblogs.com/sbchatterjee/posts/7270.aspx
# May 20, 2003 6:17 AM

Historian said:

Do you know of any screen shots that are publically available of the "Cairo" UI?
# May 20, 2003 6:54 AM

JFP said:

His latest piece on prototyping is fundamentally flawed. He explains how it took a couple of interns all summer to generate a prototype which a staff engineer could implement in a week. No kidding! An experienced staff engineer could prototype it in about 1 day. To then conclude that prototyping doesn't save time is completely wrong.
# May 20, 2003 7:16 AM

RNC said:

Joel is neither a Mac-head nor a Java-head. His company's two main products, CityDesk and FogBugz are written in VB and ASP. I think CityDesk is an excellent example of what VB is capable of. That said, I look forward to moving to .NET and leaving a lot of the VB6 quirkiness behind.
# May 20, 2003 8:19 AM

Keith Pleas said:

Hmm...I'm going to have to retract even the Java-head thing, but I know where I got it: His personal home page mentions Java programming, but not any other languages. Looking at his resume, though, it's clear he's been developing in any number of languages, and clearly recenly focused on .NET.
# May 20, 2003 8:57 AM

Matt H said:

The poster above is right. Joel Codes in VB and ASP, then uses C++ for the "heavy lifting."

Do read his architecture descisions for citydesk on www.joelonsoftware.com for yourself. Of course he likes VB, it's the main language that's he's using!

This is like saying "Hey, even Kent Beck likes Extreme Programming" or "Hey, even Larry Wall likes Perl" - not quite, but pretty close.

geez.

# May 20, 2003 9:00 AM

Keith Pleas said:

OK, so I fixed (and annotated) the comment about Joel. Is that the right way to do it? Dunno. Mybe I need a new post about corrections / retractions. <g>
# May 20, 2003 9:04 AM

Ged Byrne said:

You really do need to read that article:

http://www.joelonsoftware.com/articles/fog0000000006.html

Joel Loves VB:
"What I wondered was, what happens if you take top-notch C++ programmers who dream in pointers, and let them code in VB. What I discovered at Fog Creek was that they become super-efficient coding machines. "

Joel is no Java Head:
"What about Java? Yes, I've used Java extensively, but unfortunately the language, the code libraries, and especially the GUI libraries are just too primitive for a commercial desktop application."
# May 20, 2003 10:45 AM

William Beem said:

Ok, let me see if I understand this correctly. If we ignore what the customer wants and just develop what we think he needs, why do we need customers in the first place? After all, the customer doesn't want what we want.

There's a term for this suggestion of yours. It's called "Goldplating." That's what you call those flying folder animations you detest. It's crap that the developer added without any request for that function from the customer.

People who use software often have no idea how to communicate their true needs effectively. I've done enough requirements analysis to know the difference between what they say and what they want. Nevertheless, we still have to give them software based upon their needs. After all, they're the ones who have to use it to perform their job.
# May 22, 2003 11:18 PM
Leave a Comment

(required) 

(required) 

(optional)

(required)