Freshly Printed - allow 7 days lead
Couldn't load pickup availability
Managing and Leading Software Projects
Richard E. Fairley (Author)
9780470294550, Wiley
Hardback, published 6 March 2009
512 pages, Drawings: 137 B&W, 0 Color; Tables: 55 B&W, 0 Color
25.9 x 18.5 x 3.3 cm, 1.134 kg
"This book is readable, informative, and well organized.... The material presented is up to date with respect to documents that were published at the time the book was written." (Computing Reviews, May 15, 2009) "Mark it up and keep it on your bookshelf, and be sure to reference it frequently." (Computing Reviews, April 28, 2008)
(PMI is a registered mark of Project Management Institute, Inc.)
Preface xv 1 Introduction 1 1.1 Introduction to Software Project Management 1 1.2 Objectives of This Chapter 2 1.3 Why Managing and Leading Software Projects Is Difficult 2 1.3.1 Software Complexity 3 1.3.2 Software Conformity 4 1.3.3 Software Changeability 4 1.3.4 Software Invisibility 5 1.3.5 Team-Oriented Intellect-Intensive Work 6 1.4 The Nature of Project Constraints 9 1.5 A Workflow Model for Managing Software Projects 13 1.6 Organizational Structures for Software Projects 16 1.6.1 Functional Structures 16 1.6.2 Project Structures 17 1.6.3 Matrix Structures 17 1.6.4 Hybrid Structures 18 1.7 Organizing the Project Team 19 1.7.1 The System Engineering Team 19 1.7.2 The Software Engineering Team 20 1.8 Maintaining the Project Vision and the Product Vision 21 1.9 Frameworks Standards and Guidelines 22 1.10 Key Points of Chapter 1 23 1.11 Overview of the Text 23 References 24 Exercises 25 Appendix 1A: Frameworks Standards and Guidelines for Managing Software Projects 28 1A.1 The CMMI-DEV-v1.2 Process Framework 28 1A.2 ISO/IEC and IEEE/EIA Standards 12207 34 1A.3 IEEE/EIA Standard 1058 36 1A.4 The PMI Body of Knowledge 37 2 Process Models for Software Development 39 2.1 Introduction to Process Models 39 2.2 Objectives of This Chapter 42 2.3 A Development-Process Framework 42 2.3.1 Users Customers and Acquirers 43 2.3.2 System Requirements and System Design 46 2.3.3 Software Requirements Architecture and Implementation 47 2.3.4 Verification and Validation 50 2.4 Tailoring the System Engineering Framework for Software-Only Projects 52 2.5 Traditional Software Development Process Models 54 2.5.1 Hacking 54 2.5.2 Requirements-to-Code 55 2.5.3 The Waterfall Development Model 55 2.5.4 Guidelines for Planning and Controlling Traditional Software Projects 58 2.6 Iterative-Development Process Models 58 2.6.1 The Incremental-Build Model 59 2.6.2 The Evolutionary Model 64 2.6.3 Agile Development Models 66 2.6.4 The Scrum Model 68 2.6.5 The Spiral Meta-Model 69 2.6.6 Guidelines for Planning and Controlling Iterative-Development Projects 71 2.7 Designing an Iterative-Development Process 72 2.8 The Role of Prototyping in Software Development 74 2.9 Key Points of Chapter 2 75 References 76 Exercises 77 Appendix 2A: Frameworks Standards and Guidelines for Software Development Process Models 79 2A.1 The CMMI-DEV-v1.2 Technical Solution Process Area 79 2A.2 Development Processes in ISO/IEC and IEEE/EIA Standards 12207 80 2A.3 Technical Process Plans in IEEE/EIA Standard 1058 81 2A.4 The PMI Body of Knowledge 81 Appendix 2B: Considerations for Selecting an Iterative- Development Model 82 3 Establishing Project Foundations 85 3.1 Introduction to Project Foundations 85 3.2 Objectives of This Chapter 86 3.3 Software Acquisition 87 3.4 Requirements Engineering 88 3.4.1 Requirements Development 89 3.4.2 Requirements Analysis 96 3.4.3 Technical Specifications 98 3.4.4 Requirements Verification 105 3.4.5 Requirements Management 106 3.5 Process Foundations 109 3.5.1 Specifying the Scope of Your Project 110 3.5.2 The Contractual Agreement 110 3.6 Key Points of Chapter 3 112 References 113 Exercises 114 Appendix 3A: Frameworks Standards and Guidelines for Product Foundations 116 3A.1 The CMMI-DEV-v1.2 Process Areas for Requirements Development and Requirements Management 116 3A.2 Product Foundations in ISO/IEC and IEEE/EIA Standards 12207 117 3A.3 IEEE/EIA Standard 1058 118 3A.4 The PMI Body of Knowledge 118 4 Plans and Planning 119 4.1 Introduction to the Planning Process 119 4.2 Objectives of This Chapter 120 4.3 The Planning Process 121 4.4 The CMMI-DEV-v1.2 Process Area for Project Planning 125 4.4.1 Planning Agile Projects 128 4.4.2 Balancing Agility and Discipline 129 4.5 A Minimal Project Plan 129 4.6 A Template for Software Project Management Plans 130 4.6.1 Front Matter 130 4.6.2 Project Summary 132 4.6.3 Evolution Definitions and References 134 4.6.4 Project Organization 136 4.6.5 Managerial Processes 137 4.6.6 Technical Processes 143 4.6.7 Supporting Processes 145 4.6.8 Additional Plans Appendixes Index 149 4.7 Techniques for Preparing a Project Plan 150 4.7.1 Tailoring the Project Plan Template 150 4.7.2 Including Predefined Elements 152 4.7.3 Using Organizational Support 152 4.7.4 Leading a Planning Team 153 4.7.5 Incremental Planning 153 4.8 Key Points of Chapter 4 154 References 154 Exercises 155 Appendix 4A: Frameworks Standards and Guidelines for Project Planning 156 4A.1 The CMMI-DEV-v1.2 Project Planning Process Area 156 4A.2 ISO/IEC and IEEE/EIA Standards 12207 157 4A.3 IEEE/EIA Standard 1058 158 4A.4 The PMI Body of Knowledge 158 Appendix 4B: Annotated Outline for Software Project Management Plans Based on IEEE Standard 1058 159 4B.1 Purpose 159 4B.2 Evolution of Plans 160 4B.3 Overview 160 4B.4 Format of a Software Project Management Plan 160 4B.5 Structure and Content of the Plan 162 5 Project Planning Techniques 173 5.1 Introduction to Project Planning Techniques 173 5.2 Objectives of This Chapter 174 5.3 The Scope of Planning 175 5.4 Rolling-Wave Planning 175 5.5 Scenarios for Developing a Project Plan 176 5.6 Developing the Architecture Decomposition View and the Work Breakdown Structure 177 5.7 Guidelines for Designing Work Breakdown Structures 182 5.8 Developing the Project Schedule 188 5.8.1 The Critical-Path Method 190 5.8.2 The PERT Method 190 5.8.3 Task-Gantt Charts 193 5.9 Developing Resource Profiles 193 5.10 Resource-Gantt Charts 199 5.11 Estimating Project Effort Cost and Schedule 199 5.12 Key Points of Chapter 5 201 References 202 Exercises 202 Appendix 5A: Frameworks Standards and Guidelines for Project Planning Techniques 204 A5.1 Specific Practices of the CMMI-DEV-v1. 2 Project Planning Process Area 204 5A.2 ISO/IEC and IEEE/EIA Standards 12207 205 5A.3 IEEE/EIA Standard 1058 205 5A.4 The PMI Body of Knowledge 206 6 Estimation Techniques 207 6.1 Introduction to Estimation Techniques 207 6.2 Objectives of This Chapter 208 6.3 Fundamental Principles of Estimation 209 6.4 Designing to Project Constraints 214 6.5 Estimating Product Size 216 6.6 Pragmatic Estimation Techniques 224 6.6.1 Rule of Thumb 224 6.6.2 Analogy 226 6.6.3 Expert Judgment 227 6.6.4 Delphi Estimation 227 6.6.5 WBS/CPM/PERT 229 6.7 Theory-Based Estimation Models 230 6.7.1 System Dynamics 230 6.7.2 Slim 231 6.8 Regression-Based Estimation Models 234 6.8.1 COCOMO Models 238 6.8.2 Monte Carlo Estimation 244 6.8.3 Local Calibration 244 6.9 Estimation Tools 249 6.10 Estimating Life Cycle Resources Effort and Cost 249 6.11 An Estimation Procedure 251 6.12 A Template for Recording Estimates 256 6.13 Key Points of Chapter 6 258 References 258 Exercises 259 Appendix 6A: Frameworks Standards and Guidelines for Estimation 262 6A.1 Estimation Goals and Practices of the CMMI-DEV-v1.2 Project Planning Process Area 262 6A.2 ISO/IEC and IEEE/EIA Standards 12207 263 6A.3 IEEE/EIA Standard 1058 263 6A.4 The PMI Body of Knowledge 263 7 Measuring and Controlling Work Products 265 7.1 Introduction to Measuring and Controlling Work Products 265 7.2 Objectives of This Chapter 268 7.3 Why Measure? 268 7.4 What Should Be Measured? 269 7.5 Measures and Measurement 270 7.6 Measuring Product Attributes 276 7.6.1 Measuring Operational Requirements and Technical Specifications 276 7.6.2 Measuring and Controlling Changes to Work Products 281 7.6.3 Measuring Attributes of Architectural Design Specifications 285 7.6.4 Measuring Attributes of Software Implementation 288 7.6.5 Complexity Measures for Software Code 293 7.6.6 Measuring Integration and Verification of Software Units 298 7.6.7 Measuring System Verification and Validation 299 7.7 Measuring and Analyzing Software Defects 301 7.8 Choosing Product Measures 309 7.9 Practical Software Measurement 311 7.10 Guidelines for Measuring and Controlling Work Products 311 7.11 Rolling-Wave Adjustments Based on Product Measures and Measurement 313 7.12 Key Points of Chapter 7 313 References 314 Exercises 315 Appendix 7A: Frameworks Standards and Guidelines for Measuring and Controlling Work Products 319 7A.1 The CMMI-DEV-v1.2 Monitoring and Control Process Area 319 7A.2 ISO/IEC and IEEE/EIA Standards 12207 320 7A.3 IEEE/EIA Standard 1058 321 7A.4 The PMI Body of Knowledge 321 7A.5 Practical Software and Systems Measurement (PSM) 321 Appendix 7B: Procedures and Forms for Software Inspections 322 7B.1 Conducting a Software Inspection 322 7B.2 The Defect Checklist 324 7B.3 Conducting an Inspection Meeting 325 8 Measuring and Controlling Work Processes 333 8.1 Introduction to Measuring and Controlling Work Processes 333 8.2 Objectives of This Chapter 336 8.3 Measuring and Analyzing Effort 336 8.4 Measuring and Analyzing Rework Effort 339 8.5 Tracking Effort Schedule and Cost; Estimating Future Status 342 8.5.1 Binary Tracking 342 8.5.2 Estimating Future Status 345 8.6 Earned Value Reporting 347 8.7 Project Control Panel® 353 8.8 Key Points of Chapter 8 357 References 358 Exercises 358 Appendix 8A: Frameworks Standards and Guidelines for Measuring and Controlling Work Processes 361 9 Managing Project Risk 363 9.1 Introduction to Managing Project Risk 363 9.2 Objectives of This Chapter 365 9.3 An Overview of Risk Management for Software Projects 366 9.4 Conventional Project Management Techniques 369 9.5 Risk Identification Techniques 373 9.5.1 Checklists 373 9.5.2 Brainstorming 375 9.5.3 Expert Judgment 375 9.5.4 SWOT 375 9.5.5 Analysis of Assumptions and Constraints 375 9.5.6 Lessons-Learned Files 376 9.5.7 Cost and Schedule Modeling 376 9.5.8 Requirements Triage 379 9.5.9 Assets Inventory 380 9.5.10 Trade-Off Analysis 380 9.6 Risk Analysis and Prioritization 381 9.7 Risk Mitigation Strategies 382 9.7.1 Risk Avoidance 382 9.7.2 Risk Transfer 383 9.7.3 Risk Acceptance 383 9.7.4 Immediate Action 384 9.7.5 Contingent Action 385 9.8 Top-N Risk Tracking and Risk Registers 388 9.9 Controlling the Risk Management Process 392 9.10 Crisis Management 394 9.11 Risk Management at the Organizational Level 395 9.12 Joint Risk Management 396 9.13 Key Points of Chapter 9 396 References 397 Exercises 397 Appendix 9A: Frameworks Standards and Guidelines for Risk Management 399 9A.1 The CMMI-DEV-v1.2 Risk Management Process Area 399 9A.2 ISO/EIC and IEEE/EIA Standards 12207 400 9A.3 IEEE/EIA Standard 1058 400 9A.4 The PMI Body of Knowledge 401 9A.5 IEEE Standard 1540 402 Appendix 9B: Software Risk Management Glossary 404 10 Teams Teamwork Motivation Leadership and Communication 407 10.1 Introduction 407 10.2 Objectives of This Chapter 408 10.3 Managing versus Leading 408 10.4 Teams and Teamwork 410 10.5 Maintaining Morale and Motivation 417 10.6 Can’t versus Won’t 418 10.7 Personality Styles 420 10.7.1 Jungian Personality Traits 420 10.7.2 MBTI Personality Types 421 10.7.3 Dimensions of Social Styles 425 10.8 The Five-Layer Behavioral Model 427 10.9 Key Points of Chapter 10 430 References 430 Exercises 432 Appendix 10A: Frameworks Standards and Guidelines for Teamwork and Leadership 433 10A.1 The CMMI-DEV-v1.2 Framework Processes 433 10A.2 ISO/IEC and IEEE/EIA Standards 12207 433 10A.3 IEEE/EIA Standard 1058 433 10A.4 The PMI Body of Knowledge 434 10A.5 Other Sources of Information 434 10A.5.1 The People CMM 434 10A.5.2 The Personal Software Process 435 10A.5.3 The Team Software Process 436 10A.5.4 Peopleware 436 11 Organizational Issues 439 11.1 Introduction to Organizational Issues 439 11.2 Objectives of This Chapter 440 11.3 The Influence of Corporate Culture 441 11.4 Assessing and Nurturing Intellectual Capital 443 11.5 Key Personnel Roles 444 11.6 Fifteen Guidelines for Organizing and Leading Software Engineering Teams 449 11.6.1 Introduction to the Guidelines 449 11.6.2 The Guidelines 450 11.6.3 Summary of the Guidelines 463 11.7 Key Points of Chapter 11 464 References 464 Exercises 465 Appendix 11: Frameworks Standards and Guidelines for Organizational Issues 467 A11.1 The CMMI-DEV-v1.2 Process Framework 467 A11.2 ISO and IEEE Standards 12207 469 A11.3 IEEE/EIA Standard 1058 470 A11.4 The PMI Body of Knowledge 470 Glossary of Terms 471 Guidance for Term Projects 481 Index 487
Subject Areas: Electronics & communications engineering [TJ]
