Home Page Icon
Home Page
Table of Contents for
I. EFFICIENT DEVELOPMENT
Close
I. EFFICIENT DEVELOPMENT
by Steve McConnell
Rapid Development: Taming Wild Software Schedules
Rapid Development: Taming Wild Software Schedules
Preface
Who Should Read This Book?
Technical Leads
Individual Programmers
Managers
Key Benefits of This Book
Why This Book Was Written
Acknowledgments
I. EFFICIENT DEVELOPMENT
1. Welcome to Rapid Development
What Is Rapid Development?
Attaining Rapid Development
2. Rapid-Development Strategy
General Strategy for Rapid Development
Four Dimensions of Development Speed
People
Process
Product
Technology
Synergy
General Kinds of Fast Development
Efficient Development
Efficient Development Tilted Toward Best Schedule
All-Out Rapid Development
Which Dimension Matters the Most?
An Alternative Rapid-Development Strategy
Further Reading
3. Classic Mistakes
Case Study: in Classic Mistakes
Effect of Mistakes on a Development Schedule
Classic Mistakes Enumerated
People
Process
Product
Technology
Escape from Gilligan's Island
Your Own List of Worst Practices
Further Reading
4. Software-Development Fundamentals
Management Fundamentals
Estimation and Scheduling
Planning
Tracking
Measurement
Further Reading on Management Fundamentals
Technical Fundamentals
Requirements Management
Design
Construction
Software Configuration Management
Further Reading on Development Fundamentals
Requirements management
Design
Construction
Software configuration management (SCM)
Quality-Assurance Fundamentals
Error-Prone Modules
Testing
Technical Reviews
Walkthroughs
Code reading
Inspections
Comment on technical reviews
Further Reading on QA Fundamentals
General software quality
Testing
Reviews and inspections
Following the Instructions
Further General Reading
5. Risk Management
Elements of Risk Management
Risk Assessment
Risk Control
Risk Identification
Most Common Schedule Risks
Complete List of Schedule Risks
Risk Analysis
Risk Exposure
Estimating Size of Loss
Estimating Probability of Loss
Total Project Overrun and Buffers
Risk Prioritization
Risk Control
Risk-Management Planning
Risk Resolution
Risk Monitoring
Top-10 Risks List
Interim Postmortems
Risk Officer
Risk, High Risk, and Gambling
Further Reading
II. RAPID DEVELOPMENT
6. Core Issues in Rapid Development
Does One Size Fit All?
What Kind of Rapid Development Do You Need?
Products with Strong Schedule Constraints
Rapid-Development Look-Alikes
So, Is All-Out Rapid Development Really What You Need?
Odds of Completing on Time
Perception and Reality
Unrealistic Customer Expectations
Overcoming the Perception of Slow Development
Where the Time Goes
The Classic View
Soft Spots
Development-Speed Trade-Offs
Schedule, Cost, and Product Trade-Offs
Quality Trade-Offs
Per-Person–Efficiency Trade-Off
Typical Schedule-Improvement Pattern
Onward to Rapid Development
Further Reading
7. Lifecycle Planning
Pure Waterfall
Code-and-Fix
Spiral
Modified Waterfalls
Sashimi (Waterfall with Overlapping Phases)
Waterfall with Subprojects
Waterfall with Risk Reduction
Evolutionary Prototyping
Staged Delivery
Design-to-Schedule
Evolutionary Delivery
Design-to-Tools
Commercial Off-the-Shelf Software
Choosing the Most Rapid Lifecycle for Your Project
Further Reading
8. Estimation
The Software-Estimation Story
Software and Construction
Software Development as a Process of Refinement
Amount of Refinement Possible
Estimation vs. Control
Cooperation
Convergence Between Estimates and Reality
The Estimation Story in a Nutshell
Estimation-Process Overview
Size Estimation
Function-Point Estimation
Estimation Tips
Estimate Presentation Styles
Effort Estimation
Schedule Estimation
Commitment-Based Scheduling
Jones's First-Order Estimation Practice
Ballpark Schedule Estimates
Background
Schedules
Efforts
System sizes
Small projects
Lines of code
Accuracy of the estimates
Shortest Possible Schedules
Assumptions
Two facts of life
Efficient Schedules
Assumptions
Relationship between shortest possible and efficient schedules
Nominal Schedules
Assumptions
Why develop efficiently?
What to Do First with the Ballpark Schedules
Estimate Refinement
Recalibration
Further Reading
General Estimation
Function-Point Analysis
9. Scheduling
Overly Optimistic Scheduling
An Example of Overly Optimistic Scheduling
Root Causes of Overly Optimistic Schedules
Effects of Overly Optimistic Schedules
Excessive Schedule Pressure
The Bottom Line
Beating Schedule Pressure
Principled Negotiation
Separate the People from the Problem
Focus on Interests, Not Positions
Invent Options for Mutual Gain
Insist on Using Objective Criteria
Further Reading
10. Customer-Oriented Development
Customers' Importance to Rapid Development
Improved Efficiency
Less Rework
Reduced Risk
Lack of Friction
Customer-Oriented Practices
Planning
Requirements Analysis
Design
Construction
Managing Customer Expectations
Further Reading
11. Motivation
Typical Developer Motivations
Using the Top Five Motivation Factors
Achievement
Ownership
Goal setting
Possibility for Growth
Work Itself
Opportunity to focus on the work itself
Personal Life
Technical-Supervision Opportunity
Using Other Motivation Factors
Rewards and Incentives
Pilot Projects
Performance Reviews
Morale Killers
Hygiene Factors
Other Morale Killers
Further Reading
12. Teamwork
Software Uses of Teamwork
Teamwork's Importance to Rapid Development
Variations in Team Productivity
Cohesiveness and Performance
Creating a High-Performance Team
Shared, Elevating Vision or Goal
Challenging Work
Sense of Team Identity
Results-Driven Structure
Competent Team Members
Mix of Roles
Commitment to the Team
Mutual Trust
Interdependence Among Members
Effective Communication
Sense of Autonomy
Sense of Empowerment
Small Team Size
High Level of Enjoyment
How to Manage a High-Performance Team
Why Teams Fail
Long-Term Teambuilding
Summary of Teamwork Guidelines
Further Reading
13. Team Structure
Team-Structure Considerations
Kinds of Teams
Additional Team-Design Features
Which Kind of Team Is Best for Rapid Development?
Team Models
Business Team
Chief-Programmer Team
Skunkworks Team
Feature Team
Search-and-Rescue Team
SWAT Team
Professional Athletic Team
Theater Team
Large Teams
Managers and Technical Leads
Further Reading
14. 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-Creep Control
Sources of Change
Killer-app syndrome
Unclear or impossible goals
Effects of Change
Wisdom of Stopping Changes Altogether
Stable or not stable?
Methods of Change Control
Customer-oriented requirements practices
Change analysis
Version 2
Short release cycles
Change board
Late Project: Feature Cuts
Further Reading
15. Productivity Tools
Role of Productivity Tools in Rapid Development
Areas of Special Applicability
Productivity Tool Limitations
Ultimate Role of Productivity Tools on Rapid-Development Projects
Productivity-Tool Strategy
Productivity-Tool Acquisition
Acquisition Plan
Tools group
Risks of setting up a tools group
Selection Criteria
Commitment
Productivity-Tool Use
When to Deploy
Importance of Training
How Much Schedule Reduction to Expect
Silver-Bullet Syndrome
Identifying Silver Bullets
Biting the Bullet
Further Reading
16. Project Recovery
General Recovery Options
Philosophy
Recovery Plan
First Steps
People
Process
Product
Timing
Further Reading
III. BEST PRACTICES
Introduction to Best Practices
Organization of Best-Practice Chapters
Other Sections
Summary of Best-Practice Candidates
Summary of Best-Practice Evaluations
17. Change Board
18. Daily Build and Smoke Test
Using the Daily Build and Smoke Test
What Kinds of Projects Can Use the Daily-Build-and-Smoke-Test Process?
Managing the Risks of the Daily Build and Smoke Test
Side Effects of the Daily Build and Smoke Test
The Daily Build and Smoke Test's Interactions with Other Practices
The Bottom Line on the Daily Build and Smoke Test
Keys to Success in Using the Daily Build and Smoke Test
Further Reading
19. Designing for Change
Using Designing for Change
Identify Areas Likely to Change
Use Information Hiding
Develop a Change Plan
Define Families of Programs
Use Object-Oriented Design
Managing the Risks of Designing for Change
Side Effects of Designing for Change
Designing for Change's Interactions with Other Practices
The Bottom Line on Designing for Change
Keys to Success in Using Designing for Change
Further Reading
20. Evolutionary Delivery
Using Evolutionary Delivery
Release Order
When to Use Evolutionary Delivery
Managing the Risks of Evolutionary Delivery
Side Effects of Evolutionary Delivery
Evolutionary Delivery's Interactions with Other Practices
The Bottom Line on Evolutionary Delivery
Keys to Success in Using Evolutionary Delivery
Further Reading
21. Evolutionary Prototyping
Using Evolutionary Prototyping
Managing the Risks of Evolutionary Prototyping
Side Effects of Evolutionary Prototyping
Evolutionary Prototyping's Interactions with Other Practices
Relationship to Other Kinds of Prototyping
The Bottom Line on Evolutionary Prototyping
Keys to Success in Using Evolutionary Prototyping
Further Reading
22. Goal Setting
23. Inspections
24. Joint Application Development (JAD)
Using JAD
JAD Planning
Customization
Session
Timeline
Facilities
Roles
Common problems
What happens during a session
Wrap-Up
JAD Design
Customization
Session
What happens during a session
Wrap-Up
Managing the Risks of JAD
Side Effects of JAD
JAD's Interactions with Other Practices
The Bottom Line on JAD
Keys to Success in Using JAD
Further Reading
25. Lifecycle Model Selection
26. Measurement
Using Measurement
Goals, Questions, Metrics
Measurement Group
What to Measure
Granularity
Using the Data You Collect
Pareto analysis
Analysis vs. measurement
Feedback
Baseline report
Limitations
Managing the Risks of Measurement
Side Effects of Measurement
Measurement's Interactions with Other Practices
The Bottom Line on Measurement
Keys to Success in Using Measurement
Further Reading
27. Miniature Milestones
Using Miniature Milestones
Managing Risks of Miniature Milestones
Side Effects of Miniature Milestones
Miniature Milestones' Interactions with Other Practices
The Bottom Line on Miniature Milestones
Keys to Success in Using Miniature Milestones
Further Reading
28. Outsourcing
Using Outsourcing
Kinds of Arrangements
Offshore Outsourcing
Vendor Evaluation
Contract Considerations
Managing the Risks of Outsourcing
Side Effects of Outsourcing
Outsourcing's Interactions with Other Practices
The Bottom Line on Outsourcing
Keys to Success in Using Outsourcing
Further Reading
29. Principled Negotiation
30. Productivity Environments
Using Productivity Environments
Managing the Risks of Productivity Environments
Side Effects of Productivity Environments
Productivity Environments' Interactions with Other Practices
The Bottom Line on Productivity Environments
Keys to Success in Using Productivity Environments
Further Reading
31. Rapid-Development Languages (RDLs)
Using RDLs
Managing the Risks of RDLs
Side Effects of RDLs
RDLs' Interactions with Other Practices
The Bottom Line on RDLs
Keys to Success in Using RDLs
Further Reading
32. Requirements Scrubbing
33. Reuse
Using Reuse
Using Opportunistic Reuse
Adapt or salvage?
Overestimated savings
Experience with Opportunistic Reuse
External reuse
Using Planned Reuse
Management considerations
Technical considerations
Managing the Risks of Reuse
Side Effects of Reuse
Reuse's Interactions with Other Practices
The Bottom Line on Reuse
Keys to Success in Using Reuse
Further Reading
34. Signing Up
Using Signing Up
Signing Up in Different Environments
Managing the Risks of Signing Up
Side Effects of Signing Up
Signing Up's Interactions with Other Practices
The Bottom Line on Signing Up
Keys to Success in Using Signing Up
Further Reading
35. Spiral Lifecycle Model
36. Staged Delivery
Using Staged Delivery
Technical Dependencies
Developer Focus
Theme Releases
Kinds Of Projects
Managing the Risks of Staged Delivery
Side Effects of Staged Delivery
Staged Delivery's Interactions with Other Practices
The Bottom Line on Staged Delivery
Keys to Success in Using Staged Delivery
Further Reading
37. Theory-W Management
Using Theory-W Management
Make Everyone a Winner
Step 1: Establish Win-Win Preconditions
Step 2: Structure a Win-Win Software Process
Step 3: Structure a Win-Win Software Product
Kinds of Projects That Can Use Theory-W
The Manager's Role
Managing the Risks of Theory-W Management
Side Effects of Theory-W Management
Theory-W Management's Interactions with Other Practices
The Bottom Line on Theory-W Management
Keys to Success in Using Theory-W Management
Further Reading
38. Throwaway Prototyping
Using Throwaway Prototyping
Managing the Risks of Throwaway Prototyping
Side Effects of Throwaway Prototyping
Throwaway Prototyping's Interactions with Other Practices
The Bottom Line on Throwaway Prototyping
Keys to Success in Using Throwaway Prototyping
Further Reading
39. Timebox Development
Using Timebox Development
Entrance Criteria for Timebox Development
The Timebox Team
Variations on Timebox Development
Managing the Risks of Timebox Development
Side Effects of Timebox Development
Timebox Development's Interactions with Other Practices
The Bottom Line on Timebox Development
Keys to Success in Using Timebox Development
Further Reading
40. Tools Group
41. Top-10 Risks List
42. User-Interface Prototyping
Using User-Interface Prototyping
Throwaway or Evolve
Choosing a Prototyping Language
Hollywood Facade
End-User Feedback and Involvement
The Finished Product
Managing the Risks of User-Interface Prototyping
Side Effects of User-Interface Prototyping
User-Interface Prototyping's Interactions with Other Practices
The Bottom Line on User-Interface Prototyping
Keys to Success in Using User-Interface Prototyping
Further Reading
43. Voluntary Overtime
Using Voluntary Overtime
Managing the Risks of Voluntary Overtime
Side Effects of Voluntary Overtime
Voluntary Overtime's Interactions with Other Practices
The Bottom Line on Voluntary Overtime
Keys to Success in Using Voluntary Overtime
Further Reading
A. Bibliography
Index
Search in book...
Toggle Font Controls
Playlists
Add To
Create new playlist
Name your new playlist
Playlist description (optional)
Cancel
Create playlist
Sign In
Email address
Password
Forgot Password?
Create account
Login
or
Continue with Facebook
Continue with Google
Sign Up
Full Name
Email address
Confirm Email Address
Password
Login
Create account
or
Continue with Facebook
Continue with Google
Next
Next Chapter
1. Welcome to Rapid Development
Part I. EFFICIENT DEVELOPMENT
Chapter 1
Chapter 2
Chapter 3
Chapter 4
Chapter 5
Add Highlight
No Comment
..................Content has been hidden....................
You can't read the all page of ebook, please click
here
login for view all page.
Day Mode
Cloud Mode
Night Mode
Reset