Part 2 – Developing Software with Essence

The goal of this part of the book is to demonstrate how Essence can help a team run a relatively simple software development endeavor:

  • The requirements and consequently the related software system are relatively simple.
  • The team is small with a few members, and
  • Since the team members have worked together before, know one another and know how to work together, there is not much need for written guidelines.

Though simple, the foundation behind all software development endeavors is the same. This sample endeavor does not have the clutter and noise often found in many more complex endeavors, and therefore the team can focus upon the essence of software engineering.

In such simple situations, teams can rely upon tacit knowledge and little explicit knowledge. Tacit knowledge is that which “you have in your head”, it is understood without being stated. Tacit knowledge comes from experience, common sense and evolves through discussions between team members. Explicit knowledge is that clearly stated in some documented form, reducing the risk of confusion, misunderstanding or doubt. The Essence kernel provides the bare essentials to get teams started and make progress, which you will learn about in this part of the book.

Part objectives:

  1. How to use Essence to describe some reusable “mini-practices” called games.
  2. How to kick start a development using Essence only.
  3. How to plan the work, do the work, check the work, and adapt the way the team works.
  4. How to visualize progress and health, and detect anomalies.
  5. How to appreciate the need to make practices explicit and modular when facing more complex situations.