The CRC Card Methodology


The Pasteur research program was an empirical research program based on real-world experience. Research on human subjects is notoriously difficult. We were wary of any results that would simply reduce people to numbers. We wanted results that were intuitive. We wanted to build on the insight of our subjects as much or more as on the insights that we as researchers would develop. One of the few constraints we wanted to apply to the data we collected is that it be based on roles, and we felt that roles were a general enough representation to not interfere with gathering insights from the study subjects. This section describes how we used CRC cards to capture the data about organizational roles that would serve as input to our analyses.

We set out to build instrumental organizational models from first-hand accounts [BibRef-CainCoplien1993]. Since process works at the level of the engineers doing the day-to-day design, coding, and fire-fighting, why not build the models from their perspective? We chose CRC cards as the tool we would use to analyze organizations. CRC cards (which stands for classes, responsibilities, and collaborators) had been developed as a software design tool by Beck and Cunningham to support their work on software architecture and implementation in the mid-1980s [BibRef-Beck1991]. In CRC design each index card represents an object in the system. The card is used to note and track a class's set of responsibilities and collaborations (hence the name: CRC) in a role-playng exercise.

TheCRC-CardMethodology.png

A CRC Card



In our organizational analysis, each index card represents a role. We also captured responsibilities and helping relationships in our role play, but the resulting model captures the structure not of an object-oriented program, but of an organization.

CRC cards fit our needs in several respects. First, they support a highly participatory information gathering technique--something that would help us get at empirical behavior. This level of participation allowed people to act out a faithful memory of day-to-day events.

Second, they made it possible to gather data in a group setting. Role-play is a powerful technique to help people recall past events, particularly in the company of the original players. There is something about acting out one's memories that makes the memories almost tactile, drawing out further detail and recalling context that helps keep the data faithful to actual practice. Sociometric research by Bernard, Killworth et al. has shown that informant accuracy is less than 50% when people report individually on their interactions ([BibRef-Wasserman1994], p. 57). This enactment unfolds in a sociodrama: a kind of play that recalls the reality of life in the organization. Our subjects were the actors; we were the audience. Of course, the subjects were also unwitting members of the audience, and the technique owes much of its power to that fact. Bringing group members together helps recall corporate memory. It is also an opportunity to plant the seeds of group learning [BibRef-Senge1990], as we will discuss later.

Third, CRC cards were a good "fit" for the domain we were studying. Each card could be used to model an organizational role; the "responsibilities" captured the responsibilities of each role to the organization; the "collaborations" captured the dependency relationships. At this early juncture, we were naive about social network theory and sociometric diagrams, but we would find that the CRC model would serve us well to support social network formalisms.

Fourth, CRC cards balanced important aspects of several techniques commonly used in social network data gathering ([BibRef-Wasserman1994], p. 19; p. 44). There are many different flavors of modeling units. Examples of modeling units include actors, dyads, triads, and others. Our primary modeling unit was roles, a generalization of related actor responsibilities. In dyadic data gathering, each actor is asked about their interactions with other actors. In triadic data gathering, one actor offers an opinion on how a second actor interacts with a third. The CRC modeling technique focuses on dyadic data by helping role actors focus on their interactions with others. However, group discussions led to the collection of triadic data, particularly for controversial or problematic interactions. It was possible to gather data from an entire organization in one or two sessions of a few hours each.

We have used CRC cards to gather data from about forty organizations, almost all of which serve the software industry. We focused on large system development efforts, including development organizations in AT&T and other telecommunications companies, companies producing software development environment products, aerospace organizations, and medical software development. We also have data points from areas as diverse as government administration projects and consumer software. Most of these have been "software development organizations": the folks who design, implement, and test software. We have a smaller sampling of organizations that interface the market to the development organization, and which perform other assorted functions

You can read more details about the CRC technique, particularly from the perspective of research methodology, in CRC-CardsAndRoles.