Agile methods

Do you recognize this situation — You are in a room with a bunch of engineers from your company, you confidently state the need for design before production, the engineers turn green and start screaming “waterfall!”Here is my take on the whole design – agile discussion: There are a couple of fundamental misunderstandings that lead up to that horrifying meeting experience described above.1 – Agile methods are based on lessons from production, not design — The idea of agile methods originated in japaneese car manufacturing where production plants were reorganized to cater for quick changes in production requirements. This meant being able to shift from producing trucks to producing cars within a couple of minutes instead of weeks as the case had been before — AHA, changing production based on new requirements, sounds like a great thing for software, right!? Well, maybe — maybe not. The changing requirements in the car production example were new production requirements, not new product definition requirements. Product definition is what needs to be done PRE-production.2 – Design first does not mean waterfall — The definition of waterfall is that each phase in the process (design-build-test-deliver) is finalized before moving on to the next phase and you are not allowed to go back to previous phases. I don’t think you will find a single interaction designer that wouldn’t like to have the opportunity to change the design anytime during production — but this doesn’t mean that we can design a good product piece-by-piece without the overarching conceptual design of what the product is and what it will mean for our users.3 – Design happens throughout the process — Some programmers think that design first, and by someone other than themselves will take the fun and creativity out of programming. This could not be further from the truth. Design happens throughout the process, the programmers design code, interaction designers design behavior, visual designers design the look of our products. All of them are needed and all of them needs to be great if we are going to deliver a great product (chains – strength – links, you know the drill…).4 – Interaction designers need to get their process analogies in-line — I don’t know how many times I have seen the interaction designer being compared to the architect in house production, it is a tempting analogy and I have used it alot myslef — FORGIVE ME!!! The reason for this analogy is easy to see — Much of our design methodology comes from architecture and industrial design. The problem is not that we work the same way as other more mature design disciplines — the problem is that we don’t reflect on how our production process differs from producing houses or things. The differacnce is the need for production design. The need for production design is almost zero when it follows the industrial design process, if needed at all, you set your machines up and produce the design that the industrial designer created, one design leads to great number of artifact, lets call the relationship between design and what is produced 1~50 000. When it comes to house building the need for production design is a little bigger, the overall design of the house is already in place but the constructors will have to adapt it to the environment of where the house will be built. In this example the relationship between design and finsihed product is more like 1~500. Enter software engineering — now the production process is faced with unlimited possibilities and pitfalls, the need for production design is tremendous. There is also a complete shift in the relationship between design and product, we are now at 1~1, one design one product. It would be naive to think that the programmers don’t need the same conversation with their material as we do as interaction designers. So we need to look at something else for an analogy of our process. There is one other process that comes to mind that more closely resembles the software design-production process — Movie making. The film industry work in the same way with a one to one relationship between design and product, they divide their process in pre-production, production, and post-production and design is present throughout. In broad strokes — Pre-production solves the questions of what story to tell – Production solves the question of how the story is told. What is most important here is the symbios between pre-production and production. When the dialog written during the pre-production doesn’t work out for the actors on the set, it will get re-written. Doesn’t sound like waterfall to me…So how do we solve this!?This is my approach to this (and I will keep you updated with my progress): The bottom line is this — Design is great, Agile is great, so which way do we go. How about the usual “golden middle way”, sounds swedish enough… But really, I think it is the way to go. The first thing is to remove the name Design from any phase in the process. Design has so many meanings for so many people that it is just asking for trouble to put it as a name on a phase. I think we should adopt the movie making analogy, at least for a while, and see where it takes us. I think it would be wise to talk less about the word design since it is something that everybody does anyway, but instead focus on what each and everyone in the organization can provide that helps us reach the final goal, which is — world domina… ehhh sorry — a great product.Well that is all on the topic for now. The minute I press the publish button I will probably remember some other points that I would have liked to make, but whatever — Here is the ball! Start kicking it around! And please notify other people you think will be interested in this discussion. It would be nice to share experiences on the subject matter since it is something that all interaction designers sooner rather than later will find themselves faced with.Keep sketching!


~ by madnark on June 18, 2007.

One Response to “Agile methods”

  1. Interesting

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: