Winds of Change.NET: Liberty. Discovery. Humanity. Victory.

Formal Affiliations
  • Anti-Idiotarian Manifesto
  • Euston Democratic Progressive Manifesto
  • Real Democracy for Iran!
  • Support Denamrk
  • Million Voices for Darfur
  • milblogs
 Subscribe in a reader

Alan Cooper on Agile Programing, Interaction Design, and the "Insurgency of Quality"


Alan Cooper was once known as the father of Visual Basic. In recent years, he has become better known for his work on designing software that works. "The Inmates are Running the Asylum" remains one of the best books I know on the subject.

During the Agile 2008 conference, InfoQ took the time to interview Alan, who came to the conference with a tag reading "Student." What had he seen? What had he learned? How did the concepts behind the spreading wave of agile software development fit with his work on interaction design?

What followed was one of the most thoughtful expositions I've heard regarding modern software development, with some great lines and deep connections drawn. If you're involved in software development on any level - and especially if it's on a managerial level, this is a must-see interview.

Some of the better takeways:

"Kurt Vonnegut says 'always accept strange travel invitations. they're like dance lessons from G-d' "

"While extreme programing is agile, agile programming is not necessarily extreme programming."

"The core motivation of all knowledge workers is to do good work, ok?.... [agile is] not about productivity. I think productivity is a byproduct, but if you set that up as your goal, you'll fail."

"It's attempt to reconstitute the motivations... what lie behind the open source movement in a captive commercial, purposeful marketplace. And the thing about open source is, it is self directed. It is self motivated. And in order to be self motivated, you can't have roosters coming around, squawking and giving you tangential instructions."

"I think a lot of the inmates do kind of understand... that the inmates are running the asylum is that it's not a... not a palace coup, but a royal abdication. And that the inmates, the programmers, the technical people, are in fact running the asylum because no-one else is running it. There's this idea left over, y'know, from industrial management... it's created this huge vacuum. And, management is horribly hobbled by their industrial age beliefs. And, what that's done is, that's kept them out of the vacuum. That's the root of the abdication."

"The toxic memes of software construction have become the toxic memes of business."

"And this is where the brilliance starts to come through.... programmers, who are the experts, they are the smartest people in the room regardless of which room you walk in, ok? And what they did, I love this about programmers, is they said 'I don't know. In fact, I'm unclear about anything I'm doing here... except that what I I know is that the way I've been doing things doesn't work. It doesn't make me happy, it doesn't make the business happy, and it doesn't make the customers happy. So what I'm gonna do is I'm gonna question everything.... and this is one of the reasons why I know they're serious, deadly serious. Is because one of the core tenets of extreme and agile programming is pair programing. Which says, I mean, if there's one atomic element of programming, it's code. And what they did is they opened the beating heart of programing to inspection by others. Ok? This is a reflection of the sincerity, the honesty, the profound depth of their questioning.... And then they began to open up the idea of "how long is it gonna take us to do this?" How do we know what this is?" Wonderful, fundamental questions that have been, um, never truly asked and answered in the world of software. Mostly because software has its roots in academia, rather than... industry or commerce...."

"[The right practices...] They're the ones that work for you. But not the ones that make you feel good. But the ones that allow you to create a success by external standards, and by internal standards.... At its core, it's, it's introspection... to increase the proportion of 'rightness' in what you do in the future."

"Where interaction designers come in, one of the places they come in, is they bring the same level of reflectivity to the business problem."

"Software is not an industrial product. In an industrial product, design is done, and, then a thing is manufactured. And lots of people labour executing the design.... in the world of software, design permeates construction, ok? However, there are very different flavours of design in the world of software...."

"And one of the great weaknesses in the process is that there's nobody figuring what the problem is, and what the solution is.... It is considered normal in the software business.... Building a solution to the wrong problem is considered normal, and we'll go from there.... And, that's just crazy. That's the bong water talking. That's not the way it should be!"

"But user interface design is not what makes your product a success or a failure, ok? It's really that deep and profound understanding of the problem, and understanding of the solution... who are the users, what are they trying to accomplish, what motivates them? Not what tasks are they performing, but what's are they really trying - their end state? What does success look like. The same way that agile programmers want to know what done looks like? Interaction designers want to know what success looks like. And those two work together to create a successful product. And that's the missing piece."

"...the economics of software are qualitatively different from the economics of industry.... In software, there are no ongoing costs, there's no manufacturing costs, there's no materials costs. And, so, driving costs down just reduces the desirability of the product. Instead... not waste money, not throw money at the problem, but cost reduction is... an ineffective tool.... Your #1 goal is to say "what do we have to do to elevate the quality, the desirability, of the end product?" And when you worry about costs, you hurt that. And... one of the great things that I see in agile is an understanding that says "Hey, Mr. Businessman, stop worrying about the costs and start worrying about the quality. And what I'm saying is "thankyou thankyou thankyou, don't let that out of your sight...."

"I would say some enormous percentage like, say, 99.9% of the software in the world, sucks really badly. I would not say that 99.9% of the programmers in the world suck. I just think that 99.9% of the programmers in the world are in an untenable hostile environment.... that is not conducive to create good software, and is not conducive to create good design.... So, there needs to be an organizational change for agile to thrive, and there needs to be organizational change for interaction design to thrive."

