I picked back up a project for a friend. It’s a decidedly non-spiffy business-logic sort of problem, which makes it hard to keep focus on outside of a work environment, but it’s something that would make a world of difference to her.
I decided to use WPF, because I haven’t done anything other than trivial exercises with that technology. We’d talked about platform (Windows XP) and whether she was allowed to install stuff on the work computer (yes).
I decided, and got her agreement, to send her very frequent releases. In addition to all the usual reasons to do this, I thought it would be a good mechanism for keeping my focus on the problem. I started with the smallest possible release: a program that opened a window, installed by an installer.
Almost immediately, we hit a bump: I’d expected to need to upgrade the version of .NET on her computer to 3.5. I hadn’t realized that, since it was also the only cash register, the computer could not be rebooted during the work day. Downgrading the technology used would not be fun, since the computer had no versions of .NET whatsoever. The next few work days were going to be long ones, so she had no interest in sitting in the store with me for an extra hour after her shift was over, nor could she leave me in the store alone to do the installation.
We’re completely changing the technology stack and going with a Web-based solution. Total time lost, between making the first release and researching the no-reboot issue: one hour. Woohoo!