Scott W. Ambler
In early 2006, Ivar told me about his ideas around the essentials of the software process and about how to describe them with alphas and work products. At the time, I knew he had some work to do but clearly had important insights to share. This work eventually dovetailed into SEMAT, which I was honored to be involved with at its inception. This book reflects the hard-earned experiences of a host of people, and it is destined to become a classic in the field of software engineering.
–Scott W. Ambler, Founder, AmbySoft Inc.
This book is the result of an intensive effort, SEMAT, originated by Ivar Jacobson. In close collaboration with a string of software engineering consultants, researchers, and practitioners, the authors suggest a basis for software engineering that ties together a number of issues heretofore not adequately covered in the literature. An aim of this book is to provide a basis for both a comprehensive methodology and a theory for software engineering. The book powerfully provides cogent arguments and proposes a number of solutions. I most sincerely hope that this timely book will be studied by many academic researchers and that it will spur widespread discussions and even debates, while at the same time influencing current software engineering and programming methodology research and teaching.
–Dines Bjørner, Ph.D., Dr.h.c., Prof. Emeritus DTU Informatics, Denmark
There is an increasing need for software process approaches that are sufficiently flexible to fit the variety of development situations that projects will encounter, but that have sufficient integrity to serve as a basis for developing trustable software systems. Having tried to do this by evolving the spiral model and finding how hard it is, I salute the SEMAT developers for converging on a flexible but gently prescriptive approach to cover the full range of software engineering concerns with its kernel of key process, product, and people elements. Its key principles of value-driven system definition and evolution; balancing of near-term agility and architecting for the long term; and attacking risks early and continuously, are critical success factors for coping with software’s increasing complexity, dynamism, and enterprise-criticality.
–Barry Boehm, USC, Los Angeles, CA, USA
This book is not just another surface view of software engineering, but rather an attempt to distill the fundamental concepts of software engineering into an effective model that can be used as a guide for any size and kind of software project. The book considers and addresses all factors that influence software applications, including the need or opportunity that initiates a software project, stakeholders, requirements, and the team who will construct it. The book is not all theory, but includes a number of useful examples based on real problems that many readers will recognize.
–Capers Jones, Vice President and Chief Technology Officer, Namcook Analytics LLC
A brilliant approach to bring focus back to the fundamentals in making software projects actually work. I’ve been most recently involved with websites built using dynamic object programming languages like Ruby, cutting edge app servers like Rails, and a new generation of semantic databases. Agile programming, test-driven development, and powerful application frameworks have made tremendous strides on the technology side. Yet the fundamentals of clearly understanding the objectives of a project, and building development teams that work, has lagged behind. SEMAT’s alphas lay it out in a simple, cohesive, and practical fashion. They help everyone who has a stake in the effort, including the customer and the development team, understand the scope and state of the project. Bravo! The distilled wisdom of some of the truly great thinkers who have shaped the software development landscape.
–Thomas Atwood, Ph.D., Director, CloudSuite Media, San Francisco, CA, USA
Arne J. Berre
The SEMAT community should be commended for addressing the identification of a common ground for a much-needed, practice-oriented and adaptive framework for software engineering. It is encouraging to see that the SEMAT Language and kernel also has been contributed as input to a new standard development by the Object Management Group (OMG). This book is an excellent introduction for both practitioners and academics to the principles of this emerging standard and its approach of working with software engineering methods in an agile and lean way.
–Arne J. Berre, Chief Scientist and Associate Professor II, SINTEF and University of Oslo, Norway
The Essence of Software Engineering: Applying the SEMAT Kernel is what we all have been waiting for. Being a practitioner, and leading organizational transformation in software development for more than ten years, I am often asked why there isn’t something written that guides teams on how to be flexible with their approach to delivering software solutions. This book does just that. The book isn’t about a new methodology. It is about the essentials! It is about figuring out which essentials will be needed for each type of effort, whether it be a small team building a small solution or a large distributed team with several interdependencies building large, complex solutions. One size does not fit all and The Essence of Software Engineering provides the examples for readers to relate to. The book also stresses the importance of collaborating with the stakeholders, understanding their needs, starting out with building a skinny system and building on the skinny system. I am excited to be a part of SEMAT and even more excited in applying the kernel and sharing those learnings with the software community.
–Kari Brey, Office of the CTO, WellPoint, Inc.
Simple is beautiful. You won’t be able to imagine how simple and effective the SEMAT way is to address the tough problems of software engineering that have surrounded us for more than forty years, until you read this book— The Essence of Software Engineering. The book clearly presents the concise notation, the elegant kernel elements, and the great thought behind the grand vision of “refounding software engineering based on a solid theory, proven principles and best practices.” It is a good start to establishing a common ground for practitioners and scholars in the software engineering community, as well as a solid foundation for software engineering education. The SEMAT initiative, like a fresh breeze, is blowing from west to east, and from north to south over the continents. We can see the new era of software engineering is coming.
–Dr. Zhong Chen, Chairman of SEMAT Chapter in China; Professor and Chairman, Department of Computer Science and Technology, School of EECS, Peking University, China; Deputy-Chair of Software Engineering Teaching Guidance Committee, Ministry of Education, China
For too long, software engineers have been embroiled in ideological battles. Initially these were on the placement of braces and the method of indentation. Those battles are mostly behind us, but there are new ones on how we run our software projects–the process and practices we use. I’m delighted to finally see a text that gives us a framework for discussing and comparing the approaches we use–hopefully moving us from religion to science.
–Leo Crawford, FBCS CEng CITP, Cirencester, UK
Teaching software engineering within a university curriculum has always been a difficult task. In most other engineering disciplines, one begins by developing a deep understanding of the theory–the foundational principles that hold true over long periods of time. Only once the student has mastered the theory does one introduce specific methods, practices, and applications. The challenge in software engineering is to separate out the foundational principles–the “theory”–from the practice. In The Essence of Software Engineering, Ivar Jacobson and his coauthors have tackled the ambitious task of distilling out those essential elements, the “kernel,” that lie at the heart of all software engineering methods and practices. This work holds out the promise of giving those of us engaged in teaching software engineering a “theory” upon which to build a coherent and successful curriculum.
–Barry Dwolatzky, Chairman of SEMAT Chapter in South Africa; Professor of Software Engineering and Director, Joburg Centre for Software Engineering (JCSE), Johannesburg, South Africa
The SEMAT initiative provides a range of important possibilities in terms of teaching software engineering. This is a strong motivation for me to engage myself in this activity. The kernel, with its essential notions of software engineering, will enable a systematic and structured teaching. The potential to compare and to assess practices and entire methods will not only be instrumental in teaching and training activities. It also has the potential to identify and categorize new research questions in softwar engineering!
–Prof. Dr. Michael Goedicke, Specification of Software Systems, Paluno, The Ruhr Institute for Software Technology, University of Duisburg-Essen, Germany; Associate Dean, College of Engineering, Carnegie Mellon University
This book presents an exciting new way of looking at software development and software engineering. What motivates me as a teacher, researcher, and practitioner of software engineering and software reuse is that for the first time we have a robust basis for a solid product-line approach to describing, analyzing, and running software development processes.
• SEMAT provides a kernel and well-founded building blocks, the essential elements of software development. These elements can be composed, adapted, and extended to describe a variety of well-known methods, such as Scrum, XP, and RUP, as well as newer methods, such as for software services, embedded systems, and systematic reuse. The reusable kernel elements can be enhanced with specific practices to describe details of the method you need.
• Not only can you define and describe your method with precision, but you can also use the selected elements to plan and manage your project. Each element defines specific states that can be used to track progress as the method proceeds through its lifecycle, iterations, or sprints. The state of each element tells you exactly where you are in the project and provides an indication of when you will be done. In particular, laying out the color-coded “state cards” on a table or board can give you an effective dashboard.
• The SEMAT approach can revolutionize the way we teach software development in the future. Students will learn the kernel and how to analyze, measure, and extend different methods. Then students will have a framework to quickly compare the completeness and effectiveness of different methods. They will know how to select and customize a method for a particular situation, and be prepared to perform effectively in a variety of industrial situations.
Jacobson’s previous books have led to industry-transforming contributions such as the Unified Modeling Language (UL) and the Unified Process, and so I expect this book too will have an equally profound impact.
–Martin Griss, Ph.D., Director, Silicon Valley Campus
As a software engineering professor, I often feel puzzled by how to recognize and convey the core concepts of software engineering, which I can give my students so they are equipped to cope with an ever-changing industry. This book provides a systematic and easy to understand description of the essence of software engineering. The examples in the book are intuitive, the text is easy to follow, and the topics are relevant to industry. We are in dire need of such a textbook in academia. This book is not only a good choice for software engineering courses, but also for general practitioners who wish to excel in their careers. This book will stand as one of the ever-lasting classic software engineering textbooks on the bookshelf.
–Shihong Huang, Florida Atlantic University
The goal of this book is very important: to describe a sound, common foundation for software development. Reaching beyond the hype, the kernel represents the most important elements of any software engineering endeavor and their relation to each other. From a practical perspective, this allows developers to break free of methodological dogmas and tailor their methods according to their own needs. From a theoretical perspective, the kernel is a frame for a comprehensive theory of software engineering. Such a theory is a Holy Grail of software engineering, elevating the discipline from the travails of trial and error tthe province of premeditated design.
–Professor Pontus Johnson, Ph.D., Industrial Information and Control Systems, KTH—Royal Institute of Technology, Stockholm, Sweden
What is the essence of software engineering? Why should we bother with fundamentals while we study new approaches for solving the problems of software engineering? For a long time, we have not only been faced with a variety of tough problems, but have also been bogged down by the continuously growing number of methods, techniques, and approaches in the field. This book introduces a kernel as a base to understanding software engineering, as well as managing it effectively. It is a unique and very valuable book for anyone with an interest in software engineering. Actually, I have introduced the SEMAT approach in my software engineering courses and also to engineers and managers from the industry where the interest for SEMAT is high.
–Chao Liu, Professor, School of Computer Science and Engineering; Director of Software Engineering Institute, Beihang University, Beijing, China
This book describes a practical and adaptable approach for software engineering. It succeeds where previous attempts at defining adaptable approaches have failed. Instead of starting with a heavyweight process framework and tailoring it for lightweight use, it starts with a common kernel on top of which essential practices can be added to meet the demands of the software engineering situation at hand. We have known for decades that management of software engineering is one of the most difficult things to do, and I am convinced that the SEMAT approach described in this book will be of great help to anyone involved in the management of software engineering!
–Barry Myburgh, M.D. and Principal Consultant, Insyte Information Systems Engineering, Johannesburg, South Africa
The SEMAT initiative is a welcome effort to skim away the methodological froth that has long bedeviled us and to reveal the true common core under all software approaches–new and old, fashionable and unfashionable. In this way, managers, practitioners, and academics will be able to compare like with like and therefore make more reasoned discrimination among the smorgasbord of practices and methodologies on offer. I welcome this book, among several other endeavors that seek to promote the SEMAT approach.
–Meilir Page-Jones, Senior Consulting Methodologist, Wayland Systems Inc., Renton, WA, USA
June Sung Park
SEMAT, I believe, will make a landmark contribution to the history of software engineering, which was started back in the 1960s. Its main contribution is to generalize and simplify the core principles of human endeavors that lead to high-quality software in a predictable and controlled manner. The kernel and the language are what the software engineering community needed to have as a common base. This common base will allow countless extensions to address specific contexts and goals of software development and software project management, while making those extensions possible to compare and combine to create better and better combinations.
–Dr. June Sung Park, Professor, Industrial and Systems Engineering, KAIST; Joint Professor, Computer Science, KAIST; Adjunct Professor, School of Management, University of Texas at Dallas
Fujitsu became involved with the SEMAT initiative because we recognised how the SEMAT vision aligned with our own strategy for reusable software methods and can help us provide consistent, verifiable points of reference without impeding innovation. This book introduces the SEMAT kernel, which promises to deliver consistency, improved reuse, and a scalable approach to suit all delivery models. I believe it can potentially also help businesses improve their governance, in particular when working with third parties and partners, and even their recruitment processes. This book represents a significant milestone in the progression of software engineering.
–Ed Seymour, Principal Solution Architect, UK & Ireland, Fujitsu
Do you see “the light at the end of the tunnel” or “the forest for all the trees”? After reading this book, and discussing the distillation of software engineering the SEMAT initiative provides with my students, I do see “the forest.” It feels like the SEMAT approach cleans up and lets us organize what has grown in the field of software engineering over many decades. I also hope that the SEMAT approach will prove valuable, not only to pure “software” endeavors, but also more broadly to ICT engineering projects since we rapidly are moving into “software everywhere” and “Internet of things” where hardware plays an equal role as software. This book is worth reading and adopting for a wide range of students and engineers. A bright star, like SEMAT, may illuminate a lot in a tunnel.
–Anders Sjögren, School of ICT, Royal Institute of Technology (KTH), Stockholm, Sweden; President, Korea Software Technology Training Institution, Korea Software Technology Association
Carlos Mario Zapata
For many years, software engineers have been empirically searching for the “essence” of their discipline. Scholars are also searching for this “Holy Grail” of software engineering. I strongly support the ideas behind SEMAT and especially the idea of a “kernel” as envisioned by SEMAT. This book does not mean that the search is over, but I think it presents the best possible candidate we have for evolving towards our Holy Grail.
–Carlos Mario Zapata J., Ph.D., Chairman of SEMAT Chapter in Latin America; School of Systems, National University of Colombia