"The one thing about programmers, is, they've been pigs from day one [vid. "in your breakfast, the chicken was involved, but the pig was committed"]. And they will always be pigs. And, Interaction designers, the good ones... also want to be pigs. The organizational structure forces them to be chickens. Ok? And this is the thing that I see that's happening in agile that's so intriguing to me is that it's creating this opening, y'know, in the pig barn. Saying "Come on in. Do you dare?" And what I'm saying is, this is going to be an epiphany moment for each individual Interaction Designer out there...."


Might be a book worth looking at. I found About Face very instructive to think about. It may have been the first book I read that showed the usefulness of lining widgets up and the stupidity of cascading dialogues. On the other hand, some of his other ideas in that book seemed to me like a bad mistake, e.g., his comments on enforcing database referential integrity (against it).

I like the metaphor of his title. The institution where my wife teaches has gone to a web-based gradebook that was clearly designed by programmers for programmers. I guess they got a few technoliterate professors to beta it, but the majority of non-technical staff have been left at sea.

One of my standing gripes about modern computer science is something I call the tyranny of "programmer productivity". Programmers get caught up in how the code is written versus what the product is doing, and the culture of software development means that a whole lot of programming is done in a black box.

Programmers routinely have massive religious wars about this or that language, this or that "paradigm", etc, and are caught up in a sort of GM-think that what's good for the programmer is good for the customer.

This is why I've spent my software career in small product companies, where there's at least some relationship between every programmer and end users. In big companies, there's a vast organizational distance between developers and users, so it's little wonder that programmers know little about how the product is actually used and what the customers care about - and tend to focus on the wrong stuff.

I don't think I agree with Foobarista here. My experience is that small niche software is often the dead worst in term of user interface. Next time you are at the dentist or the auto mechanic, ask them what they think of their vertical-market software. It's buggy, the interface is always anti-intuitive, and it's built on top of orphaned technologies like FoxPro and even DOS. I'd put the electronic gradebook in the same category, just web-based.

Once upon a time mass market software was also this bad. One of Cooper's examples in "About Face" was a fairly popular fax program for Windows [circa 1995] that at one dreadful point was layered four modal dialogs deep. There's a lot of terrible UI out there, including a number of programs that have regressed from usable to crap (yeah, Intuit, I'm looking at you), but nothing quite that egregious.

You need a company big enough to have good coders and people with UI design skills. One of the things I did not like about Cooper was his assumption that except for a few select people (like himself, of course) few people could fulfill both tasks. I took rather personal exception to that.

Andrew, you could always be one of the few, the proud, the usability programmers.

But even Cooper admits that when he started realy devoting time to get good at one side (interaction design), he stopped being a coder for a long while. So I'm not sure he even puts himself in that category, though I reckon he could do a passable job trying to combine both roles. Maybe not a great one, but a passable one.

There are few very people who are gorgeous, and smart, and can both act and sing at a top-tier professional level. As Ms. Paltrow and Ms. Pfeiffer prove, "few" does not mean "none."

Leave a comment

Here are some quick tips for adding simple Textile formatting to your comments, though you can also use proper HTML tags:

*This* puts text in bold.

_This_ puts text in italics.

bq. This "bq." at the beginning of a paragraph, flush with the left hand side and with a space after it, is the code to indent one paragraph of text as a block quote.

To add a live URL, "Text to display": (no spaces between) will show up as Text to display. Always use this for links - otherwise you will screw up the columns on our main blog page.

Recent Comments
  • TM Lutas: Jobs' formula was simple enough. Passionately care about your users, read more
  • Just seeing the green community in action makes me confident read more
  • Glen Wishard: Jobs was on the losing end of competition many times, read more
  • Chris M: Thanks for the great post, Joe ... linked it on read more
  • Joe Katzman: Collect them all! Though the French would be upset about read more
  • Glen Wishard: Now all the Saudis need is a division's worth of read more
  • mark buehner: Its one thing to accept the Iranians as an ally read more
  • J Aguilar: Saudis were around here (Spain) a year ago trying the read more
  • Fred: Good point, brutality didn't work terribly well for the Russians read more
  • mark buehner: Certainly plausible but there are plenty of examples of that read more
  • Fred: They have no need to project power but have the read more
  • mark buehner: Good stuff here. The only caveat is that a nuclear read more
  • Ian C.: OK... Here's the problem. Perceived relevance. When it was 'Weapons read more
  • Marcus Vitruvius: Chris, If there were some way to do all these read more
  • Chris M: Marcus Vitruvius, I'm surprised by your comments. You're quite right, read more
The Winds Crew
Town Founder: Left-Hand Man: Other Winds Marshals
  • 'AMac', aka. Marshal Festus (AMac@...)
  • Robin "Straight Shooter" Burk
  • 'Cicero', aka. The Quiet Man (cicero@...)
  • David Blue (
  • 'Lewy14', aka. Marshal Leroy (lewy14@...)
  • 'Nortius Maximus', aka. Big Tuna (nortius.maximus@...)
Other Regulars Semi-Active: Posting Affiliates Emeritus:
Winds Blogroll
Author Archives
Powered by Movable Type 4.23-en