PSP : a self-improvement process for software engineers

Bibliographic Information

PSP : a self-improvement process for software engineers

Watts S. Humphrey

(The SEI series in software engineering)

Addison-Wesley, c2005

Available at  / 6 libraries

Search this Book/Journal

Note

Includes bibliographical references and index

Description and Table of Contents

Description

Most software-development groups have embarrassing records: By some accounts, more than half of all software projects are significantly late and over budget, and nearly a quarter of them are cancelled without ever being completed. Although developers recognize that unrealistic schedules, inadequate resources, and unstable requirements are often to blame for such failures, few know how to solve these problems. Fortunately, the Personal Software Process (PSP) provides a clear and proven solution. Comprising precise methods developed over many years by Watts S. Humphrey and the Software Engineering Institute (SEI), the PSP has successfully transformed work practices in a wide range of organizations and has already produced some striking results. This book describes the PSP and is the definitive guide and reference for its latest iteration. PSP training focuses on the skills required by individual software engineers to improve their personal performance. Once learned and effectively applied, PSP-trained engineers are qualified to participate on a team using the Team Software Process (TSP), the methods for which are described in the final chapter of the book. The goal for both PSP and TSP is to give developers exactly what they need to deliver quality products on predictable schedules. PSPSM: A Self-Improvement Process for Software Engineers presents a disciplined process for software engineers and anyone else involved in software development. This process includes defect management, comprehensive planning, and precise project tracking and reporting. The book first scales down industrial software practices to fit the needs of the module-sized program development, then walks readers through a progressive sequence of practices that provide a sound foundation for large-scale software development. By doing the exercises in the book, and using the PSP methods described here to plan, evaluate, manage, and control the quality of your own work, you will be well prepared to apply those methods on ever larger and more critical projects. Drawing on the author's extensive experience helping organizations to achieve their development goals, and with the PSP benefits well illustrated, the book presents the process in carefully crafted steps. The first chapter describes overall principles and strategies. The next two explain how to follow a defined process, as well as how to gather and use the data required to manage a programming job. Several chapters then cover estimating and planning, followed by quality management and design. The last two chapters show how to put the PSP to work, and how to use it on a team project. A variety of support materials for the book, as described in the Preface, are available on the Web. If you or your organization are looking for a way to improve your project success rate, the PSP could well be your answer.

Table of Contents

