For those lacking time to watch the entire 45 minute video, here are a few interview excerpts, to highlight Cooper’s ideas about Agile, Extreme Programming, Open Source, and being a knowledge worker/programmer in the post industrial age, working in organization managed around industrial age models. Extraneous conjunctions have been edited for message clarity. Interaction design is emphasized for visual extraction of his thoughts about its role in Agile software development. The last few paragraphs are of particular interest.
“I wrote a book called About Face in 1995 and I wrote a book called The Inmates Are Running the Asylum in 1999 and both of these books were pluming this idea of how does software get constructed and how can it be designed well from the point of view of how it behaves in the world, as though it were a person with a social presence.
“I have built a software design consulting company around that. We are kind of process wonks.
“The fundamental goals of Agile programming are to let programmers who are knowledge workers get to the core of their motivation. And the core motivation of all knowledge workers is to do good work.
“There are a lot of people around the fringes of the Agile movement who don’t get that yet, and who think that Agile is about productivity. It is not about productivity. I think that productivity is a byproduct, but if you set that up as your goal you will fail.
“The thing about open source is that it is self directed, it is self motivated. And in order to be self motivated, you can’t have roosters coming around you squawking and giving you a tangential instructions.
“There is this idea left over from the industrial management that you say ‘we are making refrigerators or automobiles’ and then everything goes down in that pyramid in that classical manufacturing hierarchy and down to the lowest level, the individual tradesmen contributing their bolts to the mechanical device. And we are post industrial, programmers are knowledge workers, they not only don’t think that way, they don’t act that way, don’t have common values to that, and their organizations aren’t structured that way. So it has created this huge vacuum and management is horribly hobbled by their industrial age beliefs.
“And what that has done is that kept them out of the vacuum, that’s the route of the abdication. And the thing about programmers is they didn’t have the right skills, they didn’t have the right talents, they didn’t have the right training, they didn’t have the right motivation, they didn’t have any support at all. All they saw was the vacuum and they stepped into what they had.
“They were doing it without all those appropriate tools. Namely, all of the things that [prevent] software projects [from having] cost overruns, and schedule overruns and to be unpredictable, and unlovable, and often unusable, and frequently a death march that produces a piece of software that just rolls over and dies upon roll out.
“I mean it is a toxic means of software construction that has become the toxic means of business. And the dot com bubble was this enormous distraction. Extreme Programming was a way for programmers to hunker down in their bunker in this hostile environment.
“Things have changed dramatically in the last few years. Extreme has morphed into Agile, and I really think that there is something quite existential here, that you have to hit bottom before you can change.
“[Programmers] finally said ‘Let’s do what is right’. And be damned to the industrial age managers, trying to survive in a post industrial world. And this is where the brilliance starts to come through. I just came from a workshop called ‘The beginner’s mind.’ This is a Zen concept, it’s the way you achieve true understanding, by being a student, by being the beginner.
“And what [programmers] did—I love this about programmers—is they said ‘I don’t know’. In fact I am unclear about anything I’m doing here. I am unconvinced that anything is correct, except what I know is that the way I have 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 am going to do is I am going to question everything.
“And what they did is they opened the beating heart of programming to inspection by others. This is a reflection of the sincerity, the honesty, the profound depth of their questioning, their Zen mind, to open the code up. Then they begun to open up the idea, how long is it going to take us to do this, how do we know what this is? Wonderful, fundamental questions that have been never truly been asked or answered in the world of software, mostly because the world of software has its roots in academia, rather than having its roots in industry or commerce.
“Industry or commerce may have primitive methodologies, but they are always about effectiveness, always about achieving goals. In Academia the goal is to learn, and to fail is to learn, therefore failure is okay. And that’s one of the reasons why I think the software world has long been willing to accept failures as okay. But in a modern digitally interconnected worldm failure is much more noticeable.
“There are a lot of people out there saying ‘I know how to make software development Agile, stickers on the wall and a 3 months turn around’ And neither of them worked, neither of them were honest. So you really have to do it right.
“Yet another wonderful thing about Agile is that by being relentlessly self introspective, it exposes all the weaknesses in the process. And one of the great weaknesses in the process is that there is nobody figuring out what the problem is and what the solution is. There is lots of good people figuring out how to build the solution, and there is lots of people figuring out actually building the solution.
“I mean it is considered normal in the software business… building the solution to the wrong problem is normal, and you will go on from there. And this is why [there are] multiple releases. I am not talking about just builds but I am talking about real product releases.
“That’s the bondware talking, it’s not the way it should be, it doesn’t have to be that way, it’s just toxic old industrial construction methods under pressure being pushed on a community of knowledge workers. It’s heinously wasteful and it’s incorrect and it crushes people’s wills and happiness.
“So it is great that what Agile is doing is actually saying ‘Wait a minute, there is a hole here’.
“Now this is where you are going to accuse me of being self serving, because I am saying right into that gap in the process is where interaction designers go.
“As a community of technologists who are knowledge workers being managed by industrial age managers who are treating them like factory workers, the goal of programmers for the last fifty years has been to survive and most of what they have developed are coping strategies, how do I survive in a hostile environment? Agile is unique as in its goals are not to make it easier for me to deal with hostility. I mean, yes, it does that, but its number one goal is to create good products, successful products that people like and will use.
“So there needs to be an organizational change for Agile to thrive. And there needs to be organizational change for interaction design to thrive.
“What I am saying is this is going to be an epiphany moment, for each individual interaction designer out there…. Are they going to step in and occupy that gap in the Agile team that says ‘I will take responsibility for the quality of the behavior of the human facing side of this software from start to finish’. Because that’s what the programmers do, they stand up and say ‘I will take responsibility for the quality of the execution of all of the software from start to finish’.
“So I very much see a shift from our design organization delivering solutions to management, which are worshiped but not followed, to feeding directly into the Agile cycle, because the thing that motivates good designers is the same thing that motivates good programmers, which is seeing their products get built and having them satisfy the users.
“All the reflectivity that Agile programmers do within their Agile programming organizations are ‘Let’s look at the architecture of the code, let’s look at the code, let’s look at the models within the code, let’s look at the objects, and let’s do all that reflection’, that’s what brings quality. So where interaction designers come in, is they bring the same level of reflectivity to the business problem.
“What interaction designers can do is they can reflect the business problem back to the stakeholders and they can reflect the user definition back to the stakeholders, and this is a step that is missing from almost all conventional or Agile software construction projects, and is one of the reasons why so many projects, even if they are Agile, can go off into the weeds because the project definition itself is incorrect or inappropriate or misaligned somehow.
“The next step is, once the interaction designers who are experts at doing this kind of human research and understanding what the users are trying to achieve, then they can block out the behavioral solution. And they use Agile methods within their own teams to create proposed solutions. And we have simulation tools for narrowing down to a good sense of correctness. But then what we can do is take those proposed solutions in narrative form and in visual form, but primarily in narrative form. Let’s think of it as a user story on steroids… again, this is a process that is typically missing from conventional software construction processes.
“This is this sort of disconnecting… the business people are cycling over here and they hand over one of their hand grenades in the tech group and the tech group cycles with it until they come up with something. And they have user stories and they have got their stakeholders and people come in but there’s never really this formal ‘let’s state the problem, let’s state the solution.’
“This is the skill set that the interaction designers bring to the problem. That’s all done before day zero… Interaction designers are good at user interface design too.
“But user interface design is not what makes your product a success or a failure, but it’s really that deep and profound understanding of the problem and understanding of the solution and making sure that the business side is what they want. Who are the users, what are they trying to accomplish, what motivates them, what tasks are they performing.
“The same way 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 is the missing piece.
“The economics of software are qualitatively different than the economics of industry. In industry there were economics of scale, and what we tried to do is drive the cost of manufacturing down in order to drive the price down, in order to deliver value to the customers. In software there is no ongoing cost, there is no manufacturing cost, there is no material cost, so driving cost down just reduces the desirability of the product. Instead what you want to do is not waste money, not throw money at the problem. But cost reduction is an ineffective tool. What you want to do is create your number one goal 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… stop worrying about the costs and start worrying about the quality’.
“And what I am saying is… don’t let that out of your sight. Don’t start thinking about delivery times and don’t start thinking about costs reduction and don’t start thinking about ROI, think about the quality because that’s why we are all playing this game.”
Also see Cooper’s Agile 2008 event presentation: The Wisdom of Experience »