Home > Store

Essence of Software Engineering, The: Applying the SEMAT Kernel, Rough Cuts

Rough Cuts

  • Available to Safari Subscribers
  • About Rough Cuts
  • Rough Cuts are manuscripts that are developed but not yet published, available through Safari. Rough Cuts provide you access to the very latest information on a given topic and offer you the opportunity to interact with the author to influence the final publication.

Not for Sale

Description

  • Copyright 2013
  • Dimensions: 6-1/4" x 9-1/8"
  • Pages: 352
  • Edition: 1st
  • Rough Cuts
  • ISBN-10: 0-13-315316-9
  • ISBN-13: 978-0-13-315316-3

This is the Rough Cut version of the printed book.

 

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 Ke

Updates

Submit Errata

More Information