Women in tech: Rebecca Wirfs-Brock

An object design pioneer who invented the set of design practices known as Responsibility-Driven Design (RDD)

Introduction

"If you don’t know history, then you don’t know anything. You are a leaf that doesn’t know it is part of a tree." These words, written by Michael Crichton, remind us that our present achievements grow from the roots of those who came before us. Yet in the history of technology, many of those roots belong to women whose names are barely known.

To honor and bring visibility to their work, we continue our Women in Tech series, shining a spotlight on the contributions of women whose impact has been fundamental to our history.

Today, we turn to a pioneer whose influence quietly but profoundly reshaped the way we design and think about software. Her work reframed object-oriented programming from a structural puzzle into a conversation about responsibilities and collaboration, a perspective that continues to echo in modern software design. This is the story of Rebecca Wirfs-Brock.

The journey of a pioneer

Rebecca J. Wirfs-Brock, born in 1953 in Portland, Oregon, is an American software engineer and consultant recognized for her pioneering contributions to object-oriented programming and design. She earned a degree in Computer and Information Science and Psychology from the University of Oregon and has built a career defined by innovation and the teaching of development practices that remain influential to this day. Over the decades, she created not just a career, but an enduring legacy in software design.

Her journey began with 15 years at Tektronix as a software engineer. She later joined Instantiations, a company founded by her husband, Allen Wirfs-Brock, which was eventually acquired by Digitalk. A subsequent merger with Parc Place Systems created ParcPlace-Digitalk, where Rebecca served as Chief Technologist in the professional services organization for the Smalltalk programming language.

Her most celebrated contribution is Responsibility-Driven Design (RDD), the first behavioral approach to object-oriented design.

Rebecca’s story is not only one of technical brilliance, but also of reframing how software is designed and how teams collaborate. By shifting the conversation from rigid structures to shared responsibilities, she left a legacy that continues to shape the way modern systems are imagined, built, and evolved.

Responsibility-Driven Design (RDD)

Wirfs-Brock’s most influential contribution to software engineering is the creation of Responsibility-Driven Design (RDD). At a time when object-oriented programming was still finding its form, she introduced a behavioral approach that shifted the focus from what objects are to what objects do. Instead of defining objects only by their data or structure, RDD emphasizes their responsibilities, the tasks they know how to perform, and their collaborations: how they interact with other objects to achieve larger goals.

Responsibility-Driven Design is a way of thinking about software objects as active participants in a system. Each object is seen not just as a container of data, but as an actor with defined responsibilities:

  • What it knows (its knowledge or information)
  • What it does (its actions or services)

Objects don’t work alone. They collaborate with other objects by asking for services or offering their own, forming a community where each participant has a role to play. This mirrors how real-world organizations function; individuals or teams have well-defined duties, but success comes from how they cooperate.

A central practice of RDD is the use of Class-Responsibility-Collaboration (CRC) cards. These are simple index cards where designers write down a class’s name, its key responsibilities, and its main collaborators. CRC cards encourage brainstorming, quick iteration, and team discussion, making them a lightweight but powerful design tool.

Wirfs-Brock further refined her ideas in her co-authored book Object Design: Roles, Responsibilities, and Collaborations (2002). The book is a practical guide that teaches developers how to transform abstract requirements into robust object models. It introduces key perspectives, roles (positions objects occupy in a system), responsibilities (what they know and do), and collaborations (how they work together), and shows how these concepts can guide the design of flexible, reusable, and understandable software.

The mark she left on technology

Before RDD, many object-oriented approaches were heavily influenced by entity-relationship modeling, which emphasized static structures, attributes, and data storage rather than dynamic behavior. This often led to rigid systems that were harder to adapt and extend as requirements evolved. Rebecca Wirfs-Brock’s work marked a turning point by shifting the lens from structure to behavior and interaction, encouraging designers to think about what objects are responsible for and how they collaborate to achieve outcomes. This perspective not only made systems more flexible and maintainable, but also aligned software design more closely with the way humans naturally reason about problem-solving and teamwork.

Her influence can be clearly seen in the rise of later methodologies. Many of today’s “-driven” approaches, including Test-Driven Development (TDD), Domain-Driven Design (DDD), and Behavior-Driven Development (BDD), acknowledge their intellectual roots in the Responsibility-Driven Design mindset. By putting responsibilities and collaborations at the center, Wirfs-Brock established a foundation that others built upon, transforming how entire generations of developers approach design.

Where most people saw objects as static entities defined by what they are, Rebecca Wirfs-Brock recognized the greater potential of what they can do. In her vision, a software system resembles a team of people, where each object has a well-defined role, clear duties, and the ability to interact with others. Just like in any successful organization, it is the cooperation between members, not their individual existence, that enables the system to tackle complexity and deliver powerful results.

What makes her work especially enduring is its practical accessibility. While rooted in deep theoretical insight, Responsibility-Driven Design was never an ivory-tower concept. Instead, it provided hands-on techniques, ****including CRC cards, workshops, and role-based thinking that teams could easily adopt in real-world projects. By teaching designers to model systems as communities of collaborating objects, Wirfs-Brock not only made object-oriented design more approachable but also established practices that remain relevant in today’s world of distributed systems, agile methods, and service-oriented architectures.

Conclusion

Rebecca Wirfs-Brock’s work shows that technology is not just built on code, but on the ways we think, organize, and collaborate to solve problems. By shifting the focus of object-oriented design from what objects are to what they do, she redefined how systems could be imagined, designed, and evolved. Her ideas introduced a vision of software as a community of responsibilities and collaborations, a perspective that continues to guide how engineers create flexible and enduring systems.

Her legacy reminds us that innovation is never the result of isolated genius, but of collective insight and shared responsibility. Just as she imagined software as a team of objects working together, the history of technology is a story of diverse voices, often overlooked, contributing to progress. Recognizing pioneers like Rebecca Wirfs-Brock is more than honoring the past; it is shaping a future where new generations can see themselves as designers of technology, leaders of change, and stewards of collaboration.

Co-author: Julia Aguiar

References

We want to work with you. Check out our Services page!