Mohamed E. Fayad
Software Development Process:
A Necessary Evil
hat is a process? A process defines specifically who does what, when, and how. The Webster dictionary defines it is a “particular method of doing something, generally involving a number of steps or operations.” I want to emphasize that a process implements one part of a method, such as an object modeling technique (OMT) , in sufficient detail such that the results are repeatable by any number of similarly trained individuals following the steps of the process. However, processes are generally locally documented implementations of methods. Processes tell which tools will be used to implement a method. Processes generally define what needs to be done, but they are only one part of what a method defines. They may define a set of high-level or low-level activities that need to be performed during the software development effort. They are usually partially ordered by time (for instance, activity A must proceed activities B and C and activities B and C must be
done concurrently). Software processes may define a set of reviews or they may define how a review is to be conducted. Any complete set of processes will list the deliverables resulting from each process. Processes put object-oriented techniques to work. Where a method or a technique defines the theory behind an approach, a process addresses the practicalities of using the method in a given development environment. A technique explains the ideas applied while a process lays out the concrete actions that take place. A technique can only predict results while a process might define the metrics to be used to verify the result.
The Manager’s Roles and Responsibilities
OO techniques by themselves do not include progress reviews, extensive documentation, or bidirectional requirements traceability although such features are necessary to make any significant development successful. However, they definitely include con-...