Rapid Development: Taming Wild Software Schedules
Read it now on the O’Reilly learning platform with a 10-day free trial.
O’Reilly members get unlimited access to books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.
Book description
Show and hide more
Table of contents Product information
Table of contents
- Rapid Development: Taming Wild Software Schedules
- Preface
- Who Should Read This Book?
- Technical Leads
- Individual Programmers
- Managers
- 1. Welcome to Rapid Development
- What Is Rapid Development?
- Attaining Rapid Development
- General Strategy for Rapid Development
- Four Dimensions of Development Speed
- People
- Process
- Product
- Technology
- Synergy
- Efficient Development
- Efficient Development Tilted Toward Best Schedule
- All-Out Rapid Development
- Case Study: in Classic Mistakes
- Effect of Mistakes on a Development Schedule
- Classic Mistakes Enumerated
- People
- Process
- Product
- Technology
- Your Own List of Worst Practices
- Management Fundamentals
- Estimation and Scheduling
- Planning
- Tracking
- Measurement
- Further Reading on Management Fundamentals
- Requirements Management
- Design
- Construction
- Software Configuration Management
- Further Reading on Development Fundamentals
- Requirements management
- Design
- Construction
- Software configuration management (SCM)
- Error-Prone Modules
- Testing
- Technical Reviews
- Walkthroughs
- Code reading
- Inspections
- Comment on technical reviews
- General software quality
- Testing
- Reviews and inspections
- Elements of Risk Management
- Risk Assessment
- Risk Control
- Most Common Schedule Risks
- Complete List of Schedule Risks
- Risk Exposure
- Estimating Size of Loss
- Estimating Probability of Loss
- Total Project Overrun and Buffers
- Risk-Management Planning
- Risk Resolution
- Risk Monitoring
- Top-10 Risks List
- Interim Postmortems
- Risk Officer
- 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?
- Unrealistic Customer Expectations
- Overcoming the Perception of Slow Development
- The Classic View
- Soft Spots
- Schedule, Cost, and Product Trade-Offs
- Quality Trade-Offs
- Per-Person–Efficiency Trade-Off
- Pure Waterfall
- Code-and-Fix
- Spiral
- Modified Waterfalls
- Sashimi (Waterfall with Overlapping Phases)
- Waterfall with Subprojects
- Waterfall with Risk Reduction
- 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
- Function-Point Estimation
- Estimation Tips
- Estimate Presentation Styles
- 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
- Assumptions
- Two facts of life
- Assumptions
- Relationship between shortest possible and efficient schedules
- Assumptions
- Why develop efficiently?
- Recalibration
- General Estimation
- Function-Point Analysis
- 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
- Principled Negotiation
- Separate the People from the Problem
- Focus on Interests, Not Positions
- Invent Options for Mutual Gain
- Insist on Using Objective Criteria
- Customers' Importance to Rapid Development
- Improved Efficiency
- Less Rework
- Reduced Risk
- Lack of Friction
- Planning
- Requirements Analysis
- Design
- Construction
- Typical Developer Motivations
- Using the Top Five Motivation Factors
- Achievement
- Ownership
- Goal setting
- Opportunity to focus on the work itself
- Rewards and Incentives
- Pilot Projects
- Performance Reviews
- Hygiene Factors
- Other Morale Killers
- Software Uses of Teamwork
- Teamwork's Importance to Rapid Development
- Variations in Team Productivity
- Cohesiveness and Performance
- Shared, Elevating Vision or Goal
- Challenging Work
- Mix of Roles
- Team-Structure Considerations
- Kinds of Teams
- Additional Team-Design Features
- Which Kind of Team Is Best for Rapid Development?
- Business Team
- Chief-Programmer Team
- Skunkworks Team
- 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
- Sources of Change
- Killer-app syndrome
- Unclear or impossible goals
- Stable or not stable?
- Customer-oriented requirements practices
- Change analysis
- Version 2
- Short release cycles
- Change board
- Role of Productivity Tools in Rapid Development
- Areas of Special Applicability
- Productivity Tool Limitations
- Ultimate Role of Productivity Tools on Rapid-Development Projects
- Acquisition Plan
- Tools group
- Risks of setting up a tools group
- When to Deploy
- Importance of Training
- How Much Schedule Reduction to Expect
- Identifying Silver Bullets
- Biting the Bullet
- General Recovery Options
- Philosophy
- First Steps
- People
- Process
- Product
- Timing
- Introduction to Best Practices
- Organization of Best-Practice Chapters
- Other Sections
- Using the Daily Build and Smoke Test
- What Kinds of Projects Can Use the Daily-Build-and-Smoke-Test Process?
- Using Designing for Change
- Identify Areas Likely to Change
- Use Information Hiding
- Develop a Change Plan
- Define Families of Programs
- Use Object-Oriented Design
- Using Evolutionary Delivery
- Release Order
- When to Use Evolutionary Delivery
- 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
- Using JAD
- JAD Planning
- Customization
- Session
- Timeline
- Facilities
- Roles
- Common problems
- What happens during a session
- Customization
- Session
- What happens during a session
- Using Measurement
- Goals, Questions, Metrics
- Measurement Group
- What to Measure
- Granularity
- Pareto analysis
- Analysis vs. measurement
- Feedback
- Baseline report
- 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
- Using Outsourcing
- Kinds of Arrangements
- Offshore Outsourcing
- Vendor Evaluation
- Contract Considerations
- 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
- 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
- Using Reuse
- Using Opportunistic Reuse
- Adapt or salvage?
- Overestimated savings
- Experience with Opportunistic Reuse
- External reuse
- Management considerations
- Technical considerations
- Using Signing Up
- Signing Up in Different Environments
- Using Staged Delivery
- Technical Dependencies
- Developer Focus
- Theme Releases
- Kinds Of Projects
- 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
- 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
- Using Timebox Development
- Entrance Criteria for Timebox Development
- The Timebox Team
- Variations on Timebox Development
- Using User-Interface Prototyping
- Throwaway or Evolve
- Choosing a Prototyping Language
- Hollywood Facade
- End-User Feedback and Involvement
- The Finished Product
- 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
Show and hide more
Product information
- Title: Rapid Development: Taming Wild Software Schedules
- Author(s):
- Release date:
- Publisher(s): Microsoft Press
- ISBN: None