End of a mISV: Lessons Learned #1
Stick with what you know. I've been working on the web and web applications since the beginning. Almost all of my professional development jobs have involved web applications or their backend interactions, and that is where 95% of my experience lies. So when I started ChimSoft, what made me choose to make a desktop app? Well, as I mentioned before, ChimSoft was originally an application for Automotive shop management. I started the autoshop program as a desktop application because I thought I really needed to learn WinForms to strengthen my skill set. And I had a customer in mind for that app, for whom a web application definitely would not work. Winforms did end up being the right tool for this job. At one point last year, I surveyed our customers about having a web version of ChimSoft. There was unanimous confusion and dislike.
If I had to give a primary reason for ending the development of ChimSoft, it would be the fact that it is a desktop app. For any new mISV's out there, if at all possible, make a web app! Desktop apps allow much more functionality and speed, but they are an absolute nightmare for support. Even with our relatively small customer base, there was always something that was not working on someone's computer. In my "lab" I had virtual machines that ran Win 98, ME, 2000, XP, and Vista with various configurations. I always ran through a battery of tests on those machines before deploying. But still there would be random issues with one person's computer. Norton is a problem. Novell gives a certain problem. Having a certain resolution made a problem. For some reason a 3rd party library breaks on 1/10th of the installs. The installer has a problem. Even though I tested on all of my friends, family's, and virtual PCs, there still were random problems that would pop up that require hours of support, troubleshooting and development. Sometimes after all that, you find out it's another program that's breaking yours. This is extremely frustrating as a developer, because it makes your quality look shoddy, yet a through test really was performed. Next, theres the problem of 50 people having 36 different versions. I had a built in "Check for Updates" feature, but few people explored this on their own, and I did not have it running by default. Since ChimSoft uses a database, keeping this schema updated was also a pain.
The next issue with desktop apps is that I had never done one before! So when I started adding advanced features such as DVR capabilities (To record chimney scanning video), or I was working on the interface, I had no original code to draw on, or interface experience. The result is that the ChimSoft interface has been rewritten several times to be the most usable. One positive of this is that because I did not have a "real windows" app to draw on, most of the reason people buy ChimSoft is that it is so much easier to use then the competition, who look very much like your typical programmer-design Windows app.
BTW this is not meant as a volley in the Web app vs Desktop app debate. I still think for this specific type of software, it MUST be a desktop app. All I am saying here is that I am not the best person to be working on such a thing, and I wouldn't doubt a "real" Windows app developer would enjoy working on this a lot more.