If similar code is split a deficit is inposed due to the following reasons:
1) New Features required in both code basis
Two Code Bases Scenario
a. code base 1 must be checked out
b. the change is made to code base 1
c. the change is tested by the developer
a. code base 2 must be checked out (double work)
b. the change is made to code base 2 (double work)
c. the change is tested by the developer
* Keep in mind code base 2 will sometimes be forgotten or sometimes
* Keep in mind that if the change is remembered sometimes it will not be fully
implemented because the developer can't remember all the peices needed of the change.
This may be caught in testing, but now it has to be tested again once the change is fully
implemented. However, it may slip through testing undected leading to problems in the
production environment.
* Also, if a bug is detected, then BOTH code bases have to be checked out, modified, and
tested all over again; this quadruples the cost of developing the change.
Single/Uniform Code Base Scenario
a. code base 1 must be checked out
b. the change is made to code base 1
c. the change is tested by the developer