The Life Cycle of a Typical Computer Program
Few programs are written, released, and left alone. Instead, programs tend to go through various cycles where they get updated continuously so companies can sell the newer versions to new and existing customers.
Generally, a typical program goes through a development cycle (where you first create and release it); a maintenance cycle (where you eliminate any glaring bugs as quickly as possible); and an upgrade cycle (where you give the program new features to justify selling the same thing all over again).
The development cycle
Every program begins as a blank screen on somebody's computer. During the development cycle, you nurture a program from an idea to an actual working program. The following steps make up the development cycle:
1. Come up with an idea for a program.
2. Decide the probable identity of the typical user of the program.
3. Decide which computer the program is to run on.
4. Pick one or more computer language(s) to use.
5. Design the program by using pseudocode or any other tool to outline the structure of the program.
6. Write the program.
7. Test the program.
Step 7 is known as alpha testing.
8. Fix any problems that you discover during alpha testing.
Repeat Steps 7 and 8 as often as possible.
9. Give out copies of the program to other people to test.
Step 9 is known as beta testing. The idea is to let total strangers use your program so they can tell you what they like and dislike. If you give your program to your friends or relatives to test, they might overlook problems because they don't want to hurt your feelings. Strangers are likely more objective in evaluating a program.
10. Fix any problems that people discover during beta testing.
Repeat Steps 9 and 10 as often as possible.
11. Release the program to the unsuspecting public and pray that it works as advertised.
The maintenance cycle
Most programmers prefer creating new programs to maintaining and modifying existing ones, which can prove as unappealing as cleaning up somebody else's mess in an apartment. But the number of new programs that programmers create every year is far less than the number of existing programs, so at some point in your life, you're likely to maintain and update a program that either you or somebody else wrote months, years, or even decades ago.
The following list describes typical steps that you may need to follow to maintain an existing program:
1. Verify all reports of problems (or bugs) and determine what part of the program may be causing the bug to appear.
2. Fix the bug.
3. Test the program to make sure that the bug is really gone and that any changes you make to the program don't introduce any new bugs.
4. Fix any problems that occur during testing.
5. Repeat Steps 1 through 4 for each bug that someone reports in the program.
Given the buggy nature of software, these steps may go on continuously for years.
6. Release a software patch, which users can add to an existing version of the program to incorporate corrections that you make to "patch up" the problems.
The upgrade cycle
Companies don't make money fixing software and making it more stable, reliable, and dependable. Instead, companies make money by selling new versions of their programs that offer additional features and options that most people probably don't use, need, or even want in the first place.
Still, because so many programs undergo modification to take advantage of new hardware or software, you may find yourself occasionally upgrading a program by adding new features to it. The following steps make up the upgrade cycle:
1. Determine what new feature you want to add to the program.
2. Plan how this new feature is to work (by using pseudocode or another tool to help structure your ideas).
3. Modify the program to add this new feature.
4. Test this new feature (by using alpha testing) to make sure that it works and doesn't introduce new bugs into the program.
5. Fix any problems that occur during alpha testing.
6. Give out copies of the program to other people to beta test.
7. Fix any problems that the beta testers report.
8. Repeat Steps 1 through 7 for each new feature that you need to add to the program.
9. Release the program as a new version and wait for the public to start reporting bugs that keep the program from working correctly so that you can start the maintenance cycle all over again.
Despite all the university courses and such important-sounding titles as "software engineer," programming is still less of a science and more of an art. Writing, modifying, and updating software doesn't require a high IQ or an advanced mathematics degree as much as it requires creativity, determination, and plenty of imagination. You can write a program any way that you want, but the best way to prevent possible problems later on is to be organized and methodical in your approach.