white nautilus icon

Agile Development Outside-In

Foundation

Paging

Next:
Modeling essentials
Previous:
Laying a collaborative process foundation

Referenced Concepts

Referenced Techniques

Page Information

A technique foundation is critical to success

Foundation techniques help adoption

One of the challenges I've had when reading others' books is figuring out exactly how to adapt the technique and concepts described into my day to day practice.

Hopefully we'll remedy some of these problems by starting with a simple foundational set of techniques that all other techniques will build upon. You'll find that even this simple set of techniques will help improve your day to day design and development practice.

Collaboration builds common understanding and supports innovation

It's my belief, and I'm not alone, that software design and development works best when we share a common understanding of our objectives, and the current course we're pursuing to achieve them. The fastest way to achieve, validate, and maintain that understanding is face to face over a picture or model that represents our understanding.

Given some shared understanding, we're actually hoping for a bit of a miracle.

I'm serious about that. By a miracle I mean innovative and simple solutions to achieving our objectives - which when they're discovered feels a bit miraculous. I believe that through collaboration we share, build on, combine, and iterate our ideas faster and more effectively. The result is better design solutions to better understood problems.

Collaboration doesn't happen automatically.

In lots of cases, putting a number of people together in a room results in shared understanding and great solutions. In fact, most Agile approaches consider collocation a critical success factor. But, there's some structure, tools, a few techniques, and a bag of tricks that'll save you time and help things go more smoothly.

The most important reason I collaborate in software development is because it's just more fun. One good way to tell that you're collaborating effectively is to stop once in a while and notice that you're having fun, and building strong relationships within your team and with your customers, users, and colleagues.

Working with others builds valuable context used to solve problems

We work with people for different reasons. Sometimes people are a subject of our intense study. These are people with a problem or opportunity that software we're designing can help with. It's important we understand the problem context to make good decisions. And, since it's difficult to watch oneself work, objectively evaluate it and compare it with other examples, it's helpful when someone else does it.

I'll discuss foundational techniques to help you gather information effectively from others.

Models are our working and communicating tools

At any point in time, our current understanding of the problem context, or the best possible solutions we've identified will be distilled into and expressed with some type of model.

The act of iteratively building and evaluating that model helped us better understand the information. Reviewing that understanding with others helps us communicate it.

Let's start by better understanding how to build a low fidelity model using index cards and sticky notes.

comment on this page via email comment

Next Topic: Modeling essentials >>

<< Previous Topic: Laying a collaborative process foundation