December 9, 2020

Class Responsibility Collaboration (Process) Modeling

Software development process: Class Responsibility and Collaboration (CRC) Modeling. This is an excellent technique to use when working with certain types of groups.

Executive Overview

When working with a Business Team, one of the biggest challenges that I’ve seen is that the IT Business Analyst will automatically start with using a Tool (Visio, Lucid Charts, etc.) to start diagraming the process that is being described.

This causes three problems:

  1. It takes too long to model things on the fly,
  2. The Business Users aren’t “Involved” directly in the actual design,
  3. So, you end up oftentimes with multiple cycles going back and forth, or worse missing steps in the Process being Diagramed - because the Users weren’t engaged.

Class Responsibility and Collaboration (CRC) Modeling is an older low-tech technique first used in 1989 to describe an application, system, module, or process in terms of how it interacts with other components and “Actors”.

software development process

CRC and Process Modeling

This technique can be used both for Modeling the “As Is” or current state, as well as Modeling the “To Be” or future state of the process and application. Normally you would start with a Single Role at the beginning and then model that entire Flow before moving on to another Role within the Application.


software development process models
  • Color Coded 3” x 5” Index Cards
  • Enough Sharpie Pens for everyone
  • A large Conference Table to work on

Components of a CRC Card

Class - Who or What I am?
  • [F-#]  Form / Sub-Form / Dialogue Box
  • [R-#]  Report / View / Filter
  • [B-#]  Business Process / Micro Service
  • [S-#]  System
  • [P-#]  Person (Actor) - Who or What
  • [T-#]  Task to Perform

Recommendation:  use Color Coded 3” x 5” Index Cards, where each color represents a type of Class.  For example:

  • Red = Form
  • Yellow = Report
  • Green = Business Process
  • Blue = System
  • Purple = Person or Actor
  • White = Task
Responsibility - What do I know?  Properties / Attributes
  • Field Labels / Column Labels
  • Data Type
  • Required or Optional
  • Validation Rules
  • Security Settings
  • Etc.
Collaboration - How do I work with other Objects / Actors, or even myself?
  • Methods and Functions
  • Create, Read, Edit, Save, Delete
  • Call another Class / Micro-Service / Business Process
  • Change Sort Order, Change Filters, Identify Missing Required Fields, etc.
  • Passing information to another Class / Micro-Service / Business Process

agile software development process

Steps in Facilitating a CRC (Process) Modeling Session

  • Hand out each Color to one Business SME.  If you have a large group, then break up the Tasks, then Forms, then Reports into two people.  It is important that everyone participates.
  • As the facilitator you will not write anything.
  • Give the instructions to the Team.  As you ask the questions, the person with the right color of card will write the Title of the Object at the top of the card, along with a Designator.
  • F-1 = Form 1, F-2 = Form 2, R-5 = Report 5, etc.
  • This is very important, as it will allow you to quickly diagram things on a piece of paper, which later you can turn into a Visio / Lucid Charts diagram.
  • Now start asking the questions…
  • Who is the first Person (P-1) in this Process?
  • What do they do?  What systems do they use?
  • What Form or Report do they see first?
  • What Tasks do they perform?
  • And just keep going, asking who is the next Person (P-2) involved?
  • Etc.
  • Allow the Business SME’s to interrupt and point out things that they just remembered - steps missing or in the wrong order
  • Let the Business SME’s move the cards around, as needed.  You want them to do this, so that it is their Process and not yours.
  • Then when you are done, walk through the entire Process Flow, just to make sure the team hasn’t missed anything.
  • Then take out a sheet of paper and document the codes:
  • P-1 → S-1 → F-1 → R-1 → Splits to F-2 and F-3, etc.
  • I also recommend taking a photo of the Process layout as well.
  • Now you can lay this out at your leisure and create your fancy Visio or Lucid Charts Diagram.

Real World Example:  MVP Channel Loyalty Program

Executive / MVP Program Manager Role

MVP Program Manager Role
Click Image to Enlarge

Primary Physician (Doctor) Role with Health Care Provider

Primary Physician Role
Click Image to Enlarge

Pharmaceutical Representative Role

Pharmaceutical Representative Role
Click Image to Enlarge

Product Managers


This is an excellent technique to use when initially working with a group of Business Users / Product Managers / Subject Matter Experts, as it is:

  1. Forces Everyone to be Involved
  2. Is Low Tech - so you don’t waste time with diagraming tools (at this point)
  3. Easy for the Participants or Facilitator to move things around, add, edit, or remove Cards
  4. If you use Colored Cards, then it is easy for Everyone to know what each Card means on the table
  5. And if you Label the Cards, then it is easy for the Facilitator or a Scribe to document the flow quickly on a piece of paper, so that they can later create the fancy diagram for the Team to review.

Also, if you don’t have enough time, you can start with simply capturing the Class Titles, and come back later for a 2nd session to define the Responsibilities and Collaborations. We hope you have enjoyed this Blog Article and found it valuable.

Thank you, David Annis.

Case Study from Arkusnexus
David Annis
David is a VP and Agile Coach within ArkusNexus, having served in multiple CIO, VP of Software Development roles. He assists our Sales, Marketing, and Operations Teams on critical initiatives.
RSS feed
Subscribe to our feed
Back to More ContentMore From this Author

3065 Beyer Blvd B-2
San Diego CA 92154 - 349

mind hub tijuana