Needs Improvement

Colin Coller's Blog
Posts: 62 | Comments: 156 | TrackBacks: ?

February 17, 2005

Always Be Ready To Demonstrate

The company I work for develops its software without clients. Oh, they have clients who buy their software, but the company won't involve them in the development process, not until the software is ready to be released, when the salespeople will show them the software, ask them for their opinion on the fonts and colors, and try to sell them a 25-pack. (We never actually change the fonts and colors.)

Instead, the company will assemble a small committee of employees whose jobs are related to the product in some way, and the committee will act as a mock client, representing the interests of all of the comany's real, paying clients. That's how it works in Saskatchewan software magic land, anyway. In reality, the people on the committee represent their own interests and try to maintain the status quo. Or they just don't care. The salespeople are busy trying to make their numbers, the support people are busy supporting clients, the production people are busy producing, the executives are busy executing. Nobody wants to change anything if it means having to change. Nobody wants more work.

Where this approach is hurting us the most is in the user interface and the feature set. We all know our products are terrible. Hell, you could do a song and dance number on how terrible they are outside the executive offices without anyone taking offence. Yet when it's time to release a new version, the people on the committee will veto anything not status quo. We recently contracted a user interface designer to redesign the interface to one of our mid-90s-browser-chic products. He came back with a great design, and for a while it looked like we'd finally have a product we'd be proud to claim as our own, but then the committee vetoed it, and replaced it with a 9-nested-HTML-frame monstrosity they designed themselves based on our existing interface. The interface is so ugly it would make the blind cry, if it weren't impossibly inaccessible to screen readers.

Anyway, rather than resign myself to developing my product for the committee, I decided to develop the product for the entire company. I want to involve as many people and as many roles as possible. I want everyone to see, use, test, and, most importantly, get excited about the software as it's being developed. The more people are interested in the software, the more leverage I'll have to force the committee to make the right decisions.

I'm following the AlwaysBeReadyToDemonstrate principle:

  • DailyBuild. The latest version of the product is built and deployed on a preview server every day. The build and deployment process is completely automated.
  • AlwaysBeReadyToShip. The latest version of the product always does something useful and is always in a releaseable state.
  • It has to be easy for anyone in the company to use the latest version of the product. There's a single preview server and a very short preview URL. Preview logins and accounts are created automatically and associated with your Windows identity when you arrive at the preview URL (no usernames or passwords to remember). Preview databases are rebuilt nightly with realistic sample data. I should always be able to say "Hey, open a new browser window, I've got something to show you." and then actually show them what I've been working on.
  • New features have to strike a balance between sizzle and steak. When I talk to a coworker I haven't talked to for a few days, I should always have a lot of little "that's nice" features and at least one "WOW!" feature to show them. I can't work on the framework for weeks or even days without something cool to show for it.

So far the principle has worked very well. I've been releasing a new version every day, showing it off, soliciting feedback, and generally getting people excited about it. It hasn't taken up too much of my time. The executive and the committee haven't tried to crush me (possibly because they know I'm leaving in a month and a half and I might just ignore them). If it continues to work out, I hope to expand outside the company and get real clients involved.

Have any of you done anything like this? Or heard of anyone doing anything like this? Or have any thoughts or suggestions on the principle?

Cheers,

Colin

07:02 PM | Colin