A Process for Enterprise Development

   

Just as the highly distributed, component-based services model of enterprise development suggests new ways of organizing the teams that develop these applications, it also suggests new approaches to the development process itself.

Traditional, monolithic application development has typically followed a waterfall process model, in which approval milestones are prerequisites to the completion of one stage and the start of the next. This is not well-suited to the component-based nature of distributed enterprise applications because components are best developed in parallel, rather than sequentially. In addition, the waterfall process model is not flexible and responsive enough to lend itself well to the rapid prototype development tools and iterative user interface design of GUI-driven desktop systems development.

The milestone-based process model presented in this chapter allows for significant task overlap and iterative development. It maximizes the advantages of the team model presented in this chapter by creating explicit team accountability. It sets priorities by assessing risk, and encourages rapid application delivery.

This process model is presented in the following sections.

Section Description
Traditional Process Models Presents a brief synopsis of the traditional systems development life cycle used by many enterprise development teams.
The Milestone-Based Process Model Introduces an iterative process model well-suited to component-based enterprise development, and describes its major milestones.
Interim Milestones Describes how interim milestones set by the development team internally can help to better manage and control a project.
Achieving the Milestones Identifies which team roles have primary responsibility for each milestone, establishing ownership and accountability for timely delivery.
Defining the Project Vision/Scope Describes the process of creating the project Vision/Scope document.
Developing the Functional Specification Describes the necessary elements of the functional specification, and defines its role as a contract between all team members and the project's customers.
From Code Complete to Release Presents the concepts of risk-driven scheduling and versioned releases in preparing for the final release milestone.
Iterative Development Discusses the process of successive refinement as milestones are approached, and shows how the iterative method allows later developments to alter earlier decisions without catastrophic results.
A Multi-Threaded Approach to Development Shows how parallel development on separate components by independent teams, as suggested by the Enterprise Application Model, can be smoothly integrated into the overall project cycle.