Baselines
Change is a real fact of life in software development. The customers need to modify their requirement. Developers need to modify technical approach. Managers need to modify project approach. Why all this changes? The answer is factually quite easy. As time passes all constituencies know more about what they need which approach would be best and how to get it done and still make money. This effective knowledge is the driving force backs most changes and leads to a statement of fact which is difficult for various software engineering practitioners to accept: Most changes are justified!
Basically a baseline is a software configuration management concept which helps us to control change without seriously impeding justifiable change. The IEEE describes a baseline as follows:
A product or specification which has been formally agreed and reviewed upon where thereafter serves as the basis for forward development, which can be changed only by formal change control process.
One way to describe a baseline is through analogy: let Consider the doors to the kitchen of a big restaurant. To reduce collisions one door is marked OUT and the other is marked IN. The doors have stops which allow them to be opened only in the suitable direction.
If a waiter picks up an order in the kitchen and places it on a tray, then realizes he has selected the incorrect dish he may change to the correct dish fast and informally before he leaves the kitchen.
If however he leaves the kitchen gives the customer the dish and then is informed of his error he must follow a set process that are: (1) look at the check to determine if an error has occurred; (2) apologize profusely; (3) return to the kitchen by the IN door. (4) Explain the problem and so forth.
A baseline is similar to a dish as it passes by the kitchen door in the restaurant. Previously a software configuration item becomes a baseline change may be made fast and informally. However once a baseline change may be made fast and informally. However once a baseline is develop we figuratively pass by a swinging one-way door. Changes can be made but an exact formal process must be applied to evaluate and verity each change.
In the context of software engineering a baseline is a milestone in the development of software of software which is marked by the delivery of one or more software configuration items and the approval of these SCIs that is obtained by a formal technical review for example the elements of a design specification have been documented and reviewed. Bugs are found and corrected. Once all categories of the specification have been reviewed corrected and then approved the design specification becomes a baseline. Further changes to the after each has been evaluated and approved. Although baselines can be describe at any level of detail the most common software baselines are describe as follows Figure.