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...

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...

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...

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,...

Pragmatic Software Metrics

Measuring is useful, but it doesn't do any thinking for the decision makers. It only provides data to help them ask-tne right questions, understand the context, and make objective decisions. Because of the highly dynamic nature of software projects, these measures must be available at any time, tailorable to various subsets of the evolving product (release, version, component, class), and maintained so that trends can be assessed (first and second derivatives with respect to time). This...

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,...

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...

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...

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...

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...

The Principles Of Modern Software Management

Although the current software management principles described in Section 4.1 evolved from and improved on conventional techniques, they still do not emphasize the modern principles on which this book is based. Building on Davis's format, here are my top 10 principles of modern software management. The first five, which are the main themes of my definition of an iterative process, are summarized in Figure 4-1. The principles are in priority order, and the bold-faced italicized words are used...

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...

Next Software Economic S In Software Project Management

Next-generation software economics is being practiced by some advanced software organizations. Many of the techniques, processes, and methods described in this book's process framework have been practiced for several years. However, a mature, modern process is nowhere near the state of the practice for the average software organization. This chapter introduces several provocative hypotheses about the future of software economics. A general structure is proposed for a cost estimation model that...

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...

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...