There was a time, “back then,” when a piece of software that was in Beta meant that the application was feature complete, and the developer was simply releasing the software to a small group of users in order to fix any remaining bugs before releasing the app to the general public. Google changed all that a few years ago when it released GMail to the general public as a beta. To this day, it’s still a beta – even though there are millions of users. That being said, I thought it would be nice to take a look at the definition of some typical software development terms, and what they meant “back then,” and what they really mean “now.” Read on for the definitions.
- The stage of development where there is no user interface, just a file full of code. Features are there, just not usable at this point.
- The application is only used by the developer himself.
- Generally, the existence of the app is only known by the developer.
- No time-frame is set, therefor no expectations are had by anyone.
- This is the stage of development where nothing really exists beyond a Photoshop mockup and a not-to-well thought out idea.
- The developer gets all his buddies to start hyping up the application.
- A ship date of “soon” is promised to the general public.
- Little details are given at this point, other than it’s the coolest thing anyone will ever see.
- Application is released to a small control group of users.
- Features and user interface are complete.
- A time-frame for the beta is set.
- Bugs are reported by users to the developer.
- The developer is busy fixing any remaining bugs, or visual imperfections in the interface.
- Application is released to the entire world. Everyone on the planet downloads the heavily-hyped application and begin using it in their every-day work.
- The application is FREE – as in: if it doesn’t work, it’s not our problem because you didn’t pay for it.
- Beta time drags on for months, or even years.
- The developer begins adding this feature and that because a single person said “they would buy it, if only it had…”
- After months of thorough beta testing, the product is finally released.
- Application is bug-free and feature complete.
- Developer starts working on new features to add to next version of application.
- The application, though it made it through the beta stage and didn’t get discontinued, sucks horribly and is filled with bugs and missing most of the hyped-up features.
- The application is overpriced by at least 30-70% – at least, according to the vocal minority of users.
- Developer announces he doesn’t provide support because he can’t charge enough (because you guys said you wouldn’t pay more than $5 for it when it was in beta) – instead, we direct your to our “support forums” where we hope another user can help you for free.
- Application breaks two days later after a minor OS security patch.
Discontinued or EOL (end of life)
- After years of active development, the application either no longer makes the developer money, or it has been made obsolete by other technology.
- Developer posts the application on his site for free, possibly even including the raw code for others to pick-up development.
- Developer notes that he will no longer develop the application, but will continue to support it for X amount of time.
- Application dies a slow but dignified death.
- Developer is tired of the misplaced user expectations and complaints and simply stops working on the app.
- Developer still charges for the half-done application.
- Developer announces that the current version will be the last release due to “technical problems” that are the fault of the OS.
- Developer announces there will be no bug fixes, so you’re on your own.
- Developer literally disappears off the face of the earth – with your $29.95.
I hope this clears up any questions you may have had about some of the terms you see in regards to software development. The next time you come across a Web site that’s hyping some application and has a giant Web 2.0-style Beta badge at the top in a bright orange burst, you can refer back to this post to remind yourself what it means.