Iteration Workflows

Grille Valuation Software

An iteration consists of a loosely sequential set of activities in various proportions, depending on where the iteration is located in the development cycle. Each iteration is defined in terms of a set of allocated usage scenarios. The components needed to implement all selected scenarios are developed and integrated with the results of previous iterations. An individual iteration's workflow, illustrated in Figure 8-2, generally includes the following sequence Management iteration planning to...

Tailoring the Process

Software management efforts span a broad range of domains. While there are some universal themes and techniques, it is always necessary to tailor the process to the specific needs of the project at hand. A commercial software tool developer with complete control of its investment profile will use a very different process from that of a software integrator on contract to automate the security system for a nuclear power plant. There is no doubt that a mature process and effective software...

Reducing Software Product Size

The most significant way to improve affordability and return on investment (ROI) is usually to produce a product that achieves the design goals with the minimum amount of human-generated source material. Component-based development is introduced here as the general term for reducing the source language size necessary to achieve a software solution. Reuse, object-oriented technology, automatic code production, and higher order programming languages are all focused on achieving a given system...

The Principles Of Conventional Software Engineering

There are many descriptions of engineering software the old way. After years of software development experience, the software industry has learned many lessons and formulated many principles. This section describes one view of today's software engineering principles as a benchmark for introducing the primary themes discussed throughout the remainder of the book. The benchmark I have chosen is a brief article titled Fifteen Principles of Software Engineering Davis, 1994 , The article was...

Checkpoints of the Process

It is always important to have visible milestones in the life cycle where various stakeholders meet, face to face, to discuss progress and plans. The purpose of these events is not only to demonstrate how well a project is performing but also to achieve the following Synchronize stakeholder expectations and achieve concurrence on three evolving perspectives the requirements, the design, and the plan Synchronize related artifacts into a consistent and balanced state Identify the important risks,...

Process Discriminants

In tailoring the management process to a specific domain or project, there are two dimensions of discriminating factors technical complexity and management com-pJexity. Figure 14-1 illustrates these two dimensions of process variability and shows some example project applications. The formality of reviews, the quality control of artifacts, the priorities of concerns, and numerous other process instantiation parameters are governed by the point a project occupies in these two dimensions. Figure...

Iterative Process Planning

Like software development, project planning requires an iterative process. Like software, a plan is an intangible piece of intellectual property to which all the same concepts must be applied. Plans have an engineering stage, during which the plan is developed, and a production stage, when the plan is executed. Plans must evolve as the understanding evolves of the problem space and the solution space. Planning errors are just like product errors The sooner in the life cycle they are resolved,...

The Seven Core Metrics

Many different metrics may be of value in managing a modern process. I have settled on seven core metrics that should be used on all software projects. Three are management indicators and four are quality indicators. Work and progress work performed over time Budgeted cost and expenditures cost incurred over time Staffing and team dynamics personnel changes over time Change traffic and stability change traffic over time Breakage and modularity average breakage per change over time Rework and...

Management Indicators

There are three fundamental sets of management metrics technical progress, financial status, and staffing progress. By examining these perspectives, management can generally assess whether a project is on budget and on schedule. Financial status is very well understood it always has been. Most managers know their resource expenditures in terms of costs and schedule. The problem is to assess how much technical progress has been made. Conventional projects whose intermediate products were all...

Reusable Components Of A System Project Management

Reusing existing components and building reusable components have been natural software engineering activities since the earliest improvements in programming languages. Software design methods have always dealt implicitly with reuse in order to minimize development costs while achieving all the other required attributes of performance, feature set, and quality. Reuse achieves undeserved importance within the software engineering community only because we don't do it as well as we should. In all...

Software Process Workflows

Previous chapters introduced a life-cycle macroprocess and the fundamental sets of artifacts. The macroprocess comprises discrete phases and iterations, but not discrete activities. A continuum of activities occurs in each phase and iteration. The next-level process description is the microprocesses, or workflows, that produce the artifacts. The term workflow is used to mean a thread of cohesive and mostly sequential activities. Workflows are mapped to product artifacts as described in Chapter...

Project Organizations

Program Management Structure

Figure 11-2 shows a default project organization and maps project-level roles and responsibilities. This structure can be tailored to the size and circumstances of the specific project organization. Figure 11-2. Default project organization and responsibilities The main features of the default organization are as follows The project management team is an active participant, responsible for producing as well as managing. Project management is not a spectator sport. The architecture team is...

Conventional Software Management Performance

