"Mark Twain once noted, "The time to begin writing an
article is when you have finished it to your satisfaction. By that
time, you begin to clearly and logically perceive what it is that
you really want to say." Twain's observation is right on the mark
(no pun intended), and his wisdom applies just as well to software.
Invariably, the subtleties, nuances, and scope of the problem at
hand become clear only after the application has been written.
Between typing the first line of code and packaging a release,
there are any number of false starts, dead ends, rewrites,
refactorings, quandaries, bugs, and ultimately, epiphanies and
breakthroughs. Frequently used acronyms
"Indeed, change is so constant during development that special
software must be used to track modifications. Dubbed source control
(or version control), this software records each and every revision
made to the application. Source control lets you compare revisions,
switch between one version of a file and another, and gather
revisions into a release. And while features, paradigms, and best
practices vary from one source control system to another—many
proprietary and open source options are available—the intent
is universal: Audit who did what and when. Popular commercial
source control software includes Perforce and AccuRev; leading open
source control software includes Subversion, Arch, Mercurial, Git,
and Bazaar (see Resources for links)."