18 Putting the Practices Together: Composition

The goal of this chapter is to introduce the concept of the composition of practices as a means to arrive at the best fitting software engineering method. In this chapter, the reader will understand

  • the concepts of composition and the description of how essentialized practices facilitate the composition process and thereby help teams to learn and apply practices better;
  • that while practices are separate, they are not independent, and thus composition has certain rules that need to be respected;
  • the ways in which the composition of practices treats its things to work with, things to do, competencies, and patterns;
  • that during practice composition the kernel forms the core of the resulting method that is then decorated with elements of individual practices; and
  • that software engineering is knowledge centric and its mastery is about being able to apply appropriate practices effectively, discovering improvements as you apply them.

After studying this chapter, you should be able to

  • give an example of practice composition and explain when it can and cannot be performed;
  • explain what the composition could look like for two specific practices;
  • explain the concept of an anchor in the composition;
  • explain the meaning of “alternative practices” and “extension practices”; and
  • apply composition to alphas from different practices.