Extreme programming VS interactive design

zhaozj2021-02-11  205

Extreme Programming VS. Interaction Design When Two Development Design Visionaries Meet, There's Room for Consens - But Not Much.by Elden Nelson

Posted January 15, 2002

Kent Beck is known as the father of "extreme programming," a process created to help developers design and build software that effectively meets user expectations. Alan Cooper is the prime proponent of interaction design, a process with similar goals but different methodology. We brought THESE TOVISISIES TOGETHER TO Compare Philosophies, Looking for Points of Consens-and points of ireconcilable Difference.

The Starting LineLet's root this conversation in real life. You've got an important development contract, but in the past, the customer has just given you a one-line description of his high-level concept, and that's about as specific as he's been What do you do?

Beck:. That was exactly the problem one of my clients faced last week We had product managers who wanted to say things like, ". Force this product to OS-390" Then, three months later, they wanted to come back and have the Results. So they're getting answers like, "oh, it's going to take US three more months."

You could try and do a better job on the engineering side of getting the details of exactly what they meant by this and spending more and more time on estimation, requirements, specifications, engineering methodology, computer-aided yadda yadda yadda forever? And never reach . anything like a satisfactory conclusion Or you can say, "Customer, your job in this process has to be more than just giving us the bullet item; you're going to have to take a half step toward engineering, and engineering is going to take a half step toward you. "you take that one bullet item and turn it into twelve things you care about and would recognize as signs of progress along the road toward delivering this product on OS-390.If you click off one of those every week, after two weeks, you're going to have a pretty good idea whether you're going to get what you want at the end of three months. After four weeks, you're going to be absolutely certain whether you're going To get what you originaly wanted at the End of four months.

It does mean that the specification of functionality on the business side has to break down one more level. And to make it as powerful as possible, it has to also come with a lot of activities that used to be thought of as post-hoc testing , where you'd say, "We want the system to do this, and that means-here's a little script by which I mean is really something automated, and that script will run when and only when the one-twelfth of our whole system HAS been added. "

So, if you want better results, if you want more predictability out of this process, the strobe light has to flash more than once every six months. If it flashes every week, you add up a bunch of those and you're going to have a sense of how this works. And there are some trade-offs. If, for the customer, the pain of seeing into the project every week or two weeks is greater than the pain of the disappointment every six months, then I guess the STATUS Quo is Ok. But If THS, THE'RE GoING to have to be engaged in the loop-in this week-two-week kind of loop.can xp work without what key element ?

Beck:. From the customer's perspective, no I've had teams be called "whiners" because after 25 percent of the budget is spent, they're saying, "We have 10 features to add and we're going at half the speed That We Expected. Which Five Well You Like US to Work ON First? "Work Says," What Do You Say In a Situation Like That ?

I don't know. What do you say?

BECK: You Say, "I Quit." Life's Too Short to Work On Doomed Projects You ALREADY KNOW Are Doomed After 25 Percent of The Budget is Spent.

Alan, How Would You Handle THE PROBLEM?

Cooper: I think XP has some really deep, deep tacit assumptions going on, and I think the deepest tacit assumption is that we have a significant organizational problem, but we can not fix the organization Essentially, the crap rolls downhill and ends up. . rolling right into the programmer's lap When the product or the program turns out to be unsatisfactory, the fingers point to the programmer XP is very well-intentioned;. it's the software-development community beginning to say, "Hey, this is not only unfair to us, but it's not productive as a discipline and we can do a lot better. "I applaud that sentiment and I agree with that sentiment, but then XP says," OK, so, I can not change the organizational failings, so, I'm going to build my own internal defenses. "I suppose this is probably better than nothing, but I'm interested in changing the way organizations are constructed. I believe that in order to create quality software, you have to change The Organization. We can change the Organiza tion, and it strikes me that the assumption underlying XP is that the organization's structure is a given.Beck: No, it's absolutely not I spent my entire week explaining to the marketing people and the sales people and the customer-support people how they. Needed to be engaged as members of the team doing software development.

COOPER: That's Not Organizational Change. That's Just Turning Up The Knob.

