© Jeff Dalton 2019
Jeff DaltonGreat Big Agilehttps://doi.org/10.1007/978-1-4842-4206-3_23

23. Class, Responsibilities, Collaborators (CRC) Cards

Jeff Dalton1 
(1)
Waterford, MI, USA
 

Description

CRC Cards (Class, Responsibilities, Collaborators) are typically used when object-oriented design and development is preferred, and are helpful when there is a need to rapidly design one or more product features that may be instantiated as an object within the source code. First, two or more team members write down the names of the most critical classes involved in the feature on index cards. Second, the cards are fleshed out with lists of the responsibilities of each class and the names of collaborators (i.e., other dependent classes). Third, team members perform a role-playing exercise and assume the role of one or more classes while playing out a plausible scenario of the design.

../images/470826_1_En_23_Chapter/470826_1_En_23_Figa_HTML.jpg

Typical Roles

  • Agile Team

  • Product Owner

  • Business SME

Desired Behaviors

  1. 1.

    Identify the core classes that are the building blocks of the product. Look for the nouns in the design documentation to identify three-to-five main classes.

     
  2. 2.

    Create one index card per class (begin with class names only).

     
  3. 3.

    Add responsibilities for each class by looking for the verbs in the design documentation. Ask yourself: “What does a class do? What information needs to be maintained?”

     
  4. 4.

    Determine dependencies with other classes. A class often does not have sufficient information to fulfill its responsibilities. Therefore, it must collaborate (work) with other classes to get the job done.

     
  5. 5.

    Reposition the cards as needed. To improve the team’s understanding of the system, the cards should be placed on the table in an intuitive manner. Two cards that collaborate with one another should be placed close together on the table, whereas two cards that do not collaborate should be placed far apart.

     
  6. 6.

    Move classes to the side if they become unnecessary.

     
  7. 7.

    Add and refine until everyone on the team is satisfied.

     
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.188.64.66