I’m growing increasingly frustrated with amateur software. Before I explain why, let me first be clear on what I do not mean by amateur.
- Amateur does not mean low quality. Some amateur software is outstanding, and some professional software is terrible.
- Amateur does not mean open source. Some amateur projects are open source and some are not.
I’m using “amateur software” to mean software projects developed by volunteers. I imagine most amateur software is written by professional developers. These are folks paid to write software for a company by day who then work on something else they love by night.
Open source software is not necessarily amateur software. Linux, for example, is now professional software. Around 75% of Linux kernel development is carried out by people paid to work on Linux. Some of the best software is both open source and at least partially professional.
Volunteers do what they want to do by definition. The problem is that the reverse is also true: volunteers do not do what they do not want to do. And for software developers, writing documentation usually falls in the “do not want to do” column. So does making software easy to install. So does testing in multiple environments.
When a company has an interest in a piece of software, they can pay people to do the tasks the volunteers don’t want to do. In fact, if they’re smart, they will concentrate their efforts precisely on the tasks volunteers don’t want to do. In this way even one or two paid staff can make an enormous contribution to a largely volunteer project.
Some amateur projects are highly polished. These may be small projects lead by rare individuals who pay attention to details beyond pure software development. More often, these are large mature projects that have so many volunteers that they have a few who are willing to do tasks that most developers do not want to do.
To be honest with you, if it doesn’t install cleanly, I give up.
Scanty documentation, on the other hand, I think you just have to live with.
For a really stunning piece of open source software check out stellarium
http://www.stellarium.org/
I cannot believe the level of visual polish they’ve achieved in this thing – so not like amateur software.
I used it to locate Mars last week, then went outside my front door and saw Mars for real. You could see the reddy colour – I was quite blown away.
I’ve used Stellarium a little, and I agree it’s quite impressive.
I’m not so concerned with a difficult install per se, but a difficult install often foreshadows more problems to come.
I don’t have the Python chops (yet) to do anything useful with it, but Sage is a nice piece of amateur software that installs pretty nicely and is heavily documented.
Actually, I’ve been thinking more about this lately, and about what I might want to do upon (finally) graduating (undergrad) in June. After reading Prof. Ince’s column in the Guardian, entitled “If you’re going to do good science, release the computer code too,” I’m thinking that there is a lot of room in science for improved–to use your term–amateur software. If scientists might better apply their time to the construction and execution of experiments and measurement exercises, and especially if their code is notably fraught with bugs and poor documentation, maybe an organized cabal of programmers could shoulder that mantel. Which is a digression of sorts, but seemed at least tangentially applicable.
Daniel, I agree that scientists need to release their code more often. Statistical analyses are often irreproducible.
But I’m afraid I have to disagree about SAGE, at least on Windows. SAGE doesn’t actually run on Windows, but the SAGE web site offers a few alternatives. They offer a bootable CD to run Linux, but I was unable to download the image. They also explain how to SAGE via Linux in a VirtualBox. With some effort I eventually got that to work. Maybe SAGE works smoothly once you get past the installation.
While I understand the frustration, what is to be done about this problem? There are bad window washers, bad dog owners, and bad dentists. In most cases, I would guess that poor performance results from failing to attend to small details that are boring, unrewarding, or difficult. This doesn’t seem to me to be just a software problem, but rather a societal one. Can people be taught to care about the details?
I share your concerns with what you describe as “amateur” software. But, I would also voice a concern about most “open-source” software as well (though certainly not all). We are quickly arriving into a time when professionals will be held responsible for the “solutions” yielded by the software they select and employ. In such an environment, due diligence on the reliability and validity of software applications becomes a matter of survival. If I am going to bond on a software-derived “solution,” then I need to be absolutely certain that the produced results meet certain professional standards, and frankly, it is difficult to gather evidence as to the reliability and validity of software applications that are not professional produced and maintained (ironically, professionals are often reluctant to attest to the reliability and validity of open-source software). Of course, there are exceptions to my observations. However, I tend to take the reliability and validity issues very seriously in professional practice — my clients demand that from me. Thanks for the opportunity to comment.
@John
Hmm. Then I’ll concur with you on Sage. The fact that it installs without a hitch on my machine, running only Linux, only means that it’s not as frustrating as it could be.
@Jeff & @William
I guess what you’re pointing to is a gap in the measure of reliability, which is why we hear about J.D. Powers & Associates every other commercial break, and how The Deck (ad network) is built the way it is. There seems no hope in concluding other than that we’ll always have some garbage in the stream. Is there currently, potential demand for, a means of collecting reviews of various products, a standard battery of evaluative measures, or something? Like Epinions, only not horrible (irony intended).
Jeff, as to what we can do, it depends on whether we’re consumers or producers. As a consumer, I’m leery about learning software that’s going to be an ongoing time sink, whether the software is amateur or professional. So beyond just asking whether some software appears to do what you want, you have to estimate what the long term cost of using the software will be. “Cost” includes time and money.
As software producers, we can behave professionally, even if we’re not working on a professional project. We can test documentation. I’m amazed that software projects will test their software but never test their documentation. Hire someone off the street to install your software and do some simple task with it. Make a video of their experience. Or if you can’t hire someone, ask your brother in law to do it. But run your software by at least one person who isn’t intimately familiar with it.
I’m not too sure what there is to be frustrated about. You probably want to write a follow-up to this blog post.
>>I’m growing increasingly frustrated with amateur software.
I think you forgot to answer your first sentence. Or I don’t think I understood if you did answer it.
The lack of quality in software development isn’t a problem at all, it’s just a fact. Amateur, professional, it doesn’t really matter to me if someone was paid to do something or wasn’t, if using it is a waste of my time it’s a waste of my time. And my time is worth more to me than the up-front cost of an average commercial product (unless you’re talking about an “enterprise” license that costs six-figures).
I don’t buy commercial software of amateur quality; let the company go out of business. If I accidentally pay for commercial software and the quality sucks, I let others know about my mistake and do more homework next time. Luckily, I got in the habit of doing decision analysis research at work for software purchases, and I carried that habit into my personal life. It helps! I avoid crappy free software like the plague. When I make mistakes with choosing free software (and I have), I usually did it to myself; too eager to save a few bucks so not enough research. Live and learn. But I fanatically support professional-quality free software, because it really is where a lot of the innovation in software development is coming from.
The world isn’t going to all of a sudden start producing nothing but high-quality software (or anything else), so remember… Caveat emptor.