CRC Cards | Glossary

Definition:

CRC Cards was originally proposed by Ward Cunningham and Kent Beck as a teaching tool, brainstorming tool used in the design of object-oriented software. CRC card is Class-Responsibility-Collaboration card, popular among expert designers and recommended by extreme programming supporters.

CRC cards are index cards, which are used by team members to write relevant class/object of their design which are partioned in threes areas. Class Name on top of the card, with Responsibilities of the class in the left and on right list of other collaborators (classes) with which class interacts to fulfil its responsibilities.

Advantage of CRC cards are, it keeps the complexity of the design at a minimum on a small card where designers focuses on essentials of the class, preventing them to getting them into details and implementation. These cards are portable and can be easily laid out on a table and re-arranged  while discussing a design. You create a CRC card by writing out a scenario which identifies the actors and actions which the actors do. Nouns should turn into the classes of the card, verbs typically turn into the responsibilities of the card, and collaborators are the other cards  with which the card will be interacting.

Further Reading:

Book: The CRC card book by David Bellin
https://en.wikipedia.org/wiki/Class-responsibility-collaboration_card
http://agilemodeling.com/artifacts/crcModel.htm

Extreme Programming | Glossary

Definition

Extreme programming (XP) is a software development methodology which is intended to improve software quality and responsiveness to changing customer requirements. It is a type of Agile Software Development, which advocates frequent “releases” in short development cycles. It is intended to improve productivity, and introduce checkpoints at which new customer requirements can be adopted.

Origin

Extreme programming was created by Kent Beck during his work on the Chrysler Comprehensive Compensation System (C3) payroll project. Beck became the C3 project leader in March 1996, and began to refine its’ development methodology, eventually writing a book about it. In October 1999, “Extreme Programming Explained” was published.

Pros

  • Extreme Programming aims at bringing about efficiency in the coding process and providing customers with maximum value
  • It stresses importance to individuals and interactions over processes and tools, working software over documentation, customer collaboration over contract negotiation, and responding to change over following a plan
  • Extreme Programming trims unproductive activities to reduce costs and frustration of everyone involved

Cons

  • Extreme Programming is challenging to adopt completely and it becomes challenging to enforce culture change.

Further Reading

  • “Extreme Programming Explained” by Kent Beck
  • “eXtreme Programming in Action: Practical Experiences from Real World Projects” by Martin Lippert.

Know more about Extreme Programming by visiting our website.