ABSTRACT

While software design is carried out by individuals, to achieve uniformity and remove person dependency, organizations have to adapt an approach that is right for the organization. Approaches can be ad hoc in nature, a methodical approach based on a well-defined organizational process, or a combination of these two. When organizations are small and in the nascent stages, they usually take an ad-hoc approach. As they grow, they gradually move toward a process-driven approach. The rigor of the process definition and conformance increases steadily in proportion to the organizational growth. An ad-hoc approach is the lowest-cost approach for the organization and produces good results when the person leading the activity is a mature expert in the field and works with total commitment. But when multiple projects are handled concurrently, with different individuals leading the projects, then the deliverables lack uniformity in terms of quality and other aspects. A process-driven approach, on the other hand, has the overhead of defining and continuously improving it, but it ensures uniformity in the deliverables. It allows a new entrant to perform like an experienced designer and an experienced designer to achieve excellence. All these aspects are discussed in this chapter.