Dave Churchville's blog

Vacations, Adaptation, and Software Project Success

If we managed software projects the way we manage vacation trips, the success rate would skyrocket.

When my wife and I planned our last vacation to Seattle, a city I had never visited, we had bunch of unknowns.

Where was the best area to stay? What did we want to see? Was it the best time of year to go? Can we get a good deal? How long should we stay? What are the best places to eat?

Just like on a new software project, there was no way to know any of these things for sure, even though we read a few guide books, and talked to a few friends who had been there a few years ago.

Finding a Thirsty Crowd for Your Software

Why do so many independent software developers develop a great product, with great features, and watch it quietly fade into oblivion due to total lack of interest?

The cliche is to say "Well, I just don't understand marketing."

I've got a simple formula for anyone who doesn't understand marketing:

1. Create an amazing offer for your product or service
2. Offer it to a thirsty crowd, desperate for it
3. Follow up with that crowd for repeat business

That's it. Now, let's tackle each of those points in a little more detail.

Your Own Test Lab, Minus the Lab and the PCs

Ever need to see if your web site or application works properly under Firefox on Linux? IE on Macintosh? Wide-screen resolution on Windows XP?

If you're a small development shop, you probably can't afford to buy all of the hardware and software configurations you'd need. While there are virtualization solutions like VirtualPC or VMWare, you'd also need to buy and install each OS platform before you can even start. Oh, and you'll need 2GB of RAM to run these at better than a crawl.

Enter BrowserCam, a web-based service that offers several ways to test your web apps or site with a minimum of fuss.

The basic service lets you automatically take snapshots of your website on a variety of platforms (from Windows 98 to Mac OSX to Linux), and a variety of browsers (Firefox, Netscape, IE, Safari, Konqueror, etc.). Just enter a URL, and the service does the rest.

If you need more hands-on testing, a Remote Access service is available to play with your application on all of these platforms. This requires a VNC client or you can use their built-in Java VNC client from your Web browser.

Why Bug Fixing Can Be Hazardous To Your Project

Stop fixing that bug right now! You could be putting your project at risk without even knowing it.

When I first started developing software over 15 years ago, I thought that bugs were evil, and should never appear in any software. It was a matter of personal honor, integrity, and pride to eliminate any bugs.

Only one problem with that approach. There is an opportunity cost to every bug you fix. And there is a risk factor as well.

Why Architecture Is a Really Long Four Letter Word

Before I start, let me just say that I've held positions as "Chief Architect" at a startup, as well as managed a group called "Systems Technology Architecture" at a large Fortune 500 company.

OK, now that we've got that out of the way, architecture is often the bane of successful software development. Focusing on creating the proper architecture for all systems can reduce the ability for a company to manuever quickly, and increase expenses to a level that only companies with huge IT budgets can afford.

Now, before the flame-throwers come out, let me explain.

It's Better To Look Good Than To Be Good

It's hard to swallow, but here it is: Nice looking things are perceived as more usable by users, regardless of whether they actually are. And what's more, nice looking products get a lot more tolerance from users when things go wrong.

For software, this means that you can build a great, usable interface that looks a little shoddy, and you could be ignored in favor of a flashy, "Web 2.0" application that doesn't do half of what you do, and is of mediocre usability.

Just Say No...To Your Customers?

"Can you add a Whizzy-Woo in the next release? It should be easy since you've already got a Doo-Dad-Adapter."

Ever get one of these requests from a customer? If you're trying to build a clean, usable, and effective application, the answer should always be NO initially.

But isn't the customer always right? Not about features.

Quick and dirty prototyping

Quietly, under the cover of darkness and the Business of Software forums, I've been spreading the corrupting CodeSnipers influence to pull more people into the inner circle. I'm honored to have our latest victim aboard. The author of Agile Project Planning... Dave Churchville. - Editor.

"Just tell me what you want and I'll build it!"

What programmer hasn't uttered those fateful words? The problem is that even though users often know what problem they have, they are rarely the best people to tell you how to solve it.

Enter the prototype. Developers either hate them or love them, depending on their experience. If you've ever built a sophisticated prototype that faithfully re-created the entire application, only to have it forced into production, you probably hate prototypes. Or worse, maybe no one even bothered to look at it!