Synopses & Reviews
Corporate and commercial software-development teams all want solutions for one important problem—how to get their high-pressure development schedules under control. In RAPID DEVELOPMENT, author Steve McConnell addresses that concern head-on with overall strategies, specific best practices, and valuable tips that help shrink and control development schedules and keep projects moving. Inside, you’ll find:
- A rapid-development strategy that can be applied to any project and the best practices to make that strategy work
- Candid discussions of great and not-so-great rapid-development practices—estimation, prototyping, forced overtime, motivation, teamwork, rapid-development languages, risk management, and many others
- A list of classic mistakes to avoid for rapid-development projects, including creeping requirements, shortchanged quality, and silver-bullet syndrome
- Case studies that vividly illustrate what can go wrong, what can go right, and how to tell which direction your project is going
- RAPID DEVELOPMENT is the real-world guide to more efficient applications development.
Project managers, technical leads, and Windows programmers throughout the industry share an important concern--how to get their development schedules under control. Rapid Development addresses that concern head-on with philosophy, techniques, and tools that help shrink and control development schedules and keep projects moving. The style is friendly and conversational--and the content is impressive.
About the Author
Steve McConnell is recognized as one of the premier authors and voices in the development community. He is Chief Software Engineer of Construx Software and was the lead developer of Construx Estimate and of SPC Estimate Professional, winner of Software Development magazine's Productivity Award. He is the author of several books, including Code Complete and Rapid Development, both honored with Software Development magazine's Jolt Award.
Table of Contents
Preface; Who Should Read This Book?; Key Benefits of This Book; Why This Book Was Written; Acknowledgments; ; Part I: EFFICIENT DEVELOPMENT; Chapter 1: Welcome to Rapid Development; 1.1 What Is Rapid Development?; 1.2 Attaining Rapid Development; Chapter 2: Rapid-Development Strategy; 2.1 General Strategy for Rapid Development; 2.2 Four Dimensions of Development Speed; 2.3 General Kinds of Fast Development; 2.4 Which Dimension Matters the Most?; 2.5 An Alternative Rapid-Development Strategy; 2.6 Further Reading; Chapter 3: Classic Mistakes; 3.1 Case Study: in Classic Mistakes; 3.2 Effect of Mistakes on a Development Schedule; 3.3 Classic Mistakes Enumerated; 3.4 Escape from Gilligan's Island; 3.5 Further Reading; Chapter 4: Software-Development Fundamentals; 4.1 Management Fundamentals; 4.2 Technical Fundamentals; 4.3 Quality-Assurance Fundamentals; 4.4 Following the Instructions; 4.5 Further General Reading; Chapter 5: Risk Management; 5.1 Elements of Risk Management; 5.2 Risk Identification; 5.3 Risk Analysis; 5.4 Risk Prioritization; 5.5 Risk Control; 5.6 Risk, High Risk, and Gambling; 5.7 Further Reading; Part II: RAPID DEVELOPMENT; Chapter 6: Core Issues in Rapid Development; 6.1 Does One Size Fit All?; 6.2 What Kind of Rapid Development Do You Need?; 6.3 Odds of Completing on Time; 6.4 Perception and Reality; 6.5 Where the Time Goes; 6.6 Development-Speed Trade-Offs; 6.7 Typical Schedule-Improvement Pattern; 6.8 Onward to Rapid Development; 6.9 Further Reading; Chapter 7: Lifecycle Planning; 7.1 Pure Waterfall; 7.2 Code-and-Fix; 7.3 Spiral; 7.4 Modified Waterfalls; 7.5 Evolutionary Prototyping; 7.6 Staged Delivery; 7.7 Design-to-Schedule; 7.8 Evolutionary Delivery; 7.9 Design-to-Tools; 7.10 Commercial Off-the-Shelf Software; 7.11 Choosing the Most Rapid Lifecycle for Your Project; 7.12 Further Reading; Chapter 8: Estimation; 8.1 The Software-Estimation Story; 8.2 Estimation-Process Overview; 8.3 Size Estimation; 8.4 Effort Estimation; 8.5 Schedule Estimation; 8.6 Estimate Refinement; 8.7 Further Reading; Chapter 9: Scheduling; 9.1 Overly Optimistic Scheduling; 9.2 Beating Schedule Pressure; 9.3 Further Reading; Chapter 10: Customer-Oriented Development; 10.1 Customers' Importance to Rapid Development; 10.2 Customer-Oriented Practices; 10.3 Managing Customer Expectations; 10.4 Further Reading; Chapter 11: Motivation; 11.1 Typical Developer Motivations; 11.2 Using the Top Five Motivation Factors; 11.3 Using Other Motivation Factors; 11.4 Morale Killers; 11.5 Further Reading; Chapter 12: Teamwork; 12.1 Software Uses of Teamwork; 12.2 Teamwork's Importance to Rapid Development; 12.3 Creating a High-Performance Team; 12.4 Why Teams Fail; 12.5 Long-Term Teambuilding; 12.6 Summary of Teamwork Guidelines; 12.7 Further Reading; Chapter 13: Team Structure; 13.1 Team-Structure Considerations; 13.2 Team Models; 13.3 Managers and Technical Leads; 13.4 Further Reading; Chapter 14: Feature-Set Control; 14.1 Early Project: Feature-Set Reduction; 14.2 Mid-Project: Feature-Creep Control; 14.3 Late Project: Feature Cuts; 14.4 Further Reading; Chapter 15: Productivity Tools; 15.1 Role of Productivity Tools in Rapid Development; 15.2 Productivity-Tool Strategy; 15.3 Productivity-Tool Acquisition; 15.4 Productivity-Tool Use; 15.5 Silver-Bullet Syndrome; 15.6 Further Reading; Chapter 16: Project Recovery; 16.1 General Recovery Options; 16.2 Recovery Plan; 16.3 Further Reading; Part III: BEST PRACTICES; Introduction to Best Practices; Organization of Best-Practice Chapters; Summary of Best-Practice Candidates; Summary of Best-Practice Evaluations; Chapter 17: Change Board; Chapter 18: Daily Build and Smoke Test; 18.1 Using the Daily Build and Smoke Test; 18.2 Managing the Risks of the Daily Build and Smoke Test; 18.3 Side Effects of the Daily Build and Smoke Test; 18.4 The Daily Build and Smoke Test's Interactions with Other Practices; 18.5 The Bottom Line on the Daily Build and Smoke Test; 18.6 Keys to Success in Using the Daily Build and Smoke Test; 18.7 Further Reading; Chapter 19: Designing for Change; 19.1 Using Designing for Change; 19.2 Managing the Risks of Designing for Change; 19.3 Side Effects of Designing for Change; 19.4 Designing for Change's Interactions with Other Practices; 19.5 The Bottom Line on Designing for Change; 19.6 Keys to Success in Using Designing for Change; 19.7 Further Reading; Chapter 20: Evolutionary Delivery; 20.1 Using Evolutionary Delivery; 20.2 Managing the Risks of Evolutionary Delivery; 20.3 Side Effects of Evvvvvvolutionary Delivery; 20.4 Evolutionary Delivery's Interactions with Other Practices; 20.5 The Bottom Line on Evolutionary Delivery; 20.6 Keys to Success in Using Evolutionary Delivery; 20.7 Further Reading; Chapter 21: Evolutionary Prototyping; 21.1 Using Evolutionary Prototyping; 21.2 Managing the Risks of Evolutionary Prototyping; 21.3 Side Effects of Evolutionary Prototyping; 21.4 Evolutionary Prototyping's Interactions with Other Practices; 21.5 The Bottom Line on Evolutionary Prototyping; 21.6 Keys to Success in Using Evolutionary Prototyping; 21.7 Further Reading; Chapter 22: Goal Setting; Chapter 23: Inspections; Chapter 24: Joint Application Development (JAD); 24.1 Using JAD; 24.2 Managing the Risks of JAD; 24.3 Side Effects of JAD; 24.4 JAD's Interactions with Other Practices; 24.5 The Bottom Line on JAD; 24.6 Keys to Success in Using JAD; 24.7 Further Reading; Chapter 25: Lifecycle Model Selection; Chapter 26: Measurement; 26.1 Using Measurement; 26.2 Managing the Risks of Measurement; 26.3 Side Effects of Measurement; 26.4 Measurement's Interactions with Other Practices; 26.5 The Bottom Line on Measurement; 26.6 Keys to Success in Using Measurement; 26.7 Further Reading; Chapter 27: Miniature Milestones; 27.1 Using Miniature Milestones; 27.2 Managing Risks of Miniature Milestones; 27.3 Side Effects of Miniature Milestones; 27.4 Miniature Milestones' Interactions with Other Practices; 27.5 The Bottom Line on Miniature Milestones; 27.6 Keys to Success in Using Miniature Milestones; 27.7 Further Reading; Chapter 28: Outsourcing; 28.1 Using Outsourcing; 28.2 Managing the Risks of Outsourcing; 28.3 Side Effects of Outsourcing; 28.4 Outsourcing's Interactions with Other Practices; 28.5 The Bottom Line on Outsourcing; 28.6 Keys to Success in Using Outsourcing; 28.7 Further Reading; Chapter 29: Principled Negotiation; Chapter 30: Productivity Environments; 30.1 Using Productivity Environments; 30.2 Managing the Risks of Productivity Environments; 30.3 Side Effects of Productivity Environments; 30.4 Productivity Environments' Interactions with Other Practices; 30.5 The Bottom Line on Productivity Environments; 30.6 Keys to Success in Using Productivity Environments; 30.7 Further Reading; Chapter 31: Rapid-Development Languages (RDLs); 31.1 Using RDLs; 31.2 Managing the Risks of RDLs; 31.3 Side Effects of RDLs; 31.4 RDLs' Interactions with Other Practices; 31.5 The Bottom Line on RDLs; 31.6 Keys to Success in Using RDLs; 31.7 Further Reading; Chapter 32: Requirements Scrubbing; Chapter 33: Reuse; 33.1 Using Reuse; 33.2 Managing the Risks of Reuse; 33.3 Side Effects of Reuse; 33.4 Reuse's Interactions with Other Practices; 33.5 The Bottom Line on Reuse; 33.6 Keys to Success in Using Reuse; 33.7 Further Reading; Chapter 34: Signing Up; 34.1 Using Signing Up; 34.2 Managing the Risks of Signing Up; 34.3 Side Effects of Signing Up; 34.4 Signing Up's Interactions with Other Practices; 34.5 The Bottom Line on Signing Up; 34.6 Keys to Success in Using Signing Up; 34.7 Further Reading; Chapter 35: Spiral Lifecycle Model; Chapter 36: Staged Delivery; 36.1 Using Staged Delivery; 36.2 Managing the Risks of Staged Delivery; 36.3 Side Effects of Staged Delivery; 36.4 Staged Delivery's Interactions with Other Practices; 36.5 The Bottom Line on Staged Delivery; 36.6 Keys to Success in Using Staged Delivery; 36.7 Further Reading; Chapter 37: Theory-W Management; 37.1 Using Theory-W Management; 37.2 Managing the Risks of Theory-W Management; 37.3 Side Effects of Theory-W Management; 37.4 Theory-W Management's Interactions with Other Practices; 37.5 The Bottom Line on Theory-W Management; 37.6 Keys to Success in Using Theory-W Management; 37.7 Further Reading; Chapter 38: Throwaway Prototyping; 38.1 Using Throwaway Prototyping; 38.2 Managing the Risks of Throwaway Prototyping; 38.3 Side Effects of Throwaway Prototyping; 38.4 Throwaway Prototyping's Interactions with Other Practices; 38.5 The Bottom Line on Throwaway Prototyping; 38.6 Keys to Success in Using Throwaway Prototyping; 38.7 Further Reading; Chapter 39: Timebox Development; 39.1 Using Timebox Development; 39.2 Managing the Risks of Timebox Development; 39.3 Side Effects of Timebox Development; 39.4 Timebox Development's Interactions with Other Practices; 39.5 The Bottom Line on Timebox Development; 39.6 Keys to Success in Using Timebox Development; 39.7 Further Reading; Chapter 40: Tools Group; Chapter 41: Top-10 Risks List; Chapter 42: User-Interface Prototyping; 42.1 Using User-Interface Prototyping; 42.2 Managing the Risks of User-Interface Prototyping; 42.3 Side Effects of User-Interface Prototyping; 42.4 User-Interface Prototyping's Interactions with Other Practices; 42.5 The Bottom Line on User-Interface Prototyping; 42.6 Keys to Success in Using User-Interface Prototyping; 42.7 Further Reading; Chapter 43: Voluntary Overtime; 43.1 Using Voluntary Overtime; 43.2 Managing the Risks of Voluntary Overtime; 43.3 Side Effects of Voluntary Overtime; 43.4 Voluntary Overtime's Interactions with Other Practices; 43.5 The Bottom Line on Voluntary Overtime; 43.6 Keys to Success in Using Voluntary Overtime; 43.7 Further Reading; Bibliography;