Home > Store

Essence of Software Engineering, The: Applying the SEMAT Kernel

Register your product to gain access to bonus material or receive a coupon.

Essence of Software Engineering, The: Applying the SEMAT Kernel

eBook (Watermarked)

  • Your Price: $25.59
  • List Price: $31.99
  • About Watermarked eBooks
  • This PDF will be accessible from your Account page after purchase and requires PDF reading software, such as Acrobat® Reader®.

    The eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.

    Watermarked eBook FAQ


  • Copyright 2013
  • Dimensions: 6-1/4" x 9-1/8"
  • Edition: 1st
  • eBook (Watermarked)
  • ISBN-10: 0-13-315314-2
  • ISBN-13: 978-0-13-315314-9


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.”

—Bertrand Meyer

“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.”

—Richard Soley

Sample Content

Table of Contents

Foreword by Robert Martin xvii

Foreword by Bertrand Meyer xxi

Foreword by Richard Soley xxiii

Preface xxvii

Acknowledgments xliii

Part I: The Kernel Idea Explained 1

Chapter 1: A Glimpse of How the Kernel Can Be Used 3

1.1 Why Is Developing Good Software So Challenging? 4

1.2 Getting to the Essence of Software Engineering: The Kernel 5

1.3 Using the Kernel to Address Specific Challenges: An Example 6

1.4 Learning How to Address Development Challenges with the Kernel 10

Chapter 2: A Little More Detail about the Kernel 13

2.1 How to Use the Kernel to Address a Specific Challenge: An Example 13

2.2 Introducing the Alphas 14

2.3 Alphas Have States to Help a Team Achieve Progress 18

2.4 There Is More to the Kernel 21

Chapter 3: A 10,000-Foot View of the Full Kernel 23

3.1 Organizing the Kernel 24

3.2 The Essential Things to Progress and Evolve: The Alphas 25

3.3 The Essential Things to Do: The Activities 32

3.4 Competencies 35

3.5 Finding Out More about the Kernel 36

Chapter 4: The Kernel Alphas Made Tangible with Cards 37

4.1 Using Cards As Aids to Address a Specific Challenge: An Example 38

4.2 Making the Kernel Come Alive 41

Chapter 5: Providing More Details to the Kernel through Practices 43

5.1 Making a Practice Explicit 44

5.2 How Explicit Should Practices Be? 45

5.3 Building Methods from Practices 47

5.4 Learning Methods and Practices 48

Chapter 6: What the Kernel Can Do for You 51

6.1 Developing Great Software 52

6.2 Growing 54

6.3 Learning 55

6.4 Evolving 55

6.5 Further Reading 56

Part II: Using the Kernel to Run an Iteration 59

Chapter 7: Running Iterations with the Kernel: Plan-Do-Check-Adapt 61

7.1 Terminology Used 61

7.2 Plan-Do-Check-Adapt 62

7.3 Setting the Scene 64

7.4 The Focus for the Next Few Chapters 66

Chapter 8: Planning an Iteration 69

8.1 Planning Guided by Alpha States 70

8.2 Determining the Current State in Our Story 73

8.3 Determining the Next State in Our Story 73

8.4 Determining How to Achieve the Next States in Our Story 73

8.5 How the Kernel Helps You in Planning Iterations 78

Chapter 9: Doing and Checking the Iteration 79

9.1 Doing and Checking the Iteration with the Kernel 79

9.2 Doing and Checking the Iteration in Our Story 81

9.3 How the Kernel Helps You in Doing and Checking the Iteration 84

Chapter 10: Adapting the Way of Working 87

10.1 Adapting the Way of Working with the Kernel 87

10.2 Adapting the Way of Working in the Story 88

10.3 How the Kernel Helps You in Adapting the Way of Working 90

Chapter 11: Running an Iteration with Explicit Requirement Item States 93

11.1 Working with Explicit Requirement Items 93

11.2 Planning an Iteration in Our Story 95

11.3 Doing Another Iteration in Our Story 97

11.4 Adapting the Way of Working in Our Story 100

11.5 Discussion 102

11.6 Further Reading 103

Part III: Using the Kernel to Run a Software Endeavor 105

Chapter 12: Running a Software Endeavor: From Idea to Production 107

12.1 The People in Our Story and Challenges along the Way 107

12.2 Understanding the Organizational Context 109

Chapter 13: Building the Business Case 111

13.1 Getting Ready to Start in Our Story 111

13.2 Understanding the Opportunity and the Stakeholders 115