Beck:. No, it most certainly is We're changing the way people will be evaluated, changing where people sit, changing job responsibilities, creating entire new bundles of responsibilities to shift the planning process more into the customer realm, so they can see Progress On Things That They Want. How Does That Not Add Up To Organizational Change? Cooper: It's not my definition of Organizational Change.

BECK: SO, What is?

Cooper: It's my experience That Neither Users Nor Customers Can Articulate What It is The.. Want, NOR CAN THEY Evaluate Ithen They See It.

Neither the people who buy software nor the people who use it have the capability of visualizing something as complex as the behavior of software. They also do not have the ability to analyze what appropriate behavior is.

Now, I think that there are two sides to software-there's the side that touches the hardware, the central processing unit and peripherals, and it has one type of defining behavior-you know, it's fast and error-free and deterministic. Then on the other side, there's the human side, and humans are slow and error-prone and they're inferential and judgmental and emotional. In my experience, the skills that make you good at one of those things are no help at all on the other .

So, what happens is you take professional logicians-programmers-and they will look at the problem from that logical point of view. They'll look at it from, "How do we structure this code? They'll look at," What Is the code try to build? "" The When THEY SAY, "The Bring Those Same Logical Tools to the party.

On The Other Side, You Have The customer and / or / or us, and then tent to do what we call Automating the pain. "The you "Whereas, what the design process should properly be is one of saying," What are the goals we're trying to accomplish and how can we get rid of all this task crap? "When you put those two constituencies together, they come up with a solution that is better than not having those two constituencies together, I grant that But I do not believe that it is a solution for the term long;. I believe that defining the behavior of software-based products and services is incredibly difficult . It has to be done from the point of view of understanding and visualizing the behavior of complex systems, not the construction of complex systems.

The way the industry works right now is the initial cut at a solution is generally made from the point of view of a feature list that comes from the marketing people or the in-house customer, then given to the developers, who then synthesize a solution . XP makes their communication much more efficient and clearer and robust But neither of them is properly equipped to solve the problem It's not a construction problem;.. it's really a problem of design-not interface design, but behavior design.

And companies, whether they're product companies or corporate IT structures, have no place for behavior design in their current structure, because manufactured products from the Industrial Age did not have behavior. So when I talk about organizational change, I'm not talking about having a more robust communication between two constituencies who are not addressing the appropriate problem. I'm talking about incorporating a new constituency that focuses exclusively on the behavioral issues. And the behavioral issues need to be addressed before construction begins.The Point of Departure: Point of EntryBeck: OK, wait I agreed with you very close to 100 percent, then you just stepped off the rails I do not see why this new specialist has to do his or her job before construction begins..?

Cooper: It has to happen first because programming is so hellishly expensive and the cost of programming is like the cost of pulling teeth I can go have my tooth pulled for about a hundred bucks OK But what's the cost of having your tooth pulled..? ? you do not have a tooth there. OK? And that's what's going on in the world of software. there's enormous cost in writing code, but the real cost in writing code is that code never dies. If you can think this stuff through BETTER RESULTS. You get sign and you don't end up with all more.

BUILDING SOFTWARE ISN'T Like Slapping a shack together; it's more like building a 50- story office building or a giant dam.

Beck: I think it's nothing like those If you build a skyscraper 50 stories high, you can not decide at that point, oh, we need another 50 stories and go jack it all up and put in a bigger foundation.Cooper:. That's Precisely my point.

BECK: But in The Software World, That's Daily Business.

Cooper: That's Pissing Money Away and Leaving Scar Tissue.

BECK: No. I'm going to be the programming faIry for you, alan. I'm going to give you a process Where programming doesn't hurt like what-where, in fact, it gives you information; it can make your information Job Better, And It Doesn't Hurt Like That. Now, Is It Still True That You NEED To Do All of Your Work Before You Start?

COOPER: What do you mean, "make my job better"?

Beck: For example, suppose there are two styles of interaction, one of which costs one one-hundredth of the other and is 95 percent as effective Would you like-when would you like to know that So, the return on investment for.? THESE TWO POSSIBILISIES IS DRAMATILY DIFFERENT. WOULD You Like To Know That Before You Decided Which Style To Use?

Cooper: Well, The Cheapest Thing is to just stay home and not do it.