Barry Boehm's one-page Industrial Software Metrics Top 10 List Boehm, 1987 is a good, objective characterization of the state of software development. There is very little evidence of significant changes in the past decade. Although many of the metrics are gross generalizations, they accurately describe some of the fundamental economic relationships that resulted from the conventional software process practiced over the past 30 years. In the following paragraphs, quotations from Boehm's top 10...

The Cost And Schedule Estimating Process

Project plans need to be derived from two perspectives. The first is a forward-looking, top-down approach. It starts with an understanding of the general requirements and constraints, derives a macro-level budget and schedule, then decomposes these elements into lower level budgets and intermediate milestones. From this perspective, the following planning sequence would occur 1. The software project manager (and others) develops a characterization of the overall size, process, environment,...

Pragmatic Software Cost Estimation

One critical problem in software cost estimation is a lack of well-documented case studies of projects that used an iterative development approach. Although cost model vendors claim that their tools are suitable for estimating iterative development projects, few are based on empirical project databases with modern iterative development success stories. Furthermore, because the software industry has inconsistently defined metrics or atomic units of measure, the data from actual projects are...

Work Breakdown Structures

A good work breakdown structure and its synchronization with the process framework are critical factors in software project success. Although the concept and practice of using a WBS are well established, this topic is largely avoided in the published literature. This is primarily because the development of a work breakdown structure is dependent on the project management style, organizational culture, customer preference, financial constraints, and several other hard-to-define, project-specific...

Evolution Of Organizations

Epc Projet

The project organization represents the architecture of the team and needs to evolve consistent with the project plan captured in the work breakdown structure. Figure 11-7 illustrates how the team's center of gravity shifts over the life cycle, with about 50 of the staff assigned to one set of activities in each phase. A different set of activities is emphasized in each phase, as follows Inception team an organization focused on planning, with enough support from the other teams to ensure that...

Improving Team Effectiveness

It has long been understood that differences in personnel account for the greatest swings in productivity. The original COCOMO model, for example, suggests that the combined effects of personnel skill and experience can have an impact on productivity of as much as a factor of four. This is the difference between an unskilled team of amateurs and a veteran team of experts. In practice, it is risky to assess a given team as being off-scale in either direction. For a large team of, say, 50 people...

Artifacts of the Process

Conventional software projects focused on the sequential development of software artifacts build the requirements, construct a design model traceable to the requirements, build an implementation traceable to the design model, and compile and test the implementation for deployment. This process can work for small-scale, purely custom developments in which the design representation, implementation representation, and deployment representation are closely aligned. For example, a single program...

Improving Automation Through Software Environments

The tools and environment used in the software process generally have a linear effect on the productivity of the process. Planning tools, requirements management tools, visual modeling tools, compilers, editors, debuggers, quality assurance analysis tools, test tools, and user interfaces provide crucial automation support for evolving the software engineering artifacts. Above all, configuration management environments provide the foundation for executing and instrumenting the process. At first...

Tools Automation Building Blocks

Many tools are available to automate the software development process. This section provides an overview of the core environment necessary to support the process frame- Management Environment Requirements Design figure 12-1. Typical automation and tool components that support the process workflows work. It introduces some of the important tools that tend to be needed universally across software projects and that correlate well to the process framework. Many other tools and process automation...

The Project Environment

The project environment artifacts evolve through three discrete states the prototyping environment, the development environment, and the maintenance environment. 1. The prototyping environment includes an architecture testbed for prototyping project architectures to evaluate trade-offs during the inception and elaboration phases of the life cycle. This informal configuration of tools should be capable of supporting the following activities Performance trade-offs and technical risk analyses Make...

Architecture A Technical Perspective

Although software architecture has been discussed at length over the past decade, convergence on definitions, terminology, and principles has been lacking. The following discussion draws generally on the foundations of architecture developed at Rational Software Corporation and particularly on Philippe Kruchten's concepts of software architecture Kruchten, 1995 . Software architecture encompasses the structure of software systems (the selection of elements and the composition of elements into...

Lineofbusiness Organizations

Figure 11-1 maps roles and responsibilities to a default line-of-business organization. This structure can be tailored to specific circumstances. The main features of the default organization are as follows Responsibility for process definition and maintenance is specific to a cohesive line of business, where process commonality makes sense. For example, the process for developing avionics software is different from the process used to develop office applications. Responsibility for process...

Modern Process Transitions

Successful software management is hard work. Technical breakthroughs, process breakthroughs, and new tools will make it easier, but management discipline will continue to be the crux of software project success. New technological advances will be accompanied by new opportunities for software applications, new dimensions of complexity, new avenues of automation, and new customers with different priorities. Accommodating these changes will perturb many of our ingrained software management values...