13.3 Understanding the Solution 117

13.4 Preparing to Do the Work 119

13.5 Establishing a High-Level Plan 121

13.6 Building the Schedule 125

13.7 How the Kernel Helps You in Getting Started 128

Chapter 14: Developing the System 131

14.1 Building the Skinny System—Getting Things Working 135

14.2 Engaging the Stakeholders 136

14.3 Starting Development 138

14.4 Establishing an Agreed-on Way of Working 139

14.5 Making the Skinny System Usable—Getting Things Working Well 143

14.6 Keeping the Stakeholders Involved 144

14.7 Evolving a Usable System 146

14.8 Getting to a Good Way of Working 148

14.9 Evolving a Deployable Solution—Concluding the Work 149

14.10 Gaining Acceptance 151

14.11 Getting to Delivery 152

14.12 Done! Completing Development Work 154

14.13 How the Kernel Helps You Develop Great Software 156

Chapter 15: Operating the Software 157

15.1 Setting the Scene 157

15.2 Going Live—Successfully Deploying the System 161

15.3 Deploying the System 162

15.4 Handing Over between the Two Teams 164

15.5 Supporting the System until Retirement 167

15.6 Our Story Ends 170

15.7 Further Reading 170

Part IV: Scaling Development with the Kernel 173

Chapter 16: What Does It Mean to Scale? 175

Chapter 17: Zooming In to Provide Details 179

17.1 Making Practices Precise for Inexperienced Members 180

17.2 An Example: A Requirements Elicitation Practice 182

17.3 An Example: An Acceptance Testing Practice 184

17.4 Understanding How Practices Work Together 186

17.5 Value of Precise Practices 188

Chapter 18: Reaching Out to Different Kinds of Development 191

18.1 Agreeing on the Practices to Use 192

18.2 Adapting to Your Development Life Cycle 193

18.3 Building a Method Incrementally during Development 194

18.4 Methods in Large Organizations 197

18.5 Putting Teams in Control of Their Methods 198

Chapter 19: Scaling Up to Large and Complex Development 201

19.1 An Example of Large Development 202

19.2 Organizing Work Using the Alphas 204

19.3 Visualizing Development with the Alphas 208

19.4 Coordinating the Development Teams through Alphas 210

19.5 Empowering Teams to Scale 212

19.6 Further Reading 213

Part V: How the Kernel Changes the Way You Work with Methods 215

Chapter 20: Thinking about Methods without Thinking about Methods 217

20.1 You Think about Methods All the Time 218

20.2 Doing Rather Than Discussing 219

Chapter 21: Agile Working with Methods 221

21.1 The Full Team Owns Their Method, Rather Than a Select Few 222

21.2 Focus on Method Use Rather Than Comprehensive Method Description 223

21.3 Evolve Your Team’s Method, Rather Than Keeping Your Method Fixed 224

Part VI: What’s Really New Here? 227

Chapter 22: Refounding Methods 229

22.1 Not a Lack of Methods, but a Lack of a Foundation—a Kernel 229

22.2 The Kernel Values Practicality 230

22.3 The Kernel Is Actionable and Extensible 232

Chapter 23: Separation of Concerns Applied to Methods 235

23.1 Separating the Kernel from Practices 236

23.2 Separating Alphas from WorkProducts 237

23.3 Separating the Essence from the Details 238

Chapter 24: The Key Differentiators 241

24.1 Innovations with Methods 241

24.2 Practical Tools for Software Teams and Professionals 242

Part VII: Epilogue 245

Chapter 25: This Is Not the End 247

Chapter 26: . . . But Perhaps It Is the End of the Beginning 249

Chapter 27: When the Vision Comes True 253

27.1 The Software Professional 253

27.2 The Industry 254

27.3 The Academic World 255

27.4 An Exciting Future 256

27.5 Further Reading 257

Appendix A: Concepts and Notation 261

Appendix B: What Does This Book Cover with Respect to the Kernel? 263

B.1 Inside the Kernel, and Inside This Book 263

B.2 Outside the Kernel, but Inside This Book 264

B.3 Inside the Kernel, but Outside This Book 265

Appendix C Bibliography 267

C.1 SEMAT Working Documents 267

C.2 SEMAT: Other Documents and References 268

C.3 Other References 270

About the Authors 271

What People Are Saying about This Book 275

Index 287


Submit Errata

More Information

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information

To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.


Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.


If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information

Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.


This site is not directed to children under the age of 13.


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information

If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information

Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents

California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure

Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact

Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice

We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020