10 Developing with Essence

The goal of this chapter is to demonstrate how Essence can help teams find the best approach to development endeavors via selection of appropriate practices, minipractices, and tools. Specifically, we show

  • situations withing software endeavor that require the team to be ready to resolve minor challenges during software development, because not everything runs smoothly in real endeavors;
  • the importance of communication and teamwork during software engineering; and
  • that "essentializing software engineering” means representing the way your team is working using the Essence language and the Essence kernel common ground.

Furthermore, using the example of iterative development performed by Smith and his team, we will also show

  • what typically happens during parts of the development cycle that include planning, doing, checking, and adapting;
  • the role of Progress Poker, Chase the State, and Objective Go when used in development planning; and
  • the mechanisms to update the cards (by hand) when needed during the process.


After studying this chapter, you should be able to

  • explain the terms iteration and iterative development;
  • explain the activities involved within iterative development (i.e., planning, doing, checking, and adapting);
  • explain the use of individual card games within the planning, doing, checking, and adapting parts of the iteration cycle, and be able to apply them;
  • explain the role of discussion and team agreement during these activities;
  • explain the role of “healthy alpha” and its use in examining alpha states; and
  • give examples of the “Way of Working” and means to adapt them during development, meeting the needs of the team and the endeavor.