Friday, October 01, 2010

Advice to amateur programmers

If you know a bit about programming and have been thinking of writing a ham radio application, here's a word of advice. Don't. If you do, it will take over your hobby, your spare time will never be the same again and you'll be lucky to receive much thanks for it.

First, you'll have to spend countless hours answering emails that ask the same basic questions. You'll have to do this no matter how much time you put into writing documentation or creating an FAQ or a wiki, because no-one will read it. And believe me, starting the day with an inbox full of the same old questions gets tiresome very quickly.

Second, you'll be expected to know why your program won't run on a user's computer, without being given any idea what kind of computer it is or what version of operating system it uses. If the user has done anything that might affect your program's ability to run, you won't be told that either. And beware if you should choose not to spend too much time looking into someone's obscure problem. One user of VOAProp who had a problem several years ago that I was unwilling to solve threatened to write to the RSGB accusing me of lacking in ham spirit. That bruising encounter is one reason I gave up developing programs for the hobby completely and now make it as clear as I possibly can that the programs I wrote continue to be available on the sole condition that I provide absolutely no support for them whatsoever.

Third, you'll receive a lot of requests from armchair programmers for changes and improvements. Some of these might be good ideas, though you still may not want to implement them. But many will be things that only that person thinks is a good idea, quite possibly because they haven't read the instructions or understood how the program is supposed to be used. These requests will contain no acknowledgement of the amount of time you will have to spend making these suggestions happen. You'll have the job of justifying why you shouldn't spend several hours or days coding some function that you personally have no interest in using. And some people find it hard to take "no" for an answer. If you wanted to write programs to someone else's spec you'd get a job as a programmer, wouldn't you? Then at least you'd be paid for it.

Last, but by no means least, you'll get complaints about bugs. Yes, complaints, even if your program is free. Often, these emails will be the first contact you ever have with that particular user. But don't expect them to start with any pleasantries. If you are particularly unlucky, as I was with one email I received from someone who couldn't get KComm to run, you'll be blamed for wasting their time. Sometimes the "bugs" will be due to user error or failing to read the instructions, but it's rare that you'll receive an apology after pointing that out. And believe me, those who complain most bitterly won't get the joke if you offer to refund what they paid for the software.

Fortunately there are users who will make you feel that your effort is worthwhile. You might even be lucky and build a team of online friends who test your program and give you useful feedback about it. But it doesn't take many of the other sort of comments to make you wonder why you bother. If you develop your program solely for your own use you will save yourself a lot of trouble.

It's a good job no-one takes my advice because if ham programmers didn't release their programs for free and put up with all the brickbats I've described the hobby would be a lot poorer for it. But if you've ever seen a program mentioned in some old forum posting and been unable to find a copy of it, now you know why.

So next time you use a bit of free ham radio software ask yourself: Did I remember to say thank you for it? Before bothering the developer with a question, take the time to read the documentation and search any relevant forum for the answer. And if you think you found a bug or have a suggestion for an improvement, try not to make it sound like a criticism or a demand. A little tact goes a long way.


Ed N4EMG said...

I've had a strong fascination with logging programs - I hesitate to call it a fetish, that sounds kind of scary - and my conclusions are that many of the free offerings are as good as, or better than the pay programs. In a couple of cases, far better. So, when I find one that I like, I at least try and drop the author, or authors, an email expressing my thanks.

Nevertheless, if you go and read some of the forums set up to support these free loggers, you'll find several posts from disgruntled users because it doesn't do something like their previous logger did. Fine, go back to using it then. Many write in a condescending tone, almost as if to point out the author's stupidity (in their view), and then expect an immediate reply and fix for their own personal problem. They become infuriated when the author replies and tries to tell them that, indeed, they can do the same thing in both loggers, and if they'd bother to read the help file, they'd know that.

I write software for the industrial control sector. I get paid for what I do. I can take a beating, when necessary, because they're paying good money and they expect things to perform as they expected. I wouldn't do it for free, though, not in a million years.

73 Ed

Theodore said...

What else do you expect Julian?
Even in the bible, after being cured of leprosy only one in ten came back to say thanks.
It is difficult to underestimate peoples lack of courtesy and manners.
People have been taught to only value that for which they pay.
My brother in law was trying to get more programming business.
He was advised to double his rates - he did, and received both more business and respect.

If you give your work away it will simply not be respected.
- Humans 101.


Lynn (D) said...

Too true, too true. If you're going to release your pet project for public use, it doesn't matter how many disclaimers you make, someone will always come back to complain.

If you do decide to do it anyway, develop a thick skin, you're going to need it.

Lynn (D) - Author of APRSISCE for Windows Mobile and Win32

goody said...

Hi Julian. I know you wrote this almost two years ago, but having been on both sides of this as a user and author of free software, I feel compelled to add my two cents (or two pence :-). Some of the problems and annoyances you mention can be solved by offering the software as open source. If an armchair programmer wants a feature, the ownness can be placed on them to write the code. The user community can better support a program if the source is freely available, freeing the author for other more valuable tasks like writing code. And if the author decides they are no longer interested in maintaining a program, the user community can continue to develop and maintain the program if there's interest. I don't understand why more amateur radio freeware authors don't do open source, other than perhaps having commercial aspirations for their products.

Unknown said...

I agree, I have learned that lesson. With my later programs written in Free Pascal I have made the source code available under GPL. Earlier ones however included code I was not allowed to distribute.