Foundations of Software and System Performance Engineering
"If this book had been available to Healthcare.gov's contractors, and they read and followed its life cycle performance processes, there would not have been the enormous problems apparent in that application. In my 40+ years of experience in building leading-edge products, poor performance is the single most frequent cause of the failure or cancellation of software-intensive projects. This book provides techniques and skills necessary to implement performance engineering at the beginning of a project and manage it throughout the product's life cycle. I cannot recommend it highly enough." -Don Shafer, CSDP, Technical Fellow, Athens Group, LLC Poor performance is a frequent cause of software project failure. Performance engineering can be extremely challenging. In Foundations of Software and System Performance Engineering, leading software performance expert Dr. Andre Bondi helps you create effective performance requirements up front, and then architect, develop, test, and deliver systems that meet them. Drawing on many years of experience at Siemens, AT&T Labs, Bell Laboratories, and two startups, Bondi offers practical guidance for every software stakeholder and development team participant. He shows you how to define and use metrics; plan for diverse workloads; evaluate scalability, capacity, and responsiveness; and test both individual components and entire systems. Throughout, Bondi helps you link performance engineering with everything else you do in the software life cycle, so you can achieve the right performance-now and in the future-at lower cost and with less pain. This guide will help you * Mitigate the business and engineering risk associated with poor system performance * Specify system performance requirements in business and engineering terms * Identify metrics for comparing performance requirements with actual performance * Verify the accuracy of measurements * Use simple mathematical models to make predictions, plan performance tests, and anticipate the impact of changes to the system or the load placed upon it * Avoid common performance and scalability mistakes * Clarify business and engineering needs to be satisfied by given levels of throughput and response time * Incorporate performance engineering into agile processes * Help stakeholders of a system make better performance-related decisions * Manage stakeholders' expectations about system performance throughout the software life cycle, and deliver a software product with quality performance Andre B. Bondi is a senior staff engineer at Siemens Corp., Corporate Technologies in Princeton, New Jersey. His specialties include performance requirements, performance analysis, modeling, simulation, and testing. Bondi has applied his industrial and academic experience to the solution of performance issues in many problem domains. In addition to holding a doctorate in computer science and a master's in statistics, he is a Certified Scrum Master.