Southwest Fox

If all goes well (and I budget appropriately), I am seriously hoping to attend the Southwest Fox 2005 conference in October. I’m going to miss the early-bird deadline (save $50 off the registration fee if you register by the end of this week), but it still seems a bargain even at the full price.

From the FAQ page:

Why should I attend Southwest Fox? Our goal at Southwest Fox is to is to provide the latest Visual FoxPro training and education. We want to give you practical techniques and information that can be applied to the problems and challenges in your applications both today and in to the future. While anyone in our industry cannot afford to ignore the importance of .NET, the thrust of this conference and all of the sessions is Visual FoxPro. We have done a number of innovative things in order to hold our costs in line so that we can pass the savings on to our attendees. Phoenix is an economical destination from most locations and we have negotiated substantial discounts with all of the hotels in the immediate area.

Need another reason to attend? Try this one from the FAQ page:

What’s the weather like in Phoenix in October? There’s a very good reason that the Phoenix Metro is known as “the Valley of the Sun.” Day time temperatures even in mid-October generally range from the high 80’s to the low and mid 90’s. Shorts and t-shirts are perfectly acceptable. You’ll blend right in with the natives.

A great lineup of speakers and topics, and (hopefully) nice weather. Sounds like a great place to be!

Roadmap? Where?

Maybe I’m a bit dense today, but I just finished reading the “eagerly awaited, infamous” Visual FoxPro Roadmap, and I can only say, “Huh?”

Sedna (the code-name for the project to “expand on the ability of Visual FoxPro-based solutions to better integrate with other Microsoft products and technologies”) obviously is NOT going to be VFP 10 (it “requires” VFP 9).

In fact, I see nothing in this “definitive” Roadmap which suggests any further enhancements to VFP after SP1 and Sedna are released. In their effort to become more “transparent”, I’m personally a bit miffed about the cyclic references between the Roadmap and the VFP FAQ.

On the plus side, Ken’s June letter has the following entry:

.NET for Visual FoxPro Developers book online for free
The complete 500 page .NET for Visual FoxPro Developers book written by Kevin McNeish and edited by Cathi Gero is now online. This book has been made available through the cooperation between Hentzenwerke Publishing, Microsoft Corporation, and the book author Kevin McNeish.

Revised: OK, maybe I’m NOT dense. Maybe I’m just suffering from a bit of denial. I just read Craig Berntson’s blog entry about the Roadmap. For me, I think I’ll try to stick with VFP for another 10 years or so, and start “playing” with other tools for the future.

MegaFox… Still Relevant… Still Awesome!!!

I’ve been stuck lately in what feels like a never-ending project. Doing a lot COM work with VFP, and at times I seem to be spending more time scratching my head than coding.

This evening, I decided to stroll through my library of VFP books, and I decided to take another look at MegaFox: 1002 Things You Wanted To Know About Extending Visual FoxPro, written by Marcia Akins, Andy Kramek, and Rick Schummer.

Another read through Chapter 14: VFP and COM was just what I needed to get the juices flowing again. For the first time in a couple of weeks, I’m actually looking forward to working on the aforementioned never-ending project! Then I moved on to Chapter 15: Designing for Extensibility. The discussion of design patterns was a real eye-opener — again… Seems like I’ve “read“ about design patterns many times, but actually implementing them? Well, sort of.

Although the book came out around VFP 7.0, it is still very relevant today. If you haven’t read it, do yourself a favor and buy a copy. If you have already bought and read it, read it again. Many pearls of wisdom inside.

Thank you Marcia, Andy, and Rick for an excellent VFP resource!

Things I’ve Learned From Users

Remember Fernando, Billy Crystal’s character on Saturday Night Live back in the 80’s?

“It is better to look good than to feel good,” was one of his catchphrases. Another one was, “You look mah-vel-ous!”

I try to make my apps look mah-vel-ous, always trying to conform to Windows standards, and always trying to keep one eye on the future. I don’t want my app to look too outdated when a new version of Windows (or Office, or “insert any other mah-vel-ous looking app here“) is released.

A few years ago (think Office 97), I developed a bad habit of creating wizards for almost any activity you could perform in my apps. They looked modern (if your users had Office 97), and it was an easy way for me to dictate how the user used the app (remember this line, it haunts me daily).Want to add a new customer? Try the Add a New Customer Wizard. It’s really cool! And, most of all, it looks mah-vel-ous! Want to pack and reindex your tables? Try the File Optimization Wizard (I’m not kidding)It’s so cool, and easy to use! And, most of all, it looks mah-vel-ous!

You want gradient-looking forms? Sure, I can do that.

Smooth, animated controls on forms? I can do that, too.

Want the app to look as if it were a web page instead of a desktop app? Thanks to Rick Strahl, I can do that, too.

Want that “Longhorn“ feel? Yeah, I can do that, but it’ll cost extra. And you better quadruple my original time estimate to calculate the delivery date.

When I show my work to (some) other programmers, or people who use computers daily and are very knowledgeable about Windows and apps in general, they sometimes say, “Kev, that looks really good.“ On occasion, I might even get a “You can do that with FoxPro?“

But for every one of the “knowledgeable“ folks, I know a hundred people who have to use a computer for their work, but otherwise they’d like to throw the computer out the window. Most of the times I’ve been to client sites to see my app in action1 I get bombarded with questions and suggestions about the app. Some of the suggestions involve me jumping off a very high bridge and taking that stupid computer and piece of crap software with me.

“Piece of crap? But it looks so good!“

Client-site visits can be a wonderful resource, as long as I wear my Teflon suit (sometimes I can take criticism a bit harshly). Most of the time my role is typically designer, developer, tester2,debugger, documenter (does anyone really ever read the help files?), and deployer of the apps. With that much investment in the app, it can be tough to hear something critical about it. But the client-site visits are most informative when I actually listen to what the client has to say. Here’s a few bits of wisdom I’ve picked up from my “not-so-knowledgeable” customers:

  • They don’t care how it looks, they want it to work.
  • They don’t care how it works, as long as it is efficient and intuitive.
  • They don’t like it when apps intimidate them.
  • They don’t like to be taunted by an app with “You shouldn’t have done that, you big dummy!“ messages.
  • They don’t care if I use Collections, Arrays, or a combination of both.
  • They don’t care if they deleted the export file your app created for their accounting software after they purged the data from your app and before they imported it into the accounting package. They just want to get the data back — easily — so they can do the export again. And again, they don’t want to feel like a big dummy because they deleted the file.
  • If your app works 999 out of 1,000 times, users believe the app is a “piece of crap.“
  • They really don’t read the help files.

Hmmm. Maybe Fernando was wrong. Just because it’s pretty doesn’t make it good.

1 In case you were wondering, seeing my app in action means the users have had repeated problems I’ve been unable to recreate in-house, so I need to go show them the “proper” way to use it – remember the dictate how they use it line earlier in the post? I’m telling you, that one haunts me every day.

If you work as the sole tester on your own apps, you are doing a grave dis-service to yourself and your customers. Testing your own work exclusively guarantees that at least one user will use the dreaded “piece of crap” phrase when describing your app. It can also subliminally force you into dictating how the users use your app.