this book from cover to cover thanks to McConnell's excellent prose, and that's certainly the way Rapid development: taming wild software schedules / Steve. on software construction: Code Complete by Steve McConnell. This is a book that Rapid Development: Taming Wild Software Schedules / Steve. McConnell. [Microsoft Press] Steve Mcconnell - Rapid Development, Taming Wild Software medical-site.info - Ebook download as PDF File .pdf), Text File .txt) or read book.
|Language:||English, Spanish, French|
|Genre:||Academic & Education|
|Distribution:||Free* [*Register to download]|
Rapid Development: Taming Wild Software Schedules. Home · Rapid Development: Author: Steve McConnell Rapid application development with Mozilla. In Rapid Development, author Steve McConnell addresses that concern head-on with overall strategies, specific best practices, and valuable tips that help. In RAPID DEVELOPMENT, author Steve McConnell addresses that concern - Selection from Rapid Development: Taming Wild Software Schedules [Book].
Book Description Corporate and commercial software-development teams all want solutions for one important problem—how to get their high-pressure development schedules under control. Table of Contents Rapid Development: Attaining Rapid Development 2.
Classic Mistakes Case Study: Feature-Set Control Early Project: Feature-Set Reduction Minimal Specification Problems with traditional specifications Creating a minimal specification Benefits of minimal specifications Risks of minimal specifications Keys to success in using minimal specifications Requirements Scrubbing Versioned Development Mid-Project: Feature Cuts Further Reading Change Board Goal Setting Inspections Lifecycle Model Selection Principled Negotiation Requirements Scrubbing Spiral Lifecycle Model Establish Win-Win Preconditions Step 2: Classic Mistakes 29 Lack of Fundamentals 52 Lack of Contractor Risk Management 82 Systematic Risk Management Wandering in the Fuzzy Front End Ineffective Lifecycle Model Selection Effective Lifecycle Model Selection Seat-of-the-Pants Project Estimation Careful Project Estimation A Successful Schedule Negotiation The Requirements Club The Requirements Club Revisited A Disheartening Lunch with the Boss A Highly Motivational Environment You Call This a Team?
A High-Performance Team Typical Team-Member Selection A Second High-Performance Team Managing Change Effectively Ineffective Tool Use Effective Tool Use An Unsuccessful Project Recovery A Successful Project Recovery Summary of Classic Mistakes 49 Levels of Risk Management 84 Most Common Schedule Risks 86 Potential Schedule Risks 87 Example of a Risk-Assessment Table 92 Example of a Prioritized Risk-Assessment Table 95 Example of a "Top Risks List" Approximate Activity Breakdown by Size of Project Lifecycle Model Strengths and Weaknesses Estimate Multipliers by Project Phase Function-Point Multipliers Example of Computing the Number of Function Points Example of a Risk-Quantification Estimate Example of a Case-Based Estimate Example of a Confidence-Factor Estimate Exponents for Computing Schedules from Function Points Shortest Possible Schedules.
Efficient Schedules Nominal Schedules Example of a Single-Point-Estimation History Example of a Range-Estimation History Scheduling History of Word for Windows 1.
Comparison of Motivators for Programmer Analysts vs. Managers and the General Population Practical Guidelines for Team Members and Leaders Team Objectives and Team Structures Summary of Best-Practice Evaluations Examples of Kinds of Measurement Data Example of Time-Accounting Activities Vendor-Evaluation Questionnaire Contract Considerations Approximate Language Levels Project Stakeholders and Their Objectives Steps in Theory-W Project Management Software developers are caught on the horns of a dilemma.
One horn of the dilemma is that developers are working too hard to have time to learn about effective practices that can solve most development-time problems; the other horn is that they won't get the time until they do learn more about rapid development. Other problems in our industry can wait. It's hard to justify taking time to learn more about quality when you're under intense schedule pressure to "just ship it. Until we as an in- dustry learn to control our schedules and free up time for developers and managers to learn more about their professions, we will never have enough time to put the rest of our house in order.
The development-time problem is pervasive. Several surveys have found that about two-thirds of all projects substantially overrun their estimates Lederer and Prasad , Gibbs , Standish Group The average large project misses its planned delivery date by 25 to 50 percent, and the size of the average schedule slip increases with the size of the project Jones Year after year, development-speed issues have appeared at the tops of lists of the most critical issues facing the software-development community Symons Although the slow-development problem is pervasive, some organizations are developing rapidly.
Researchers have found to-l differences in pro- ductivity between companies within the same industries, and some research- ers have found even greater variations Jones The purpose of this book is to provide the groups that are currently on the "1" side of that to-l ratio with the information they need to move toward the "10" side of the ratio.
This book will help you bring your projects un- der control. It will help you deliver more functionality to your users in less time. You don't have to read the whole book to learn something useful; no matter what state your project is in, you will find practices that will enable you to improve its condition. Technical leads are often called upon to make recommendations to upper management about technically oriented management issues.
I have made the simplifying assumption that you are Technical Super Lead—faster than a speeding hacker. In writing the book. That is somewhat unrealistic. Each of these groups has a stake in solving the slow-develop- ment problem. If that's your role.
As a techni- cal lead. This book is intended to help developers and managers know what's pos- sible. Technical Leads This book is written primarily with technical leads or team leads in mind. Preface Slow development affects everyone involved with software development. Some of the practices this book describes are wholly technical. Other practices are more management oriented. It also describes the development-speed limits so that you'll have a firm foundation for distinguishing between realistic improvement programs and wishful-thinking fantasies.
I know. If you're in that role. Preface Managers Managers sometimes think that achieving rapid software development is primarily a technical job.
Rapid-development slant on traditional topics. Over time. These are the times that try developers' souls. Like Thomas Paine's original Common Sense. This book helps answer such key trade-off questions as well as other questions. You can use the strategy and best practices described in this book to achieve the maximum possible development speed in your specific circumstances. My view of software development is that software projects can be optimized for any of several goals—lowest defect rate.
Some of the practices described in this book aren't typically thought of as rapid-development prac- tices. I conceived of this book as a Common Sense for software developers. Practices such as risk management. If you're a manager.
Improved development speed. Part of an engineering approach to software is to balance trade-offs: Can you optimize for development time by cutting quality? By cutting usability? By requiring developers to work overtime? When crunch time comes. This book describes many management-level rapid-development practices.
Some best practices won't work on some kinds of projects. Depending on your circumstances. Of course. Other practices are genuinely useful. Nearly useless development practices have been relentlessly hyped as "rapid-development practices.
The first pages of the book Parts I and II describe a strategy and philosophy of rapid development. A new way to think about the topic of rapid development. To some people. The rest of the book consists-of a set of rapid- development best practices. Each tool vendor and each methodology vendor want to convince you that their new silver bullet will be the answer to your development needs.
The book also makes extensive use of marginal icons and text to help you quickly find additional information related to the topic you're reading about.
In no other software area do you have to work as hard to separate the wheat from the chaff. The practices are described in quick-reference format so that you can skim to find the practices that will work best on your projects.
If you don't like case studies. I don't have much more to say about them. I've avoided code-focused practices for two reasons. This book provides guidelines for analyzing rapid-development information and finding the few grains of truth. About 50 pages of case studies are integrated into that discussion so that you can see how the strategy and philosophy play out in practice.
The book describes how to use each practice. In no other area of software development has there been as much disinformation as in the area of rapid development. This book puts the development-speed benefits of these practices into con- text with other practices.
I've done all I can to present this book's rapid-development information in the most practical way possible. Quick-reading organization. Practical focus.
I've already written pages about effective coding practices in Code Complete Microsoft Press. Preface These practices. Unlike other books on rapid development.
Why is this book about rapid development so big? Developers in the IS. Clients' and managers' first response to the problem of slow development is usually to increase the amount of schedule pressure and overtime they heap on developers.
Nearly 60 percent of developers report that the level of stress they feel is increasing Glass When someone comes into your office and says. Does anyone who needs to know about rapid development really have time to read pages about it? Possibly not. I'm not asking you to put all of your eggs into a single. I have tried to be skeptical without being cynical—to be critical of practices' effectiveness but to stop short of assumingthat they don't work.
To compensate. Chapters 1 and 2 con- tain the material that you must read to understand how to develop products more quickly. The average developer in the U. Excessive schedule pressure occurs in about 75 percent of all large projects and in close to percent of all very large projects Jones I recognize that different projects have different needs.
After you read those chapters. I've organized the book so that it can be read quickly and selectively—you can read short snippets while you're traveling or waiting. It doesn't matter that I haven't said anything specifically about the GigaCorp Silver Bullet Company or their new tool. Many work considerably more. This book collects the most valuable prac- tices from each field. I revisit those old. This book provides ready-made mental models that will allow you to assess what the silver-bullet vendors tell you and will also allow you to incorpo- rate new ideas of your own.
By the time you finish this book. Liter- ally dozens of other people contributed to this book in one way or another. Jocelyn Elliott. Dean Holmes. Al Corwin. Amy Westfall. Preface In this environment. Paula Thurman. Many of us got into it originally because we couldn't believe that people would actually pay us to write software. Thanks to them for seeing that the book you. This book is my attempt to stick a few fin- gers into that dike. Sally Brunsman.
David Clark. Susanne Freet. But something not-so-funny happened on the way to the forum. Microsoft Corporation's technical library provided invaluable aid in digging up the hundreds of books and articles that laid the foundation for this book.
Pat Forman. Richard Carey. Amy Victor. It's time to start shoring up the dike that separates software developers from the sea of scheduling madness. Christine Shannon. Chief among these. Thanks also go to Peggy Herman and Kim Eggleston for the book's design.
Ron Drummond. Other people at the library who helped included Janelle Jones. Clearly our field can be fun. Hank Meuret. Keith Barland spearheaded that effort. I am told. I expound on the virtue of reviews in several places in this book. Heartfelt thanks go first to Jack Litewka.
Wendy Maier. Patricia Masserman. Roger LeBlanc. Linda Shaw. Kyle Wagner. Patrick Forgette. Tony Garland. Deborah Long. I didn't have personal contact with any of them. I'd like to thank my wife. Preface hold in your hands doesn't look very much like the book I originally set out to write! I also received valuable comments from Wayne Beardsley. David Sommer age 11 came up with the idea for the last panel of Figure Dave Moore.
Greg Hitchcock. Bob Glass. Ray Bernard. Washington June Sharon Graham. Steve Rinn.
I have to start working on my third book immediately so that she will stop elbowing me in the ribs and calling me a Two-Time Author! Duane Bedard. Tony Pisculli. Our users want the product now. It can wait. This pattern is repeated day after day. Preface Benefits of reading this book: Preface Why this book was written: Preface Rapid-development strategy: Chapter 2 Core issues in rapid development: Just get it out the door.
Development time has become such an important priority that it has blinded people to other important considerations.
He could have been almost any product manager I've worked for. This particular product manager wasn't the manager on just one product. We don't have time. When the time came to actually do the project. He wanted to pay attention to quality. Welcome to Rapid Development Contents 1. Next project. To the manager desperate to shorten a schedule. It will take time and effort. No one of them ap- plies to all cases. To the vertical-mar- ket programmer. Rather than identifying a specific tool or method.
But the improvement won't come instantly. To the hacker. And no one of them can measure up to certain other prac- tices that are not commonly thought of as rapid-development practices but that nonetheless have profound development-speed implications. In today's climate. Each one of these tools and methods is fine as far as it goes. A "rapid-development project. You'll be able to do that without harming quality.
But to provide full benefit. Rapid development is a generic term that means the same thing as "speedy development" or "shorter schedules. But the road more traveled is the road that is currently resulting in massive cost and sched- ule overruns. Chapter 1: Welcome to Rapid Development 1. To the information engineer. If you work in a typical organization and follow the practices in this book.
Switching to the road less traveled might seem risky. You use only a small sub-subset of those practices on any particular project. When they need maximum scheduling certainty. They choose practices that are proven failures or that fail more often than they succeed. Development speed depends on the choice of development practices. At an executive-overview level. Set of all software-development practices.
Mencken opment of software is even less simple. When they need to reduce costs. I also wish problem. How rapidly you develop any particular program depends on the extent to which you choose effective practices and on the extent to which you choose schedule-oriented practices. The first step toward improv- ing development speed for those organizations is to admit that they're choos- ing ineffective practices and then to begin choosing effective ones.
Rapid devel- H. But simple solutions tend to work only for simple answer that is short. Within that set. As Figure suggests. You might think this is obvious.
Schedule-oriented practices come in three kinds: If you think that your development speed is OK and that your customer's perception of your development speed is the problem. Welcome to Rapid Development All of the effective schedule-oriented practices are lumped into one category in Figure The specific kinds of schedule-oriented practices you choose will be deter- mined by your specific concerns about development speed.
If you think you genuinely need to develop faster. When you put effective schedule-oriented practices together with a plan for using them. Individual schedule-oriented practices are only part of what's needed to achieve the shortest possible schedule. The string section's timing wouldn't match that of the woodwind or brass section. We forgot to include time in the schedule for the printing subsystem! Chapter 3 Development fundamentals: Chapter 4 Risk management: Chapter 5 Core issues in rapid development: One of the most tempting traps that people who want faster development fall into is the trap of focusing too much on a single schedule-oriented de- velopment practice.
A general framework that allows those practices to be used to maximum advantage is also needed. A similar waste of talent is commonplace in software development.
Such a musical event would be a waste of talent. Instructing the musicians to "do their best" wouldn't help them know whether they should play louder or softer.
Rapid-Development Strategy Contents 2. You might execute rapid prototyping perfectly. Teams of smart. Chapter 2: Rapid-Development Strategy This chapter puts forth an orchestrated strategy for achieving rapid development.
Rapid Development Without a Clear Strategy continued 6. Case Study Rapid Development Without a Clear Strategy. Avoid classic mistakes. Apply development fundamentals. Avoidance of the pat- tern takes effort but is within reach of anyone who is willing to throw out their bad habits. You can achieve rapid development by following a four- part strategy: You can use the strongest schedule-oriented that must be built practices.
And if you don't manage risks. Figure Rapid product Pictures with pillars have become kind of hokey.. If you skip the development Donald G.
Apply schedule-oriented practices such as the three kinds of practices shown in Figure in Chapter 1. Manage risks to avoid catastrophic setbacks. Without the late—to market faster. You'll be late again. The four pillars of rapid development.
The best possible schedule depends on classic-mistake avoidance. Smith and expensive to do so. Your project will be late. But as Figure illustrates. The best-practice summaries in Part III of this book list the effect that each practice has on development speed.
The rest of this book discusses specific schedule-oriented practices. Rapid-Development Strategy The illustration also suggests that the first three pillars provide most of the support needed for the best possible schedule. I'll take up the topic of development fundamentals in Chapter 4 and the topic of risk management in Chapter 5. Even the finest schedule-oriented practices aren 't strong enough to support the best possible schedule by themselves. Chapter 3 will introduce classic mistakes.
In most cases. But running a software project isn't a parlor trick. If you do manage to pull it off once. I can balance a chair on my chin. You might be able to achieve an optimal schedule without schedule-oriented practices. The first three pillars shown in Figure are critical to the success of rapid development. Result of focusing solely on schedule-oriented practices. If you'd rather read about rapid development itself before reading about the three steps needed to lay the groundwork for rapid development.
People have pulled off stunts like that before. Can you achieve the best possible schedule by focusing only on schedule- oriented practices? You might just be able to pull it off. Not ideal support. People perform quickly. Technology assists the development effort. You can focus on all four dimensions at the same time. But because they're dimensions. But the concept I want to get across is very much one of dimension rather than direction.
In response to this diagram. A focus on product would detract from a focus on process. Tlje four dimensions of development speed—shown here in two dimensions. It's four directions.
I can almost hear some engineers saying. I can't draw in four dimensions. If these were directions. Figure illustrates the point. Software development books tend to emphasize one dimension and down- play the others. That's not four dimensions. The product is defined in such a way that it almost builds itself. You can leverage each of these four dimensions for maximum development speed.
You can't even draw in four dimensions! The process leverages people's time. The organizations that are the most effective at achieving rapid development optimize all four rapid-development dimen- sions simultaneously.
Or you might be familiar with the positive contribution that an explicit motivational improvement program can have.
Card Rapid-Development Strategy Software organizations tend to view the dimensions they don't focus on as fixed. The first conclusion is that we now know with certainty that peopleware issues have more impact on software productivity and software quality than any other factor. Studies have also found variations in the performance of entire teams on the order of 3.
People Results of individual experiments on peopleware issues are well known. Truly rapid de- velopment requires you to incorporate a variety of kinds of practices Boehm et al. The following subsections introduce the four dimensions and discuss the synergy among them.
Boehm Mills Valett and McGarry Curtis et al. After 20 years of experimentation on live projects. It is now possible to step beyond the many individual-study conclusions and synthesize some general conclusions from trends in the research. Once you realize that each of the four dimensions can potentially provide tremendous leverage over a software schedule.
Curtis Jones What is less familiar to most developers. You might be familiar with the claim that there is at least a to-l difference in productivity among different developers.
When you focus on a single dimension. Since the late s. DeMarco arid Lister Barry Boehm presents five principles of software staffing and career progression. In his landmark book. Other factors that can make a difference include people's design ability. If you are se- rious about rapid development. A spe- cific software project can also benefit from appropriate specialization.
Team organization. The way that people are organized has a great effect on how efficiently they can work. Software shops can benefit from tailoring their teams to match project size.
There are other ways to improve pro- ductivity. This book deals with several ways that you can maximize human potential to reduce software schedules. You have to address them if you want to succeed. This conclusion is a strong one. Taken collectively. They do not say specifically that team T-shirts. Software Engineer- For more on job matching ing Economics.
The research results simply say that the effects of individual ability. Rapid-Development Strategy Motivation. Organizations such as Hughes Aircraft. The effect that process has on a development schedule is easier to assess than the effect that people have. Some people think that attention to process is stifling. Basili et al. Process represents an area of high leverage in improving your development speed—almost as much as people. A person who lacks motivation is unlikely to work hard and is more likely to coast.
Gibbs Raytheon But that's an abuse of power—and the fact that a process focus can be abused should not be allowed to detract from. No factor other than motivation will cause a person to forsake evenings and weekends without being asked to do so.
Saiedian and Hamilton Putnam A few people have created process standards primarily to make themselves feel powerful. Myers Few other fac- tors can be applied to so many people on so many teams in so many orga- nizations. Motivation is potentially the strongest ally you have on a rapid-development project.
Ten years ago it might have been reason- able to debate the value of a focus on process. Putnam and Myers Process Process. Managing schedule-related risks is a necessary component of a rapid- development program. A lot of that work has focused on "productivity'' Fundamentals.
A focus on process can help.
Quality assurance is thus an indispensable part of any serious rapid-development program. Quality assurance has two main purposes. If you have design problems that you didn't find until system testing. Raytheon won the IEEE Computer Society's Software Process Achievement Award in for reducing their rework costs from 41 percent to less than 10 percent and simultaneously tripling their productivity Raytheon If requirements change in the late stages of project.
The relationship between those two feats is no coincidence. This nearly always means catching errors as close as possible to the time that they are introduced. The first pur- For more on quality pose is to assure that the product you release has an acceptable level of assurance.
Although that is an important purpose. Much of the work that has been done in the For more on development software-engineering field during the last 20 years has been related to de- fundamentals.
Developing rapidly isn't good enough if you get ment. One of the most straightforward ways to save time on a software project is to orient your process so that you avoid doing things twice. Although standard software-engineering practices for analysis.
The most common form of process abuse is neglect. The second function of quality assurance is to detect errors at the stage when they are least time-consuming and least costly to correct. One of the specific practices that's focused on avoiding For more on risk manage- disaster is risk management.
The longer an error remains in the product. Half of the challenge of rapid development is avoiding disaster. The lessons learned from 20 years of hard knocks can help your project to proceed smoothly. Rework avoidance. You can. On a rapid-development project. For example. One of the gestalt shifts between traditional.
The best practices of staged releases. The other half is helping the customer figure out what the product should be. Lifecycle models make it easy to identify and organize the many activities required by a software project so that you can do them with the utmost efficiency. One of the keys to targeting resources effectively is to For more on lifecycle apply them within a lifecycle framework that makes sense for your specific planning.
Rapid-Development Strategy Resource targeting. Best practices such as pro- ductivity offices. Without an overall lifecycle model. Resources can be focused effectively and contribute to overall productivity.
Putting yourself on the same side as the cus- tomer is one of the best ways to avoid the massive rework caused by the customer deciding that the product you just spent 12 months on is not the right product after all.
A lifecycle model is use- ful because it describes a basic management plan. Developers Development. If rapid development is truly top priority. The change from low-level lan- tools. Be- effect that product size has cause the effort required to build software increases disproportionately faster on a development schedule.
Large products take a long time. You can reduce product size outright by striving to develop only the most essential features. If you can keep the product's look and feel. If you can reduce a product's feature set. Product size is the largest single contributor to a development For more on manipulating schedule. Although not as influential as product size. You can develop the other 20 percent later.
Smaller products take less time. A product goals can have on a development schedule. Chapter Cutting the size of a medium-size program by one- half will typically cut the effort required by almost two-thirds. Both product size and product characteristics offer opportunities to cut de- velopment time.
Choose your battles. They require additional coordination with other Control. The exact amount of schedule reduc- tion made possible by focusing on product size and product characteristics is limited only by your customer's product concept and your team's creativity. You can also reduce it by developing in a higher-level language or tool set so that each feature requires less code.
If the feature set is flexible. Table Neil Olsen conducted a study in which he found that going from low spending to medium spending on staffing. Rapid-Development Strategy similarly dramatic results. Choosing tools effectively and managing the risks involved are key aspects of a rapid-development initiative.
In other cases. Good practices tend to support one another. Synergy There is a point at which your focus on people.
At the same time. In some cases. Software-engineering practices can also be synergistic. But when spending on staffing. Table describes some trade-offs among different development approaches. Design and code reviews help to disseminate knowledge about both the coding standard and existing reusable components.
For many projects. The first three steps in achieving the best possible schedule make up "efficient development. Efficient development. That approach produces better than average results in and Chapter 4. Many people achieve their schedule goals af- "Software Development ter they put the first three pillars into place..
Can you achieve shorter schedules without first attaining efficient develop- ment? Some people discover that they Fundamentals. The second For an example of the approach listed in the table is what I call "efficient development. You can choose effective. If you choose specific schedule-oriented practices without a general strategy. Until you attain efficient development. Classic-Mistakes Town Figure From where most organizations are now.
You'll have to make small trade-offs r merit. Assurance Fundamentals. There comes a point when you're working as smart as you costs of schedule compression. For more on the oriented practices. After you reach efficient development. As Figure shows.
To get here. If you are practicing efficient development and find that you between speed-oriented and schedule-risk-oriented still need better schedule performance.
Tlje road to rapid development. You're prevented from exercising the technology dimen- sion to the utmost. They have learned how see Section 6. Shrink it as much as you can. If you're working on an in-house business program. Because of increased communications and man- agement overhead. Few projects welcome such trade-offs. If you're developing a fuel-injection system for a car. At the strategy level.