I’ve been watching the results of the first Beta of another piece of software the last couple days by a developer we’ll call BetaMaker. I even tried it out. It has problems, like every other incomplete piece of software. The sheer number of problems is larger than I expected, and I’ve been trying to understand why that would be.
Ultimately, I think it stems from using large scale development methodology with a small scale team.
Everyone who has used software on a computer for any length of time these days understands what a beta is. It’s a version of the software that is incomplete and may have bugs. Usually, a beta build comes after an alpha build that is not made public. A beta build is often the first public release of a piece of software.
Beta’s work great for large teams making large pieces of software. They generally have testing resources that test each build on large numbers of configurations of computers over the course of the development cycle. Beta’s are generally supposed to be feature complete, and close to release, but may have bugs.
I’m a lone developer. I have a limited number of fingers, eyes, and brains (some might suggest that my brains are more limited than other parts). I also have a limited number of computers. In other words, I can’t replicate the testing that goes on in a large development team employing a typical development cycle.
Developers create bugs while they are writing software. They don’t see them for any number of reasons, including poor planning, incomplete understanding of the problem space, blindness, and fatigue, among others. Bugs are easiest to fix when they are caught close to the time that they are created. The code is fresh in the developers mind and there aren’t layers and layers of other code on top of what was just done.
Since I can’t code and test at the same time, and I have other limited resources, if I followed the alpha, beta, release style of development, when I reached beta, there would have likely been a large number of bugs lurking that are hard to find because they exist in code I hadn’t looked at in six months or more. This, I think, is what’s happening to BetaMaker.
To solve that problem, I do lots of incremental releases with a limited number of changes. You get new features on a regular basis and the bugs that slip out are quickly fixed when found. The best thing is that StoryBox has been relatively stable since about three months into development, unlike BetaMaker who spent two years building something without anyone seeing it, only to find themselves snowed under with issues.