Chickens and Pigs

There is a useful parable from the early days of SCRUM (credited to Ken Schwaber) that organizes the people involved in Agile software development into two roles: chickens and pigs. It goes like this:

A pig and a chicken are walking down a road. The chicken looks at the pig and says, "Hey, why don't we open a restaurant?" The pig looks back at the chicken and says, "Good idea, what do you want to call it?" The chicken thinks about it and says, "Why don't we call it 'Ham and Eggs'?" "I don't think so," says the pig, "I'd be committed but you'd only be involved."

The point is that pigs are the ones involved who write, deliver, test, and document software, while the chickens are interested in the outcome but aren't directly doing the same things as pigs. The needs, desires, ideas and influences of the chickens are important and taken into account, but not in a way that would prevent the completion of the project by the pigs.

image

Pigs are the ones committed to the project, the ones with "their bacon on the line." They comprise the Agile or SCRUM team. They have the responsibility to deliver the product and may consist of any number of members with cross-functional skills to do the actual work. pigs on the team include: developers, designers, quality assurance, testers, product owners and facilitators or scrum masters.

Chicken roles are those roles in the project that are not part of the actual Agile development process, but must be taken into account. An important aspect of an Agile approach is the practice of involving users, business and stakeholders into part of the process. It is important for these people to be engaged and provide feedback to the team to assist in reviewing and planning the work. Those people are termed chickens and represent users, stakeholders, managers, operations, customers and vendors of the software that’s produced at the end of the project.