white nautilus icon

Agile Development Outside-In

Foundation

Paging

Next:
Collaborative work session
Previous:
Model using index cards

Referenced Concepts

Referenced Techniques

Page Information

Working with people

In a healthy software design and development process, you'll be working with people frequently. A variety of techniques support effective collaborative work.

Throughout an Outside-In design and development process you'll rely heavily on other for critical information and collaboration. Building card models especially helps to consolidate and evolve ideas across a group of people. If we're doing our work well, we'll be working with people a lot.

But, it's important when working with people to keep our goals in mind.

Collaborate to design

At times we'll collaborate with other so solve problems, to design, to work together to leverage what we understand about a problem to jump that spark gap to identify and evaluate possible solutions. Participants in collaborative design should understand as much about the problem as possible going in. On display or readily available should be models and information that represent what we understand about our problem. Collaborators need these in order to evaluate their proposed solution.

Collaborate to acquire information

Contrast collaborative design work to information acquisition.

During information acquisition our emphasis is on understanding the problem. While jumping to solutions during acquisition conversations is tempting and inevitable, it's best avoided. Given what seems like a great idea, it's human nature to favor information that supports the notion that it is indeed a great idea. But, we want information that's unbiased, information that accurate describes the problem.

You can see that given these two goals when talking with people, we may employ different techniques.

Work with people in groups

Pulling a large group together can be an effective way to bring everyone's ideas into a design process, to get everyone's feedback on a design, or to quickly collect information from a large number of people. In a group, information flows quickly. A bit of structure and some facilitation skills help make working collaboratively effective.

Use collaborative work sessions to effectively work in groups.

Work with people one on one

Sometimes it's not practical to pull a large group together. Individual's time constraints may not afford it. Group dynamics may change the type of information and feedback you hear. When collecting information or feedback from others keeping a few do's and don'ts in mind will help the conversation be more effective.

Acquire information using interviews being cautious to follow a few rules.

When you have the information you need, and it's time to act on it - to design a solution, pairing with others is an effective way to collaborate. Often doing design work in large groups just isn't productive. It may be an example of too much of a good thing, but too many ideas in a room make it difficult to move forward.

Use paired work to effectively design or analyze information.

Collaborate with core team members and contributors

There's a joke that's told in Schwaber and Beedle's Agile Software Development with Scrum. As an aside, it's interesting that a big part of the Scrum value system is framed by a joke, but it sure sticks.

A chicken and a pig are taking together when the chicken says "Let's start a restaurant!" The pig thinks it over and says, "What would we call this restaurant?" The chicken says "Ham 'n Eggs!"

The pig says "No thanks. I'd be committed, but you'd only be involved."

The idea here is that there's a core team responsible for doing the work to deliver software, and others that contribute ideas and information. It's a bad idea to ask those who are only "involved" to make important decisions.

While working with people you'll find you often collaborate with others to gather ideas and get feedback. You might even pair with them to help design. But, assuming you the reader are part of the committed team, you'll find you retreat back to your core team to make sure information is consolidated, distilled and communicated. Your core team will take responsibility for most of the decisions made during the design and development of your software.

When planning an activity like a collaborative work session, you'll find that members of the core team will plan the session. The session will involve some core team members as well as important contributors from outside the team. And, after the work session, the core team will take responsibility for consolidating and communicating information gathered.

comment on this page via email comment

Next Topic: Collaborative work session >>

<< Previous Topic: Model using index cards