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...."