CMMI and Agile Blog

September 23, 2015

What’s the Difference Between a Practice and a Pattern and How do they each Improve Performance?

What’s in this Blog

In this blog I answer this question, as well as share status of work I am currently doing using the new Essence framework and patterns with two of my clients.


I recently started reading a great book titled The Pragmatic Programmer by Dave Thomas and Andrew Hunt and was pleasantly surprised to see a discussion on patterns. At a number of conferences I attended this year the subject of patterns and how they relate to practices was a common discussion topic.

So just what is the difference between a practice and a pattern and how do they each improve performance?

To help you understand let me step back and explain some activities I have been involved in over the past few months and how I am using Essence and patterns to help two of my clients improve their performance.

In June this year I talked at the Agile West Conference on the subject of patterns –, and I gave a workshop at Binghamton University –, on the topic of Essence, the new OMG standard ( I explained in my talk how Essence differs from other popular frameworks and how organizations can use it to help discover their own best patterns.   In August I gave a similar keynote address and workshop at Agile Africa.

As I explained in an interview at Agile Africa in August I have started referring to the patterns I am sharing as “thinking patterns” because they help practitioners make better decisions.

Thinking patterns differ from practices in that they set a specific context related to an organization’s current pain points. This is key to getting a discussion going in the organization related to where performance improvement is needed. Essence checklists can be used to help stimulate the discussion– not to tell the team what to do– but to get the team to decide what they should do to improve their performance given their specific situation.

What is great about Essence is that it is independent of any specific method so any team can use it. It doesn’t matter what practices an organization is currently using. It can help teams discover their own best patterns– and anti-patterns they need to avoid– leading to improved practices and better performance.

I have been involved in the software development business for forty-two years and I am only now finally discovering that we have spent a great deal of time defining processes (or practices) and the effort we have put into this activity has in too many cases failed to payback in real team performance improvement because they are not giving practitioners the real help they need to solve many of the challenges they face each day.

We still need processes, but processes help primarily when you are a beginner. Once you have moved past the beginner stage, practitioners often need more focused guidance related to the specific challenges they face each day.   This is where Essence and patterns can help.

As an example, I am finding that Essence is a really good framework to help organizations that want to become more agile to improve performance but are fearful that they might lose critical disciplined engineering processes as a result. This is a valid concern because a lot of companies when they jump to agile, miss essential fundamental engineering practices that they still need to conduct.

Essence provides the fundamental common ground that helps teams continually ask the right questions to ensure they are not losing essential engineering practices as they move their organization to a more effective way of working.

You may have heard the phrase; “With Essence your practices come alive,” and, “Essence practices are what practitioners really do, not what someone thinks they should do. “ I have been using Essence with one of my clients for the past few months to help them address specific pain points, and I am just now getting started using Essence with another client to help them rapidly improve their performance.

What I am learning is that patterns are a great vehicle to make your practices come alive in the eyes of practitioners because they provide concrete examples in how to think through real challenges leading to better decisions given your specific situation.

Over the coming months I am planning to share results from my two current projects and hopefully share successful case studies using Essence and thinking patterns together to improve performance.

January 19, 2015

New Video on Practical Ways Teams Can Use Essence and New Published Paper on Essence

A few weeks ago I shared a You Tube video providing highlights of Part I of a talk on Essence (44 minutes) I gave at Binghamton University in November, 2014 to a group of Computer Science students.  Highlights from Part II of that talk are now available where you can learn practical ways software teams can use Essence including games they can play to help assess where they are, how to conduct a root cause analysis to isolate a problem, and how to use patterns to improve their performance.

Highlights of the talk can be found at:

The Part II highlights are 30 minutes in length and at the front of this video you can find where in the video the following 13 topics can be found:

  1. Assessment Poker
  2. Case Study Results Carnegie Mellon West
  3. Root Cause Analysis Example
  4. How Essence Differs from Lean Six Sigma
  5. Examples Using Activity Spaces
  6. Using Essence Competencies
  7. Another Example Using Activity Spaces
  8. Where Can Essence Help Most?
  9. Practice Slices and Patterns
  10.  Two types of information practitioners need
  11.  Examples of Patterns
  12.  A Closing Thought
  13.  How Students Are Using Essence at Binghamton University

I also have a new published paper on Essence titled,

A “Thinking Framework” to Power Software Development Team Performance, appearing in Crosstalk, The Journal of Defense Software Engineering in the Jan/Feb, 2015 edition.

December 27, 2014

Essence: What’s New and Different?

In November of this year, 2014, I gave a talk on Essence at Binghamton University to a group of Computer Science students.  You can catch the highlights of Part I of the talk on YouTube.  This is a great video to watch if you want to learn what is new and different about Essence, the new software engineering Object Management Group (OMG) standard intended specifically for software practitioners.  If you don’t have time to watch the complete Part I– which is about 44 minutes– you can find a cross-reference at the end of the video to where in the video you can find the following 23 key topics:

  1. What is Essence?
  2. The Difference Between Scrum and Essence.
  3. What Does Essence Contain?
  4. Why Did We Create the Strange Alpha Word?
  5. What is Different About Essence?
  6. The Essence CARD Deck.
  7. An Example Demonstrating How Essence is NOT Waterfall.
  8. A Question About Essence Versus Scrum.
  9. How Essence Can Power Whatever Approach Your Team is Already Using.
  10. About the Problem We Are Trying To Solve With Essence.
  11. How Does a Team Use the Essence Model?
  12. How Essence Checklists Are Different.
  13. How Do Teams Apply the Essence Checklists?
  14. On the Importance of Knowing When You Are Done.
  15. A Question on How a Team Can Fall Back.
  16. On the Order You Address States, and Decisions on Checklists that May Not Apply.
  17. An Example of a Team Deciding if a Checklist is Applicable to them.
  18. On Activity Spaces.
  19. Competencies Within Essence.
  20. How to Figure Out if You Have a Leadership or a Management Competency Issue.
  21. What if a Team Can’t Meet a Checklist Item?
  22. Why Isn’t Risk an Alpha?
  23. Why is Hardware included in the Definition of the Software System Alpha?

As always, your comments and feedback are encouraged.

November 27, 2014

Using Essence to Help Your Team Stay Fit, and Your Organization Find its Right Level of Governance

Some have raised the question:

Is the Essence Kernel ( ) just the essentials for all software endeavors? 

At a recent Essence user guide meeting this subject was discussed when Barry Myburgh raised the issue that some of the alpha state checklists might never be achieved by some teams.

He gave an example of a team with about ten developers he had been working with that never committed to when they would get the work done.  They had goals, but the team members had no idea if their goals were achievable.  He said they were incentivized to achieve the goals so as the deadline drew near the team worked hard, often late into the night, to get the job done.  When I listened to Barry describe his experience it resonated with my own experiences with many of my clients.

Examples of alpha state checklists teams might never achieve include:

Work Alpha, Under Control state:

  • Tasks are consistently completed on time and within estimates
  • Estimates are revised to reflect the team’s performance

Team Alpha, Performing state:

  • The team consistently meets its commitments
  • Wasted work, and the potential for wasted work are continuously eliminated

Some teams may never get to certain states such as Work Under Control because they don’t revise their estimates to reflect team performance. Rather they keep striving for goals that may be beyond their reach.   Ian Spence pointed out in our user guide meeting that some alpha state checklists are aspirational and are getting more at the health of an endeavor.  But when some people hear aspirational it can raise concerns.

Winifred Menezes, another Essence volunteer, pointed out one concern by asking—

What if a team is discussing their health and status and realize that they haven’t met a checklist item, wouldn’t there be a temptation to say, ”Oh, that item is only aspirational so we’re good and on track.”

Winifred raises a good point.  By calling some of the checklists aspirational are we making it easy for teams to decide these checklists are not essential and therefore require little attention?  Will this in fact dilute the value of the Essence framework as a guide to what is essential on all software endeavors? Will it cause organizations that are considering the adoption of Essence to lose confidence in Essence as an aid to help them find their right level of governance?

Toward the end of our user guide meeting Barry Myburgh after listening to the discussion said he had previously thought that on every software endeavor you needed to get through all of the alpha states because they were all essential to all software endeavors, but he now realized that was not the case.  Barry went on to draw an analogy.  He said when you use Essence it is like putting your team on a fitness program.  When a team uses Essence it brings an awareness of areas where they may have gotten out of shape, and can help motivate their team to improve in the future.

I personally like this analogy.  It reminds me of one of my Scrum clients who recently used a similar analogy by saying their team had gotten out of shape and they needed to go back to the gym.   They were doing this by giving the team some remedial training in best Scrum practices, and some additional coaching.  We heard a similar message from Cecile Peraire, another Essence volunteer, and a professor at Carnegie Mellon West where they have been conducting field studies using Essence with students.   In one of those studies a student indicated that using Essence Reflection Meetings reminded the team to think about points that otherwise would have been missed (  Similarly, when I was writing my latest book ( I thought what I was describing were fundamentals that most teams followed, but then I realized what I was actually describing was what it means to develop a high performance capability.

The concern that some teams may dismiss checklists that are viewed as aspirational is a valid one.  A simple way to answer this concern is to point out that we all need coaches at times to help remind us of our responsibilities—and to remind us when it’s time to head back to gym– if we want to stay fit.  But this simple answer may sound too glib to some, and this reaction is understandable.

At a deeper level this subject is dealing with the more fundamental issues related to trust in a team to self-manage itself versus the need for organizational governance to ensure required practices are adhered to.  Part of what the SEMAT initiative is trying to address through the Essence framework relates to helping organizations find the right balance between these two critical needs, while also helping teams stay focused on the real goal.

I would like to hear your thoughts on this subject.

September 24, 2014

Why Software Engineeering isn’t Like Other Engineering Disciplines and How it Changes the Game

A new article has just been published that might be of interest to those following the work of SEMAT.

As always, comments are encouraged.

September 16, 2014

How do you keep your audience engaged when they don’t understand your language?

In August, 2014 (this year) I faced this challenge when speaking at the Latin American Software Engineering Symposium (LASES) in Barranquilla, Columbia. The night before the talk Dr. Carlos Zapata and I came up with an idea that not only worked, but also generated more questions than I ever imagined.

The title of my talk was: Essence: A Practitioner and Team Performance Perspective.

Take a look at this video to see how we pulled this off.  Below the link to the video find a sampling of the questions I received and how you can locate them quickly in the video.

Following is a sampling of the questions I received during the talk:

  1. Why are there only 7 alphas in the Essence kernel?
  2. How long will the SEMAT community work on Essence?
  3. Why don’t we see practices represented on the kernel?
  4. What is the vision for how companies will represent their practices using Essence?
  5. Will there be more disciplines added to Essence?
  6. How is the kernel changed, and what changes are coming?
  7. What criteria was used in selecting Essence checklists?
  8. What is your vision for the future of Essence?
  9. How would you sell Essence to companies?
  10. Where are we headed with practices on top of the Essence kernel?
  11. What is the definition of practice from the point of view of the Essence kernel?
  12. How will practices be captured in the Essence framework?

If you don’t have time to watch the entire video, jump to the end of the video where you will find, along with the 12 questions above, 30 more key questions/concrete examples listed and a reference to where you can find them quickly in the video (minutes and seconds into the video).

September 1, 2014

Quantifying the Value of Using SEMAT’s Essence Framework

In a recent Google Tech Talk given by Ivar Jacobson and Ian Spence ( ) questions were raised regarding measured efficiencies when team’s use Essence versus control groups not using Essence.  Capers Jones also recently asked me if I had any benchmark data showing the effect that SEMAT’s Essence Framework would have on productivity/quality factors (e.g. impact on work hours).    

Although the new OMG Essence standard is only a few months old we are already starting to see hard evidence of the value of this framework.   As an example, in a recent field study using Essence conducted at Carnegie-Mellon West (  ) the following value of using the Essence framework was found:

“While most styles of Agile retrospectives tend to focus on known issues, Essence reflections tend to make unknown issues apparent by covering the project holistically and reminding participants of critical areas that might be overlooked. These differences make Essence reflections and Agile retrospectives complementary. This is illustrated by the following student quote:

Though the team was holding retrospectives every week already, having Essence discussions be a part of it allowed the team to touch on important aspects of the project; aspects which would otherwise be ignored’.”


What I find most interesting about this study is that the findings are not so much directly related to efficiencies gained, but rather related to improving the team’s understanding of unknown issues, or risks.  This is the same observation that was made by a senior experienced engineer in a major USA DoD organization when first exposed to the Essence framework.  One of the Essence framework’s primary strengths is that it can be used with any method to help an organization uncover risks early and take appropriate action before those risks do serious harm to your endeavor.

 So how do you go about quantifying the value of Essence from a risk reduction perspective?

 According to the Carnegie-Mellon Software Engineering Institute:

 “Data indicate that 60-80% of the cost of software development is in rework”.


Rework is the result of not doing the task right the first time and is often caused by issues that were unknown at the time the work was originally done.  Rework is preventable by reducing unknowns early, and it costs an organization in more than just labor hours. It costs in schedule delays, and lost customer confidence.  It is therefore reasonable to conclude that anything we can do to reduce risk– such as using the Essence framework together with whatever your organization is doing today– can potentially reduce the cost of software development by 60-80%.

 So, with such a great potential upside, what is the downside of using Essence? 

Personally, I don’t see a downside for the following reason: Essence is not another method.  It is not an alternative to what you are doing today.   It is relatively inexpensive and easy for team’s to get started using the Essence framework in a way that complements their current approach.

 To learn more about how the new Essence Framework can help your software development teams refer to: or or take a look at the Google tech talk referred to above ( ). 

 Why not give Essence a try and let your software development team’s decide?  What have you got to lose?


August 18, 2014

A Slightly Different Way to Think About the SEMAT Vision and the Essence Framework

In last week’s blog I asked readers to consider providing feedback as to whether the software community needs a framework that fits the needs of the framework vision described in my 15 Fundamentals book.   Tom Gilb replied by referring to his comprehensive handbook on “Competitive Engineering” (a book of about 450 pages).  I have read a good deal of Tom’s book and find value in it.

I have also read much of Scott Ambler and Mark Lines’ “Disciplined Agile Delivery” book (about 550 pages), and I have read Barry Boehm, Rich Turner and their co-author’s recent book, “The Incremental Commitment Spiral Model” (about 240 pages), and going back a little further in time, I have read multiple times Watts Humphrey’s “A Discipline for Software Engineering” book (almost 800 pages).   In all of these books I have found useful ideas and great value. 

Right now I have two clients I am helping who have very different situations, but need similar help related to figuring out the right practices for their organization to keep them competitive in today’s rapidly changing and demanding world. 

I, as a consultant, need to find the time to read books, like those mentioned, because I need to keep up with the latest thinking of the best thinkers in the field of software engineering so I can provide the best advice to my clients when asked. 

In reading each of the books mentioned above I observed useful new ideas and/or innovative techniques, but I have also found certain ideas that I interpret as essentially similar to ideas I already know and understand.    So in the interest of time-management– and getting the most value out of my “new book reading time”–I read books with a filter on. 

My filter seeks out the strengths of each book in terms of what I perceive as new and potentially useful that I can add to my current knowledge base.    I then make conscious mental notes allowing me to rapidly recall each new idea or innovative technique when I observe a client situation where the new idea could be of benefit. 

This allows me at the right time as a consultant to stop and say to my client:

“Hey I think you should take a look at … [fill in one of those books, chapters, ideas/ innovate techniques here]… because I think this idea or technique could really benefit you given the problem I see that you are currently facing.” 

Keeping up with the latest thinking of our best software engineering thinkers is something I must do because I am a software process professional and this is what keeps me competitive in my own business.

My clients come to me because they don’t have the time to do this themselves, and they don’t have the funding in today’s competitive world to keep their staff current on all the latest thinking in software engineering.  I thus provide value they need that they don’t have inside their own organization.  This keeps my business viable. 

But what if there was a way for software practitioners— programmers, analysts, testers, managers—who are actually working on real software projects facing real challenges every day to quickly access and use the strengths and new ideas of these great software engineering thinker’s without having to read hundreds and hundreds of pages as I do to keep my business thriving? 

While I personally look forward to reading great new books on new approaches to help with the challenges of software engineering, most real practitioners just don’t have the time to devote to this activity. 

So– as I expressed in my response to Tom Gilb on my blog last week– what if we could find a way to make the strengths of Tom’s “Competitive Engineering” handbook more easily accessible to the practitioners who need help every day?  And taking this idea a bit further, what if we could find a way to do the same for Scott Ambler, Barry  Boehm, Watts Humphrey’s and all the other great software engineering thinkers work so that practitioner’s could quickly see and access the strengths of each,  compare  them, and then make logical decisions without needing to devote hundred’s of hours digesting hundred’s of pages of books?

Obviously, we would need to be careful how such a framework was implemented because any simplification of serious thought-provoking work could always be open for criticism.   But on the other hand, we know as George Box has pointed out, “all models are wrong, some are useful.” 

So do you think such a framework might be useful to the software engineering community? 

What I am suggesting here may be a slightly different way to think about the current vision of SEMAT and the Essence framework, but in a sense this isn’t far from what SEMAT is trying to do. 

The SEMAT community envisions an open marketplace of software aids (practices, patterns, methods, hints, and so on…)  where software practitioners can easily see what is new, compare it to what they currently are using, and make effective and timely decisions that can help their software endeavors today based on their own specific circumstances. 

I would love to hear what you think.  Does the software engineering community need a framework that fits this vision?

August 12, 2014

Three Great Book Titles and One That Missed the Mark: Part II

In last week’s blog I explained how I whittled down a long list of possible titles for my latest book to the following top four choices:

  • The Essence of Improvement
  • 15 Fundamentals for Higher Performance in Software Development  
  • Better Decisions Through Better Practice With Patterns
  • A Framework Vision for Higher Performance in Software Development 

Only one of the titles came close to meeting Peter Gordon’s rule of keeping the title to three words or less, and that was “The Essence of Improvement”.  I liked this title for one main reason besides its length.  I worked with Ivar Jacobson and our co-authors on the “The Essence of Software Engineering” book which focuses on the essentials—or common ground—that always exist across all software engineering efforts. 

I was originally thinking when I started to write my latest book that I was going to distill “the essentials that are common across all improvement efforts”, and so the title “The Essence of Improvement” seemed perfect.  But as the book evolved based on reviewer comments, discussions, and my personal analysis of past experiences working with multiple clients, it became clear that what I was talking about in this book was not common at all.  In fact, the 15 fundamentals– while they seem simple on the surface— are rarely achieved or thought about in most organizations today. 

There was also another problem with this title.   While I have found value in these fundamentals in my own personal improvement efforts as discussed in the book (e.g. golf), the vast majority of the examples I provide relate to software development.  So the simple “Essence of Improvement” title was reaching too far without sufficient research and proof into what it takes to improve and sustain improvements in other endeavors. 

If you read my two blogs over the past few weeks about Practice Slices and Patterns you should have a good idea why “Better Decisions Through Better Practice With Patterns” would have been a great title for this book.  The value of patterns is a key point that I highlight in this book, and I provide many pattern examples from my software development experiences both as a practitioner and as a coach. 

As I researched the pattern idea I became increasingly excited when I found numerous examples of similar experiences to my own in areas that had nothing to do with software development.  Examples include the idea of “thin slicing” discussed by Malcolm Gladwell in his book “Blink: The Power of Thinking Without Thinking”.  

A second example was found In Daniel Kahneman’s book, “Thinking Fast and Slow”.  In this book Kahneman explains how we can improve our quick–or intuitive– thinking by learning to recognize common situations rapidly.  This idea fits perfectly with my own experiences in software development, especially when rapid decisions need to be made by software practitioners on a high pressure project when a deadline is approaching. 

My favorite story that I convey in my book to explain the power of pattern recognition among athletes I borrowed from Jonah Lehrer’s book, “How We Decide.”   This is the story about Tom Brady, Quarterback for the New England Patriots football team in the National Football League.  In this story the reader learns how Tom prepares for football games which gives you an idea why he is such a great quarterback when the original scouting reports indicated he would never make it as a professional athlete. 

The analogies between what Tom does, and what I have found software practitioners can do to help prepare for typical situations they face each day– especially on a high pressure software development project—may well be the most compelling part of my book.  This also turned out for me to be the most rewarding part of my research and work in writing this book.  For that reason this title was my own personal favorite.  It was also Bill Fox’s favorite. 

A late entrant into the list of possible titles was “A Framework Vision for Higher Performance in Software Development”.   I liked this title because the framework vision, which I added just in the last few months of writing the book, turned out to be a major strength of the book based on comments from a number of my reviewers. It was exactly what was needed to help people understand why we need a framework like the Essence Framework.  Creating this framework vision also helped me personally– as one of the volunteers who developed the Essence Framework—to step back and see more clearly the bigger picture and the need for a framework such as Essence.    

The Essence framework is difficult for many people to understand when first exposed to it for a number of reasons.  One reason is because it is not immediately evident to many people why we need this new framework, or what problem it is solving that other software frameworks have not been able to solve.

By presenting the framework vision in the book using very simple non-technical language it helps the reader to first understand what is needed and why we need it, before we talk about a specific solution. 

 If you take the time to read my book– whether you like the Essence framework or not– I would love to hear your feedback on whether you agree or disagree that the software community needs a framework that fits the needs of the framework vision as I describe it in my book. 

But when the voting was done, the majority of my reviewers polled preferred the title that highlighted the 15 Fundamentals.  What is it that resonates with the idea of the 15 fundamentals that I highlight in this book?

First, these fundamentals are not what many might expect to see in a book about fundamentals and software development.  You will not see Requirements, Design, Programming, and Testing mentioned.  This is because this is not a book about the fundamentals of developing software. It is a book about the fundamentals of performing at a high level and sustaining that performance even under difficult and often adverse conditions–which are not at all uncommon in today’s fast paced and competitive world– when developing software.

Second, in this book I am calling for a culture change in how we implement process improvement today in organizations. A key point I raise is the fact that the speed of change we are all witnessing in today’s world requires that we step back and take a serious look at the process we are using to help our people get better at what they do. 

It is my contention that we need a far better way than what most organizations are doing today to empower our teams to take ownership for improving their own practices and their own personal performance. 

The 15 fundamentals I present in this book are my way of helping you think a little outside the box about how you might help your own organization get started down this path.  If you only take one or two ideas from my 15 fundamentals that can help you make even a few small changes in your organization that can start you down this road, then my ultimate goal in writing this book will have been achieved. 

Love it or hate it, I would love to hear what you think. 

August 7, 2014

Three Great Book Titles and One That Missed the Mark—Part I

When I asked Bill Fox, author of “5 Minutes to Process Improvement Success” ( ) what he thought of my current working title of my latest book he didn’t answer.  He just said, “the title of your book is so important.  I think you should write down 100 possible titles, then pick the top ten, and then poll your reviewers to get their opinion.” 

When he first suggested this I thought there was no way I could actually come up with 100 different possible titles, but within a couple of hours I had actually created a list of 102.  The next part of whittling the list down to a top ten took longer.  In my case the problem was compounded by a number of complicating factors. 

First, Peter Gordon, my publisher from Addison-Wesley for my second and third book told me that a title ideally should be no more than three words.  When I looked at my list of 102, less than 10 were three words or less and none of them were my favorites. 

Second, Rachelle Gardner, a literary agent says, an author needs to do everything possible to come up with the best possible title because your title “sets the tone, … and hints at the style of the book… and draws the reader in….” (

While Rachelle’s advice makes sense to me, what really complicated this issue was the fact that I had multiple goals in writing this book, and there was no way I could capture them all in a single title.  Furthermore some of my reviewers were highlighting strengths of the book that weren’t even part of my original goals in writing it.

One of the lessons I have learned from writing this book is one should never be surprised if you don’t end up exactly where you set out to go when writing a book.  It is as much a learning process as it is a way to  communicate your ideas.  This is especially the case when you have over twenty reviewers many willing to help guide your thinking.  This also means you need to be open to hearing that the most valuable parts of your book may be different from what you had originally planned.    

My original working title for the book when I started it four years ago, “How to Get Better at Anything” never even made the list of 102.  And the working title I had for most of the second and third year of the book’s development as I wrote and rewrote draft after draft listening intently to my reviewer’s feedback, “Performance Improvement Simplified” made the top twenty, but missed the top ten. 

The top three titles eventually were:

  • The Essence of Improvement
  • 15 Fundamentals for Higher Performance in Software Development  
  • Better Decisions Through Better Practice With Patterns

In the last few months of developing the book a fourth candidate title was also added:

  • A Framework Vision for Higher Performance in Software Development 

In next week’s blog I will share which three titles could have been a great choice and why one of them turned out to miss the mark given where the book ended up.  I will also share which title was my favorite, and why the eventual winner was selected. 

Next Page »

Blog at