Preface xiiiChapter 1: The Personal Process Strategy 11.1. The PSP's Purpose 3 1.2. The Logic for a Software Engineering Discipline 4 1.3. Using Disciplined Development Practices 6 1.4. Operational Processes 6 1.5. Defining and Using a Personal Process 7 1.6. Learning to Use a Personal Process 8 1.7. Preparing for the Team Software Process 9 1.8. Summary 9 Reference 10 Chapter 2: The Baseline Personal Process 112.1. What Is a Process? 12 2.2. Defining Your Own Process 13 2.3. Baseline Process Contents 14 2.4. Why Forms Are Helpful 16 2.5. The PSP Process Elements 17 2.6. The PSP0 Process 18 2.7. PSP0 Measures 20 2.8. Time Recording 21 2.9. Defect Recording 24 2.10. The PSP0 Project Plan Summary 30 2.11. The Compile Phase 31 2.12. Incremental Development 32 2.13. PSP Tool Support 34 2.14. Summary 34 2.15. Exercises 34 Chapter 3: Measuring Software Size 353.1. Size Measures 35 3.2. Establishing a Database Counting Standard 40 3.3. Establishing a Line-of-Code Counting Standard 40 3.4. Size Accounting 42 3.5. Using Size Data 45 3.6. Calculating Productivity 47 3.7. Size Counters 48 3.8. Other Size Measures 53 3.9. Summary 54 3.10. Exercises 54 References 55 Chapter 4: Planning 574.1. The Planning Process 58 4.2. Why Make Plans? 59 4.3. What Is a Plan? 60 4.4. The Contents of a Software Plan 60 4.5. Planning a Software Project 62 4.6. The Conceptual Design 63 4.7. Plan Quality 65 4.8. Planning Issues 65 4.9. Summary 66 Reference 67 Chapter 5: Software Estimating 695.1. Size Estimating Principles 69 5.2. The Conceptual Design 70 5.3. Proxy-Based Estimating 71 5.4. Using Proxies in Estimating 75 5.5. Producing the Relative-Size Table 78 5.6. Estimating Considerations 80 5.7. Summary 84 Chapter 6: The PROBE Estimating Method 856.1. Estimating from Data 85 6.2. Proxy-Based Estimating 87 6.3. Estimating with Limited Data 95 6.4. An Estimating Example 100 6.5. Estimating Nonprogramming Tasks 102 6.6. Considerations in Using PROBE 105 6.7. Summary 108 6.8. Exercises 108 Chapter 7: Software Planning 1097.1. Plan Requirements 109 7.2. Project and Period Plans 111 7.3. Producing the Schedule 113 7.4. Making the Schedule 115 7.5. Earned Value 119 7.6. An Earned Value Example 120 7.7. Comments on the EV Example 123 7.8. Estimating Accuracy 125 7.9. The Prediction Interval 126 7.10. Alerting Management to Changes 128 7.11. Planning Considerations 129 7.12. Summary 131 7.13. Exercises 132 References 132 Chapter 8: Software Quality 1338.1. The PSP Quality Strategy 135 8.2. What Is Software Quality? 135 8.3. The Economics of Software Quality 136 8.4. Defect Types 141 8.5. Personal Quality Practices 142 8.6. Quality Measures 143 8.7. Quality Management 153 8.8. Personal Quality Management 154 8.9. Managing Product Quality 156 8.10. PSP Improvement Practices 157 8.11. Defect Prevention 158 8.12. Summary 160 References 161 Chapter 9: Design and Code Reviews 1639.1. What Are Reviews? 164 9.2. Why Review Programs? 164 9.3. Review Principles 168 9.4. The PSP Code Review Process 173 9.5. The Code Review Checklist 176 9.6. Design Reviews 181 9.7. Design Review Principles 183 9.8. Review Measures 187 9.9. Review Issues 194 9.10. Summary 201 9.11. Exercises 202 References 202 Chapter 10: Software Design 20310.1. What Is Design? 204 10.2. Why Design? 206 10.3. The Design Process 207 10.4. Design Levels 210 10.5. Design and Development Strategies 216 10.6. Design Quality 220 10.7. Summary 223 References 224 Chapter 11: The PSP Design Templates 22511.1. Design Representation 226 11.2. The Design Templates 229 11.3. The Operational Specification Template (OST) 230 11.4. The Functional Specification Template (FST) 233 11.5. The State Specification Template (SST) 236 11.6. The Logic Specification Template (LST) 240 11.7. A State-Machine Design Example 241 11.8. Using the PSP Design Templates 246 11.9. Using the Design Templates in Large-Scale Design 248 11.10. Summary 250 11.11. Exercises 250 References 250 Chapter 12: Design Verification 25312.1. Why Verify Programs? 254 12.2. Design Standards 257 12.3. Execution-Table Verification 258 12.4. Trace-Table Verification 262 12.5. Verifying State Machines 265 12.6. Loop Verification 271 12.7. Other Analytical Verification Methods 277 12.8. Verification Considerations 280 12.9. Summary 284 12.10. Exercises 284 References 285 Chapter 13: Process Extensions 28713.1. Customizing the Development Process 289 13.2. Why Define a Process? 290 13.3. The PSP Process Strategy 291 13.4. Defining a Process 291 13.5. Process Evolution 294 13.6. Example Processes 298 13.7. Process Development Considerations 306 13.8. Summary 307 13.9. Exercises 308 References 308 Chapter 14: Using the Personal Software Process 30914.1. Development Challenges 309 14.2. The Team Software Process (TSP) 313 14.3. The Logic of the TSP 314 14.4. Teambuilding 314 14.5. The TSP Launch Process 316 14.6. The TSP Coach 317 14.7. Managing Your Own Project 318 14.8. TSP Results 322 14.9. The Rewards of Teamwork 322 14.10. The TSP Team of One 323 14.11. Your Future in Software Engineering 326 References 327 Index 329

by "Nielsen BookData"

Related Books: 1-1 of 1

Details

  • NCID
    BA75033286
  • ISBN
    • 0321305493
  • Country Code
    us
  • Title Language Code
    eng
  • Text Language Code
    eng
  • Place of Publication
    Boston
  • Pages/Volumes
    xx, 346 p. 25cm
  • Parent Bibliography ID
Page Top