Great technology alone is rarely sufficient to ensure a product’s success. Scenario-Focused Engineering is a customer-centric, iterative approach used to design and deliver the seamless experiences and emotional engagement customers demand in new products. In this book, you’ll discover the proven practices and lessons learned from real-world implementations of this approach, including why delight matters, what it means to be customer-focused, and how to iterate effectively using the Fast Feedback Cycle.
In an engineering environment traditionally rooted in strong analytics, the ideas and practices for Scenario-Focused Engineering may seem counter-intuitive. Learn how to change your team’s mindset from deciding what a product, service, or device will do and solving technical problems to discovering and building what customers actually want.
Improve the methods and mindsets you use to:
Austina De Bonte is a trainer, coach, consultant, and change agent. Austina conceived and founded the Scenario-Focused Engineering initiative in 2008 to help accelerate Microsoft’s shift towards dramatically more customer-focused, iterative design and product development approaches.
Drew Fletcher is a software design consultant in the Seattle area. Drew joined Microsoft’s Engineering Excellence team in 2008 as the Director of Program Management where he teamed up with Austina to develop and champion the Scenario-Focused Engineering effort.
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.
SEMAT (Software Engineering Methods and Theory) is an international initiative designed to
identify a common ground, or universal standard, for software engineering. It is supported by
some of the most distinguished contributors to the field. Creating a simple language to describe
methods and practices, the SEMAT team expresses this common ground as a kernel–or
framework–of elements essential to all software development.
The Essence of Software Engineering introduces this kernel and shows how to apply it when
developing software and improving a team’s way of working. It is a book for software professionals,
not methodologists. Its usefulness to development team members, who need to evaluate and
choose the best practices for their work, goes well beyond the description or application of
any single method.
“Software is both a craft and a science, both a work of passion and a work of principle.
Writing good software requires both wild flights of imagination and creativity, as well as the hard
reality of engineering tradeoffs. This book is an attempt at describing that balance.”
—Robert Martin (unclebob)
“The work of Ivar Jacobson and his colleagues, started as part of the SEMAT initiative,
has taken a systematic approach to identifying a ‘kernel’ of software engineering principles and
practices that have stood the test of time and recognition.”
“The software development industry needs and demands a core kernel and language for defining
software development practices—practices that can be mixed and matched, brought on board from
other organizations; practices that can be measured; practices that can be integrated; and practices
that can be compared and contrasted for speed, quality, and price. This thoughtful book gives a
good grounding in ways to think about the problem, and a language to address the need,
and every software engineer should read it.”
Applying the book's exercises to their course assignments, students learn both to manage their time effectively and to monitor the quality of their work, good practices they will need to be successful in their future careers. The book is supported by its own electronic supplement, which includes spreadsheets for data entry and analysis. A complete instructor's package is also available.
By mastering PSP techniques early in their studies, students can avoid--or overcome--the popular "hacker" ethic that leads to so many bad habits. Employers will appreciate new hires prepared to do competent professional work without, as now is common, expensive retraining and years of experience.
New chapters are included on specifying data requirements, writing high-quality functional requirements, and requirements reuse. Considerable depth has been added on business requirements, elicitation techniques, and nonfunctional requirements. In addition, new chapters recommend effective requirements practices for various special project situations, including enhancement and replacement, packaged solutions, outsourced, business process automation, analytics and reporting, and embedded and other real-time systems projects.