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:
It takes too long to model things on the fly,
The Business Users aren’t “Involved” directly in the actual design,
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”.
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.
Materials
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
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
Primary Physician (Doctor) Role with Health Care Provider
Pharmaceutical Representative Role
Conclusion
This is an excellent technique to use when initially working with a group of Business Users / Product Managers / Subject Matter Experts, as it is:
Forces Everyone to be Involved
Is Low Tech - so you don’t waste time with diagraming tools (at this point)
Easy for the Participants or Facilitator to move things around, add, edit, or remove Cards
If you use Colored Cards, then it is easy for Everyone to know what each Card means on the table
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.
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.