Beck:. I'll try and make it very concrete I have some tabular presentation of data and I would like to be able to sort all by all the different columns-ascending, descending, and with a little scripting language that lets me combine all Of Those in any ORDER IHOOSE. And The Programmer Comes Back and Says, "That's Very Expensive." OH, Really, I Didn't Know That Was Exency. Well? "

COOPER: See, this is where i come off the tracks. You're Positing That your customer can Tell you the correct answer. The you can't give it to him because it's too expensive. What I'm Saying IS, Number One , if your customer could give you a correct answer, which I absolutely believe they can not, then what are the issues about cost? I mean, it's the engineer's job to keep the cost down. It's not the engineer's job to say, I 'm going to keep cost down by not giving you that. Of course, the engineer will choose the cheapest way to build it. If the engineer does not choose the cheapest way to build it, then the engineer is not competent at his or Her Job.What You're Positing Is That There Are Practitioners Out There Who Do Stupid Stuff. And There Are, IN FACT, "Interface Designers" Out There Who Do That. I'm NOT An Interface Designer, And I'm Not Advocating Interface Design, Which Is Much More Akin To Requirements Planning Than IT IS To Interface Design. I Don't really called; it's not signally happy to let programs deal with a lot of what stuff.

In the work that we're doing, we're changing the face of organizations as much as we're changing the face of their software. We're working with companies right now that have 50 or 60 internal departments, each with a Web presence. They're trying to solve the problems of redundancy and overlap and all that stuff as if it were an interface issue-they want commonality in the interface. in reality, it's not about commonality of the interface. The big problem is, how Do you deal with those 50 or 60 division? How do you get the working together? if you go to the customer ,hnow a whole series of dispussions with the the build what theateow going to end up with a really well-constructed white elephant that does not solve their problem Their problem is, they have to integrate information and their company at a much higher level These are not constructionary interface issues.Looking for ConsensusBeck:.. Well , I think i can grant you pretty much everything that you said about finding that larger picture without the need for hierarchy or phases. You say in your book that the first thing we have to do with the process is specify all the interaction design before we write a line of code. That sounds like design Phase, Implementation Phase to Me.

The interaction designer becomes a bottleneck, because all the decision-making comes to this one central point. This creates a hierarchical communication structure, and my philosophy is more on the complex-system side-that software development should not be composed of phases. If you look at a decade of software development and a minute of software development, you ought to have a process that looks really quite similar, and XP satisfies that. and, secondly, the appropriate social structure is not a hierarchical one, but a network structure.Cooper: Those are really good points, and you and I are very close on this Let me see if I can address this The impression I get from XP is that it addresses the problems of corporate developers and I sense you have... a deep resentment and anger and frustration at this idea of ​​phases. and while I do not think there's anything wrong with phases per se, I think it's wrong when phases are abused, namely when phases have arbitrary boundaries and when the Re's no recourse and the people..............

You're worried that interaction design becomes a bottleneck. You've probably seen abuses in the past, and I certainly have seen abuses in the past. I see very few organizations that think in terms of interaction design as part of the requirements-planning or product-planning process. They see it as something that comes after product planning is done-and when you do interaction design after product planning has been done, you've got a bottleneck, regardless of who does it.

When an architect begins to define a building, he or she works very closely with the people who are buying the building to understand what the requirements are, and translate those requirements into a sketch of a solution. Then there's a lot of give-and- take between the occupants of the building and the architect in coming up with a viable solution. Usually, the architect at the sketch level will know enough not to design something that's an engineering problem. and if the architect does detect that there might be problems, he or she will consult with an engineer to make sure that he or she is not painting himself into a corner, technically speaking. At a certain point, the architect and the customer are going to achieve common ground. At that point, the architect turns those sketches into detailed drawings. Now, during the detailed-drawing phase, there's a lot more intense interaction between the architect and the engineer. The architect, you know, draws a span and calls in the engine .

You notice that the person who's going to live in that building does not talk to the builder about the size of the girders. The architect makes the job of the builder much easier because the builder is not going to have all those facts and figures Id, "The User Comes In And says, "I think it needs to be bigger." What happens then is you end up with all this scar tissue inside your building. you've got to pull out the smaller beams and put in the bigger beams, but that's too expensive, So you end Up scabbing a slightly bigger beam, and life, you want, you can, you can, you can do it, you can, you can do it, you can XP Team That I'VE WORKED with-AND Those That I Admire That I Haven't Worked with-the system becomes more capable over time, not length capable.

