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.
The Preliminaries
Chapter 1 On Software Engineering and Management
The Path to Management
The Smart People Got It Wrong
The Rest of Us Are Still Getting It Wrong
The Functions of Management
Some Data of Interest
Hope on the Horizon
Summary
References
Chapter 2 Why Is Software So Difficult?
The Nature of the Beast
Software Development as a "Wicked" Problem
Myths Associated with Software
Forget About Godzilla—Watch Out for Ducks
Summary
References
Software Development as a Process
Chapter 3 Building the Software Development Team
Team Building as a Process
Conducting Interviews
Checking References
The Business School Conundrum
It’s DISC Time
The Apollo Syndrome
Ashby’s Law and the Ideal Team Member
Management Styles
A Maturity Model for Software Project Management
Moving from One CMM Level to Another
Task Maturity Levels
Development Phases and Personalities
The Process of Team Building
Another Reason Why Software People Are Challenging
Summary
References
Chapter 4 Developing and Maintaining the Project Plan
The Project Charter
The Software Development Plan
Allocating Flow Time
Using the Work Breakdown Structure
Person Loading
Optimizing the Project Plan Using the Design Structure Matrix
Risk Management
Summary
References
Management Methods and Technology
Chapter 5 Selecting a Software Development Lifecycle Model: Management Implications
The Software Quality Lifecycle
Viewing Software Development as a Process
Modeling Processes
Lifecycle Model Basics
The Lifecycle Models
Comparison of Lifecycle Model Features
Selecting a Software Development Lifecycle
Summary
References
Chapter 6 Modeling the Target System
Why Model Software Systems?
Requirements Modeling Methods
Requirements Analysis Using Self-Interaction Matrixes
System Response Table (SRT) Specification Method and Real-Time Systems
Use Cases
Design Methods Overview
Selecting Appropriate System-Modeling Techniques
Summary
References
Chapter 7 Estimating Project Size, Cost, and Schedule
Viewing Cost Estimation as a Process
Estimating Variability as a Function of Project Flow Time
Costing and Sizing Software Projects
General Form of Schedule Estimation Formulas
IBM’s Findings at the Federal Systems Division
Software Lifecycle Management
Function Point Estimation Method
3D Function Point Method
Pseudocode-Based Estimation Method
Cost and Schedule Estimating: An Advisory
Constructive Cost Model
COCOMO II
The Cost Variance Method
Summary
References
Chapter 8 Tracking the Software Project Plan
Tracking Schemes
Earned Value Management
Using EVM: Terms and Formulas
Precedence Diagramming for Cost and Schedule Control
Taking Remedial Action
Avoiding Cost and Scheduling Problems in the First Instance
About Complexity and Project Success
Summary
References
Managing Software Professionals
Chapter 9 Improving Team Performance
What Research Reveals
More Recent Results
The Basics
The Relative Importance of the Workplace
Why People Work
Models of What Motivates People
How You Can Affect Team Performance
When It All Comes Together or Comes Apart
How Much CMM Is Enough?
Managing High-Performance Teams
Summary
References
Chapter 10 Evaluating Software Development Teams
Classic Techniques for Evaluating Individuals
The Strategy-Based Evaluation Method
Using SEM
The SEM Process
Traditional Performance Evaluation Methods vs. SEM
Evaluating the Software Development Team
An Alternative Scheme for Evaluating Software Development Teams
Lawrence J. Peters, Ph.D., CSDP, has 40 years’ experience as a software engineering manager, developer, consultant, and instructor. He’s led more than a dozen multimillion-dollar software projects to success, and consults and trains for several Fortune 500 clients. He’s also written four books, developed a software engineering master’s program, and taught at several universities.