By Dan Cooperstock.
I find myself in the somewhat unusual position of running a one-person software-development organization, for a no-charge (but not open source) application software program. DONATION is used by churches and charities, primarily in the USA and Canada, to track their charitable donors and donations, and to issue receipts. The program has over 2,400 registered users. I also have a full-time job, so I work on DONATION in my “spare time”.
There is a very wide range of skills and tasks involved in this type of enterprise. I trust that this recounting of my experiences will help you to understand all the roles that are required, beyond just coding, to create a successful one person “company”. This project is rather different from most open source projects, which are most commonly aimed at programmers rather than end-users.
In 1993, my faith community (a Quaker Meeting) was using a commercial program for tracking donations. That program started losing and mangling data, and I found out that it didn”t have sufficient referential integrity. I decided to write something better. That was a DOS-based program written in C. In 1999, I re-wrote it as a Windows program using Sybase PowerBuilder, with Sybase SQL Anywhere (now called Adaptive Server Anywhere) as the database back-end. Having put so much work into it for just one user thus far, I decided to make it available for free downloading on the web.
I don”t think I would ever have attempted such an enterprise if I hadn”t previously worked in very small software development shops, where I had to do a large variety of tasks myself.
The first task was obviously to create a software program. The requirements were:
- I would want to use myself if I found myself doing such a task.
- It had to be of sufficient quality and robustness to be used by others.
- It had to be easy to use and learn (at least for the most-used features).
- It would concentrate on tracking donors and donations.
- I would not branch out into other areas such as specific handling of memberships, other aspects of accounting, etc.
I have added many features to DONATION over the years, including a mail-merge feature and custom and standard reports, but these are still the main requirements. Most improvements have been in response to user requests, or due to changes in legal requirements.
I have always used tools that I already had experience with. When I converted the program to PowerBuilder, I had already been using PowerBuilder for over 5 years, and had very strong experience with SQL databases, including SQL Anywhere.
It has been absolutely crucial that I do careful testing of my own work. Although at times I have gotten others involved in the process, including my spouse, co-workers, and power users, the primary responsibility for quality and thorough testing rests with me. Fortunately, I have job experience of testing the work of my direct reports in situations where I was a team leader, and I am a rather fierce and picky tester!
Installation Software Builder
A program such as this has to have a bullet-proof installation program. I had previous experience with InstallShield, so I started out with that, but in recent years I have switched to Setup Factory. I have always tried to keep the installers as small as possible, because many of my users have old computers with slow Internet connections.
I have created versions both for original installs, and for upgrades. Currently the full program download is about 8MB, but for many years it was under 5MB. The upgrade version is only about 1.4MB ” small enough to fit on a diskette. There is an option to download the full installer to several diskettes, for those computers that don”t have an Internet connection.
I also developed a PowerBuilder mailer program that sends notices of new versions to all of my users, taking its names and email address from my Outlook contacts. Each periodic mailing to over 2,000 users results in quite a few bounces, so I developed an Outlook macro to quickly process those bounces. The macro helps me to look at the user organization”s web site to try to find another email address, or if that fails, to remove them from my user list.
I have written virtually all of the program”s documentation. I create a Windows help file and PDF manual from the same source. The PDF manual is about 100 pages long. This was done originally in RoboHelp, but more recently I have been using Help & Manual.
In both this case and the case of the installation software builder, I switched software when I needed a newer version, because the software I had been using was too expensive for DONATION”s budget.
A small team of technical writing students from a local community college also wrote a web-based online training system for DONATION as a class project. It was largely based on my manual, but also included a lot of screen shots which my manual does not have.
Although I haven”t done any literal fundraising, one thing I have done is ask some of the vendors of software tools that I use whether they could supply me with free or discounted versions. Because the program is for non-profits, and I am not attempting to make a profit on it, several of them have been kind enough to do so.
In addition, a few years back I made it known that although I did not ever expect any payment for the program, I would accept voluntary contributions. A small fraction of my users do make contributions, which generally pays for my expenses, if not my time.
Technical Support Person
I do all of the technical support. I strongly encourage this to be by email, though for complex problems I do work with the users on the phone as well. I probably average a new question every couple of days. Fortunately, most of the questions are simple how-to”s.
I also started a web-based technical support forum a few years back, on which I answer all of the questions, so that users can go there to see the answers to previously-answered questions or enter their own questions. I seeded it with frequently-asked questions. I also sometimes refer questions that arrive by email to existing answers on the forum.
I registered a domain, and designed and coded the web site, including a CGI-based user registration form. I kept it very simple, to work well on slow connections. I dealt with a bit too much excitement recently when a spammer discovered that they could send hacked inputs to my registration form in order to send out spam. That required a quick effort to block those vulnerabilities.
Another interesting bit of coding was writing an Outlook macro to take the email I receive from the registration form, copy it into a new Outlook contact, and draft an email reply to the registration. It prompts for the type of user, including their country, which determines some of the text in the response. This greatly sped up my handling of registrations.
I “market” DONATION by getting it listed on web sites that list software for non-profits. Most people still find it via Google.
The DONATION web site has a page listing helpful sites for non-profits, as well as competitive commercial and free programs, so that potential users can make an educated decision about what to use.
Another piece of marketing is to list some of the many wonderful comments I”ve received about the program on a “Reviews” page on the web site.
When a relative who was about my age died this year, I realized I needed a backup plan for the support of my users should anything happen to me. I launched a search for another volunteer with similar skills who might be inclined to take DONATION over eventually. I was fortunate to find such a person.
Although I usually spend only a few minutes per day on DONATION, mostly handling registrations, at times it is much more work. It is more than worth it, though, both in knowing that my program is being of use to so many non-profit organizations, and in the great feedback I get from users. I feel lucky to have the range of skills required to make such an enterprise work.
Dan Cooperstock has been a software developer for over 20 years, and currently works for Quest Software Inc. He can be reached for questions about DONATION at info@FreeDonationSoftware.org. The program”s web site is http://www.FreeDonationSoftware.org.