One of my goals in XP was creating teams that even in highly constrained and emotionally charged business environments could produce programs that did not lose their ability over time but, in fact, gained capacity over time. As components are factored out, as configurations emerge from the customer team-which you might call the interaction team-the program is still getting better and better in five years. The team gets the attitude where they go back to the customers and say, "you're giving us easy stuff. Give US a hard one. "The customer Team is actually challenged, over time, to think bigger and bigger thoughts as development goes on.

That's one of the base assumptions that seems to be very different in our thinking-that you can build a program that improves with age instead of having it born powerful and gradually degrading until you just think, "Oh, this is crap and we have to START over. "Can We get along? beck: I Would Love to Find A Team Where You Got To Coach The Customer Side and I Got To Coach The Engineers. I Think We Could Kick Some Serious Ass Doint That.

Cooper: Yeah, except with a slight difference You would coach the development team and I would coach the interaction design team, and the interaction design team would act as a bridge between the customer and the developers The thing is, the customer is just.. Not Going Be Imaginative and Will NOT Visualize A "Bigger Thoughts"; Their "Bigger Thoughts" Are Going to Be Very Small.

BECK: OK, DON 'THAT. HOW ABOUT IF WEE WERE TO BUILD A Product and We Had 60 People to DO It. You Get to Direct The Efforts of 30 And i Get To Direct The Efforts of 30. Here's The ConstRAINT- I Give You One Week To Tell Us The First Thing You'd Like To See.

COOPER: I Welln't Know What To do with 30 people Different Sizes of Design Teams and we've settled on the optimum size-it's two. So, i would do the design Work. However, I Want More Than A WEEK.

BECK: YEAH, I KNOW you do, but that what it's why i Gave You That Constraint. We can't Let Those Phases Leak Back IN.

Cooper:... Look During the design phase, the interaction designer works closely with the customers During the detailed design phase, the interaction designer works closely with the programmers There's a crossover point in the beginning of the design phase where the programmers work for the designer. Then, at a certain point the leadership changes so that now the designers work for the implementers. You could call these "phases" -I don't-but it's working together. now, the problem is, a lot of the solutions in XP are solutions to problems that do not envision the presence of interaction design-competent interaction design-in a well-formed organization. and, admittedly, there are not a lot of competent interaction designers out there, and there are even fewer well-formed organizations.Beck: Well, what we would call "story writing" in XP-that is, breaking a very large problem into concrete steps from the non-programming perspective still constitutes progress-that is out of scope for XP But.the balance of power between the "what-should-be-done" and the "doing" needs to maintained, and that the feedback between those should start quickly and continue at a steady and short pace, like a week or two weeks. Nothing You'VE SAID SO FAR-Excepter That You Haven't Done It That Way-Suggests To anything That You'VE SAID.

Cooper: I agree with that, and I think that that's the primary focus of interaction design I think that the-there's a single point where Larry Constantine and I diverge, and that is that he asserts that this is an engineering discipline and I don. 't.

The Problem Is That Interaction Design Accepts XP, But Xp Does Not Accept Interaction Design. That's What Bothers Me.beck: for instance?

Cooper: Yeah The instant you start coding, you set a trajectory that is substantially unchangeable If you try, you run into all sorts of problems, not the least of which is that the programmers themselves do not want to change They don... 'Twant to have to redo all this stuff. And they're justified in NOT WANTING TO HAVE TOORD SO MANY TIMES BY PEOPLE WHO DON' TIMES by People Who Don't know what the the the the the IS IS one of the fundamental assumptions, I think, that underlies XP-that the requirements will be shifting-and XP is a tool for getting a grip on those shifting requirements and tracking them much more closely. Interaction design, on the other hand, is not a tool for getting a grip on shifting requirements; it is a tool for damping those shifting requirements by seeing through the inability to articulate problems and solutions on management's side, and articulating them for the developers It's a much, much more efficient way, from. A Design Point of View, from A Business Point of View, and from a development point of view. do you see THAT?

