January 16, 2008

...Learn TDD with Codemanship

Test-driven Workspace Design

Scenario-driven design - you may know it as "test-driven", or "use case-driven", or "example-driven", or whatever - helps us create products that are more useful. There's no magic to it: just figure out who will be using the end product, and the kinds of ways in which they'll be using it, and just work backwards from there.

And it doesn't just apply to software design. Anything that will have users and uses could be tackled in the same way. Take a kitchen design, for example.

We could just put together a shopping list of "things that a kitchen is supposed to have" and base our design on that. The risk is that someone will come along and try to put together a 3 course dinner for 16 guests, and realise that they can't do it using their kitchen, simply because it wasn't designed with that specific scenario in mind. Better surely to start with the usage scenarios you know your kitchen will have to handle and base your design on those.

We're especially good in the software industry at failing completely to heed our own advice, though. Which is why the very same people who harp on about scenario-driven design for applications have, up to now, almost completely failed to recognise that it might work just as effectively for the design of the spaces we work in.

For my current client, I'm going to recommend adopting workplace stories. These would essentially be user stories for office design, describing who will be using these spaces, and what they will be using them to do.

You could go the whole hog and have acceptance tests based on these stories, so when you move into a new office space that was designed for your specific needs, you can quickly ascertain if it falls short in any of the identified scenarios. You could use these tests to validate the design on paper, too, and maybe save yourself from some very expensive - but easily avoided - mistakes.

Ultimately, you may come up with a radical new kind of office design - since, as far as I know, very few organisations set out specifically to tailor their work environments for software development. Or you might end up just making a few small tweaks to the traditional office layout (though, somehow, I doubt it.)

Or maybe you've already done something like this? In which case, I'd be very interested to hear how it turned out.
Posted 13 years, 5 months ago on January 16, 2008