CMMI and Agile Blog

March 23, 2019

Critical thinking and Essence: Why every engineer and consultant should care

I work with a number of consulting companies.  Recently I was in a meeting with a member of one of those companies who was trying to explain a problem he was facing and was unsure how to solve.   He had attended a Milestone B review on a major US Department of Defense (DoD) program and was concerned with how his team was assessing the progress of the prime contractor.  For those unfamiliar, Milestone B is a key DoD decision point for approval to move forward with detailed engineering development.

He said that his team was using 150 checklists as the basis for assessing the contractor’s progress and because the contractor met 140 of the checklist-items they were declaring the review to be a success.  The problem was that one of the 10 checklist-items that wasn’t met was having a sound architecture that would solve the customer’s problem.

This person went on to explain that what made this situation even more troublesome was that all of the people on his review team were senior experienced consultants who should have known that NOT having a sound architecture at a Milestone B review was sufficient criteria in itself, regardless of how many other checklist-items they may have met,  to give the contractor a failing grade at the review.   He added that while his review team members were all experts in their specific engineering discipline, they all seemed to lack the ability to think critically.

Wikipedia refers to critical thinking as the analysis of facts to form a judgement.  It requires logical reasoning, research, curiosity and the ability to analyze and synthesize information gathered from observation and experience.

One effort that has been tackling the problem of helping people think critically is the Software Engineering Method and Theory (SEMAT) initiative through its Essence standard.  Essence provides a kernel of essentials common to all successful software engineering endeavors. Essence includes a set of essential checklists that can be used to support critical thinking.

While facts and checklists are important, as Wikipedia points out critical thinking requires more.  A colleague who works for a different consulting company told me, when I relayed this story to him, that the trouble he sees with too many consulting organizations is they assume they know the answer before they take the time to listen to and understand the problem the client would like solved.

To be an effective critical thinker you first need to be a good listener. You need to be curious enough to listen to and understand your client’s situation and to know where they need help.  Effective critical thinkers know how to use facts and checklists–not in a “check-the-box” mentality—but rather to guide a conversation and, when necessary, to expose poor reasoning by using experience.

When I coach teams in how to use Essence in a thinking capacity I emphasize the fact that while all the Essence checklists are essential, they don’t all have equal value and must be applied appropriately given the specific project context.  I also let the participants know that to use Essence in a thinking capacity requires an understanding of how to use it as a root cause analysis tool because if you don’t first understand the root of the problem you have little chance of finding a lasting solution that meets your client’s need.

All software practitioners should learn the essentials of software engineering, and all consultants should learn the essentials of listening to fully understand the circumstances before guiding.  This is fundamental to effective consulting and coaching.

A recent attendee at my Essence-In-Use training course commented that he felt the course should have been called “Consulting 101”.   I prefer to refer to it as “Coaching 101”, but regardless of whether you are a consultant, coach, or team member most of the essentials to project success never change.   You need facts, but facts aren’t enough for project success. We need to teach our next generation engineers the essentials of good engineering, but we also need to teach them the essentials of effective critical thinking and root cause analysis.

Essence is today being used increasingly in universities to teach our next generation software engineers the essentials of successful software engineering.  There is also an effort underway to explore modifying the Essence framework to support all engineering endeavors.

The next step is to teach all engineers and consultants how to use the Essence framework in a critical thinking and problem-solving capacity.   This will help consultants ensure they are solving the right problem for their clients, and it will help engineers ensure they are making the best decisions given their project context.

If you are interested in learning more about using the Essence framework in a critical thinking and problem-solving capacity refer to http://www.Essence-In-Use.com.

Advertisements

September 12, 2018

Cybersecure Software: New twists to well-known questions every developer should be asking

In this short video new cybersecurity twists to well-known questions every software developer should be asking are explored.

Alternatively, the video could have been titled:

What do we really mean when we say Essence checklists are not “check-the-box” checklists, and you will understand why as you get into the video.

As always, feedback is encouraged.

Blog at WordPress.com.