Beck: Yeah, but I would say exactly the opposite For all its Dilbertesque qualities-and I'm still proud of having said "Embrace Change" in the title of the first XP book I've consciously decided to give up the ability.. TO Predict the fulure.

Cooper: I see That in xp. It's an abdication.

BECK: Is Zen an abdication?

Cooper: XP assumes the people you're working with are going to jerk your chain, so you embrace that and work with it And I actually think XP is a pretty good methodology for dealing with that I'm saying, "Let's go.. to the root of the problem, which is the people who run our companies and jerk our chains back and forth, because they do not understand software. "You can not teach them to understand software.Rather than" embrace change, "I would say, ". embrace quality" If you think things through, you solve problems Look at how something like the Palm Pilot just sliced ​​through the marketplace;. that's because it was designed-and it just sliced ​​through the marketplace.

Beck: If we were in logic class, you would have just gotten a demerit You can not say that the success of the Palm Pilot proves that design is the most successful way to do things The Palm Pilot would have been better if it.. Had Been Evolved. If The Had Cut Code The First Week, We Would Have Had A Much Better Product.

WITH ALL WONDER: KENT, CAN INTERACTION Design Make Sense Inside XP?

Beck: XP says that you have a conversation between the "customer team" and the "engineering team." The customer team's job is to take a big problem and say which step forward we'd like to take They use "stories" -. Little Pieces of Functionality That Are DOABLE IN A Short Cycle, Like A Week Or Two Weeks. You can have succeed or fas....

What I've noticed is, the teams that write the automated tests in advance of implementation do a much better job of both thinking about the thing and tracking their progress. Interaction design, to me, has a role to play from the moment of inception .. of a project, as a way of coming up with the metaphors for the system in discovering those metaphors I would love to have Alan on a team of mine in that story writing.Cooper: What you have defined is the role of interface designers , not the role of interaction designers. Interaction designers do not do metaphors and do not do ways of information presentation-what they do is deal with behavior and with what the solution is going to be. "Interaction designer" is not title inflation For "Interface Designer."

ALAN, CAN XP Make Sense INSIDE INTERACTION Design?

Cooper: The interaction designers would begin a field study of the businesspeople and what they're trying to accomplish, and of the staff in the organization and what problems they're trying to solve Then I would do a lot of field work talking to. users, trying to understand what their goals are and trying to get an understanding of how would you differentiate the user community. Then, we would apply our goal-directed method to this to develop a set of user personas that we use as our creation and .

Next, we go through a period of back-and-forth, communicating what we're proposing and why, so that they can have buy-in. When they consent, we create a detailed set of blueprints for the behavior of that product.

As we get more and more detailed in the description of the behavior, we're talking to the developers to make sure they understand it and can tell us their point of view.At a certain point, the detailed blueprints would be complete and they would be known by both sides. Then there would be a semiformal passing of the baton to the development team where they would begin construction. At this point, all the tenets of XP would go into play, with a couple of exceptions. First, while requirements always shift, the interaction design gives you a high-level solution that's of a much better quality than you would get by talking directly to customers. Second, the amount of shifting that goes on should be reduced by three or four orders of magnitude.

Beck: I'll divide what Alan is talking about into two things:. A set of techniques, and the larger process into which they fit While I'm 100 percent with the techniques themselves, I'm 100 percent against the process that he described for using them. The techniques are optimized for being thoughtful in a cognitively difficult, complicated area where you're breaking new ground, and the thinking that's embedded in the practices is absolutely essential to doing effective software development.

The process, however, seems to be avoiding a problem that we've worked very hard to eliminate. The engineering practices of extreme programming are precisely there to eliminate that imbalance, to create an engineering team that can spin as fast as the interaction team. Cooperesque interaction design, I think, would be an outstanding tool to use inside the loop of development where the engineering was done according to the extreme programming practices. I can imagine the result of that would be far more powerful than setting up phases and hierarchy. to me, the shining city on the hill is to create a process that uses XP engineering and the story writing out of interaction design. This could create something that's really far more effective than either of those two things in isolation.

Culture

转载请注明原文地址:https://www.9cbs.com/read-5306.html

New Post(0)