Hitchhiker's Guide to Software Architecture and Everything Else - by Michael Stal

Sunday, July 19, 2009

RRC Card

Most of you already know the CRC (depicting Class, Responsibilities, Collaborators) which is a low tech technique for discussing software artifacts in brainstorming sessions for software design.

I propose another kind of card for depicting the roles in a particular project: the RRC Card: Role Responsibilities Collaborators.

The idea is simple:

  • The first R stands for role by which I mean a concrete person and her/his role
  • The second R stands for Responsibilities: what responsibilities should this role have to meet its expectations
  • The C stands for Collaborators: from which other roles does this role depend, e.g., with which other roles must it interact

If you start with a project, you could ask the parties involved to jointly fill out these RRC cards, thus making clear how responsibilities are partitioned and how roles are supposed to interact.



R: Michael / Architecture Consultant


Responsibilities                        Collaborators

Mentor and coach                    Lead Architect: Paul

Help design                             Architect: Tom




If you already in a project in deep trouble you could ask persons to fill out how they live their own role and likewise fill out RRC cards for other persons, thus identifying conflicts between expectation and reality.

Document these RRC cards in a document (e.g., paper-based or Wiki-based)


  • Sorry for the late comment, but nice thinking! RRC also fits in with the DCI programming paradigm, if you haven't heard of it before? http://fulloo.info

    Best regards,

    By Blogger Andreas, at 1:55 PM  

Post a Comment

<< Home