You are previewing Getting Results from Software Development Teams.
O'Reilly logo
Getting Results from Software Development Teams

Book Description

Learn best practices for software development project management—and lead your teams and projects to success. Dr. Lawrence Peters is an industry-recognized expert with decades of experience conducting research and leading real-world software projects. Beyond getting the best developers, equipment, budget, and timeline possible—Peters concludes that no factor is more critical to project success than the manager’s role. Drawing on proven practices from allied industries such as business, psychology, accounting, and law, he describes a broader project-management methodology—with principles that software managers can readily adapt to help increase their own effectiveness and the productivity of their teams. Unlike other books on the topic, this book focuses squarely on the manager—and shows how to get results without adopting philosophies from Genghis Khan or Machiavelli. (There is mention of Godzilla, however.) Packed with real-world examples and pragmatic advice, this book shows any software development manager—new or experienced—how to lead teams in delivering the right results for their business.

Table of Contents

  1. Getting Results from Software Development Teams
    1. SPECIAL OFFER: Upgrade this ebook with O’Reilly
    2. Acknowledgments
    3. Preface
    4. I. The Preliminaries
      1. 1. On Software Engineering and Management
        1. The Path to Management
        2. The Smart People Got It Wrong
        3. The Rest of Us Are Still Getting It Wrong
        4. The Functions of Management
        5. Some Data of Interest
        6. Hope on the Horizon
        7. Summary
        8. References
          1. Bibliography
      2. 2. Why Is Software So Difficult?
        1. The Nature of the Beast
        2. Software Development as a "Wicked" Problem
        3. Myths Associated with Software
        4. Forget About Godzilla—Watch Out for Ducks
        5. Summary
        6. References
          1. Bibliography
    5. II. Software Development as a Process
      1. 3. Building the Software Development Team
        1. Team Building as a Process
        2. Conducting Interviews
        3. Checking References
        4. The Business School Conundrum
        5. It’s DISC Time
        6. The Apollo Syndrome
        7. Ashby’s Law and the Ideal Team Member
        8. Management Styles
        9. A Maturity Model for Software Project Management
        10. Moving from One CMM Level to Another
        11. Task Maturity Levels
        12. Development Phases and Personalities
        13. The Process of Team Building
        14. Another Reason Why Software People Are Challenging
        15. Summary
        16. References
          1. Bibliography
      2. 4. Developing and Maintaining the Project Plan
        1. The Project Charter
        2. The Software Development Plan
        3. Allocating Flow Time
        4. Using the Work Breakdown Structure
          1. Developing the WBS
          2. Using Flowcharts, Gantt Charts, PERT Networks, and Rummler-Brache Diagrams
            1. Flowcharts
            2. Gantt Charts
            3. PERT Networks
            4. Rummler-Brache Diagrams
        5. Person Loading
        6. Optimizing the Project Plan Using the Design Structure Matrix
        7. Risk Management
        8. Summary
        9. References
          1. Bibliography
    6. III. Management Methods and Technology
      1. 5. Selecting a Software Development Lifecycle Model: Management Implications
        1. The Software Quality Lifecycle
        2. Viewing Software Development as a Process
        3. Modeling Processes
          1. Discovering How to Model Processes
        4. Lifecycle Model Basics
        5. The Lifecycle Models
          1. Waterfall Model
          2. Slam Dunk Model
          3. Spiral Model
          4. Evolutionary Model
          5. Stage Gate Model
          6. Rapid Prototyping Model
          7. Agile Programming Model
          8. Synchronization and Stabilization Model
        6. Comparison of Lifecycle Model Features
        7. Selecting a Software Development Lifecycle
        8. Summary
        9. References
          1. Bibliography
      2. 6. Modeling the Target System
        1. Why Model Software Systems?
        2. Requirements Modeling Methods
          1. Using Dataflow Diagrams
          2. Using IDEF0 to State Requirements
        3. Requirements Analysis Using Self-Interaction Matrixes
        4. System Response Table (SRT) Specification Method and Real-Time Systems
        5. Use Cases
        6. Design Methods Overview
        7. Selecting Appropriate System-Modeling Techniques
        8. Summary
        9. References
          1. Bibliography
      3. 7. Estimating Project Size, Cost, and Schedule
        1. Viewing Cost Estimation as a Process
        2. Estimating Variability as a Function of Project Flow Time
        3. Costing and Sizing Software Projects
        4. General Form of Schedule Estimation Formulas
        5. IBM’s Findings at the Federal Systems Division
        6. Software Lifecycle Management
        7. Function Point Estimation Method
          1. Overview of the Process
          2. An Example
          3. Automated Assistance for Function Point Computation
          4. Function Points: A Summary
        8. 3D Function Point Method
          1. Data Dimension
          2. Function Dimension
          3. Control Dimension
          4. Computing Real-Time (3D) Function Point Estimates
        9. Pseudocode-Based Estimation Method
        10. Cost and Schedule Estimating: An Advisory
        11. Constructive Cost Model
        12. COCOMO II
          1. Estimating Development Effort as a Two-Phase Process
          2. Development Effort Estimates
          3. A Simple Example
          4. Estimate Adjustments in COCOMO II
          5. Development Schedule Estimates
          6. Computing COCOMO II Scaling Factors
          7. Another Simple Example
        13. The Cost Variance Method
        14. Summary
        15. References
          1. Bibliography
      4. 8. Tracking the Software Project Plan
        1. Tracking Schemes
          1. Maximizing Profitability
          2. Being Task Oriented
          3. Finding a Better Way
        2. Earned Value Management
        3. Using EVM: Terms and Formulas
          1. Cost-Related Factors
          2. Schedule-Related Factors
          3. Work- and Content-Related Parameters
          4. Summary of EVM Factors
          5. Applying EVM
          6. Earned Schedule
          7. Summary of EVM
        4. Precedence Diagramming for Cost and Schedule Control
          1. Forward Pass
          2. Backward Pass
          3. Incorporating Float
          4. Free Float
          5. The Critical Path
          6. Cost Model
          7. Schedule and Cost Model Combined
          8. Applying Precedence Diagramming to a Software Development Schedule
        5. Taking Remedial Action
        6. Avoiding Cost and Scheduling Problems in the First Instance
        7. About Complexity and Project Success
        8. Summary
        9. References
          1. Bibliography
    7. IV. Managing Software Professionals
      1. 9. Improving Team Performance
        1. What Research Reveals
        2. More Recent Results
        3. The Basics
          1. High-Risk Technical Requirements
          2. High-Risk Schedule
          3. Staffing
          4. Resources
          5. Software Quality
        4. The Relative Importance of the Workplace
          1. The Physical Workplace
          2. The Relationship Workplace
        5. Why People Work
        6. Models of What Motivates People
          1. Maslow’s Model
          2. McClelland’s Theory
          3. Expectancy Theory
          4. Goal Setting Theory
          5. Individual Characteristics Model
          6. Herzberg’s Model
        7. How You Can Affect Team Performance
        8. When It All Comes Together or Comes Apart
        9. How Much CMM Is Enough?
        10. Managing High-Performance Teams
        11. Summary
        12. References
          1. Bibliography
      2. 10. Evaluating Software Development Teams
        1. Classic Techniques for Evaluating Individuals
        2. The Strategy-Based Evaluation Method
        3. Using SEM
        4. The SEM Process
          1. SEM—An Example
        5. Traditional Performance Evaluation Methods vs. SEM
        6. Evaluating the Software Development Team
        7. An Alternative Scheme for Evaluating Software Development Teams
        8. Summary
        9. References
          1. Bibliography
    8. A. Lawrence J. Peters
    9. Index
    10. SPECIAL OFFER: Upgrade this ebook with O’Reilly