onsitecustomer.html

来自「极限编程 Extream Programing」· HTML 代码 · 共 92 行

HTML
92
字号
<head><title>Onsite Customer</title></head><body><h1><img src="logo.gif"> Onsite Customer</h1>An XP core practice. &quot;A real customer must sit with the team, available to answer questions, resolve disputes, and set small-scale priorities.&quot;
<p>If more than one person might enjoy your program, they must appoint (using common mercantile business mechanics) a single individual to collate their interests into a coherent stream of <a href="http://c2.com/cgi/wiki?UserStories">UserStories</a>. Only an <a href="OnsiteCustomer.html">OnsiteCustomer</a> may author or prioritize a <a href="http://c2.com/cgi/wiki?UserStory">UserStory</a>.
<p><hr>
<p>I've been thinking about this after looking at JAD, PD, and QFD.  The <a href="OnsiteCustomer.html">OnsiteCustomer</a> is a UserRepresentative<a href="http://c2.com/cgi/wiki?edit=UserRepresentative">?</a> (or is that CustomerRepresentative<a href="http://c2.com/cgi/wiki?edit=CustomerRepresentative">?</a>?).    How does this compare to <a href="http://c2.com/cgi/wiki?CustomerShadowing">CustomerShadowing</a> (shouldn't this be UserShadowing<a href="http://c2.com/cgi/wiki?edit=UserShadowing">?</a>?) which itself seems a lot like PD's DesignerAsApprentice<a href="http://c2.com/cgi/wiki?edit=DesignerAsApprentice">?</a> or Blitz QFD's <a href="http://c2.com/cgi/wiki?GoToGemba">GoToGemba</a>?
Can you get an adequate understanding of the process by asking questions or should it be a core practice that you also go and observe the environment the user is working in? -- <a href="http://c2.com/cgi/wiki?JasonYip">JasonYip</a>
<p><hr>
<p>Distinguish <em>getting an understanding</em>, 
from <em>resolving disputes</em>.  XP needs the second, <a href="http://c2.com/cgi/wiki?CustomerShadowing">CustomerShadowing</a> deals with the first, but not the second. --<a href="http://c2.com/cgi/wiki?AlistairCockburn">AlistairCockburn</a>
<hr>
When working on an R&amp;D-type project, who is the customer?  Is it valid to have someone within the company (perhaps a manager) play that role? --<a href="http://c2.com/cgi/wiki?TimWoodard">TimWoodard</a>
<hr>
Onsite customer related quotes published on <a href="XpMailingList.html">XpMailingList</a> by WilliamWake<a href="http://c2.com/cgi/wiki?edit=WilliamWake">?</a>:
<p>&quot;Make clients an integral part of every project team.&quot;
<PRE>  - <a href="http://c2.com/cgi/wiki?TomPeters">TomPeters</a>, The Professional Service Firm 50, p. 105
<p></PRE>&quot;If the client won't give you full-time, top-flight
members, beg off the project. The client isn't serious.&quot;
<PRE>  - <a href="http://c2.com/cgi/wiki?TomPeters">TomPeters</a>, The Professional Service Firm 50, p. 106
<p></PRE>&quot;A real customer must sit with the team, available to anwer
questions, resolve disputes, and set small-scale priorities.&quot;
<PRE>  - <a href="KentBeck.html">KentBeck</a>, <a href="http://c2.com/cgi/wiki?ExtremeProgrammingExplained">ExtremeProgrammingExplained</a>, p. 60
<p></PRE><hr>
<p>Sandip and Frank work at MegaWampumIndustries<a href="http://c2.com/cgi/wiki?edit=MegaWampumIndustries">?</a>, and read books like /Rapid Development/ and /Software Project Survival Guide/. Frank, however, has recently picked up /eXtreme Programming Explained/.
<p>Sandip must upgrade a program used by another division of MWI, located across town. Per his understanding of those software lifecycle books, he schedules his allotted time into three big phases - Requirements Gathering, Iterative Development, and Deployment. During RG, he travels across town, interviews users, watches their workflow, and attentively collects wish lists. To end the R.G. phase he displays his vision of the new UI as a stage-prop demo, and everyone likes it. The ease of use and short click path thru the new demo allay fears that the new UI differs completely from the old one, which matched the internal data model closely and was therefor klutzey.
<p>At the same time, Frank accepts the task to upgrade a program used by a department downstairs from his IT lair. He also ostensibly schedules his time into RequirementsGathering<a href="http://c2.com/cgi/wiki?edit=RequirementsGathering">?</a>, <a href="IterativeDevelopment.html">IterativeDevelopment</a>, and DeploymentPhases<a href="http://c2.com/cgi/wiki?edit=DeploymentPhases">?</a>, but as his management has not yet been pitched XP ideals he can't make demands based on them yet. After similar wish listing he selects and appoints one of the users, Marco, to be his regular contact on the project. He builds the screen-prop demo with Marco sitting next to him in his cube, directing. The UI is, likewise, steeply different from the old version.
<p>During their I.D. phases, both Sandip and Frank stabilize their old versions with <a href="UnitTests.html">UnitTests</a>, then Refactor them Mercilessly into the new versions (despite most of those software lifecycle reference books recommend neither such thing beyond /in passim/). Each feature drops in rock-solid, and their velocity is very high. They spend most of their time heads-down in their cubes deep in flow.
<p>But Frank's third development task, after building the demo and laying out the <a href="http://c2.com/cgi/wiki?UnitTest">UnitTest</a> rig, is to &quot;deploy&quot; a reference installation in a cube in the SQA Department. The SQA Department, after learning that it does nearly nothing, ignore it. But Frank deploys a new bench version to it every other day, so whenever Marco stops by he can see it without interrupting Frank's flow. Eventually Marco makes a point of playing with each new feature in the reference version as it appears.
<p>Sandip, on schedule, releases his upgrade to SQA. They tick off each of its requirements, and help deploy it to the customers' workstations across town.
<p>Frank puts his program thru SQA and deploys it to Marco's desk. He tells Marco, &quot;For the first week we can't go crazy and start using all the new features I added. We can only prove the program still matches exactly what the old one did.&quot; But Marco simply itches to play with the new toy, and as Frank leaves Marco is on the phone coordinating the new data features with his colleagues downstream.
<p>After a week wondering how his program's working out, Sandip calls the department using it. Then he drives over. He discovers everyone still uses the old version, and they often activate the new version just to press one button. Nobody has read the carefully written Users Manual. He returns, arranges a &quot;Training Session&quot; with the managers, and never hears the workers' groans as they read the e-mail demanding a big chunk out of their day.
<p>Sandip's project has FallenVictim<a href="http://c2.com/cgi/wiki?edit=FallenVictim">?</a> to a problem common to new versions that differ widely from the old versions - inertia leads to low customer acceptance, even if the new version is superior in every way. Frank ran essentially the same risk with his upgrade effort. But by using Marco as a PseudoOnsiteCustomer<a href="http://c2.com/cgi/wiki?edit=PseudoOnsiteCustomer">?</a>, he whipped him into a frenzy beyond what any TrainingSession<a href="http://c2.com/cgi/wiki?edit=TrainingSession">?</a> could ever have accomplished. Marco burst thru the starting gate not only knowing the new face of the old features backwards and forwards, but knowing the exact list of new features and how they worked together. This experience, similar to being a real <a href="OnsiteCustomer.html">OnsiteCustomer</a>, BrainWashed<a href="http://c2.com/cgi/wiki?edit=BrainWashed">?</a> him into UnquestionableCustomerAcceptance<a href="http://c2.com/cgi/wiki?edit=UnquestionableCustomerAcceptance">?</a>.
<p>--<a href="http://c2.com/cgi/wiki?PhlIp">PhlIp</a>
<p><hr>
<a href="http://c2.com/cgi/wiki?TheTwentyFirstCenturyCorporation">TheTwentyFirstCenturyCorporation</a> says &quot;The best-of-breed companies will go even further. They'll invite customers in as collaborators, binding them ever tighter to the corporation.&quot; (p. 92)
<p><hr>
<p>Often there are many customers for a project. We often have multiple customers
who want very different things at the same time. You can create a virtual
customer but this isn't very realistic. Usually there are groups representing
different factions (marketing, manufacturing, etc) that taken together 
represent the virtual customer.
--Stout
<p>Absolutely, but it isn't the job of development to sort out their relative priority. <a href="http://c2.com/cgi/wiki?TheCustomerSpeaksWithOneVoice">TheCustomerSpeaksWithOneVoice</a>. At <a href="http://www.evant.com">http://www.evant.com</a> there are six ProductManager<a href="http://c2.com/cgi/wiki?edit=ProductManager">?</a>'s. By the time they come to the <a href="http://c2.com/cgi/wiki?IterationPlanningMeeting">IterationPlanningMeeting</a>, they have already worked out who is going to get what amount of the team's time. During planning they work out how their pieces go together, e.g. &quot;If you're not going to do that, then this here of mine doesn't make sense until later.&quot; See also <a href="http://industriallogic.com/xp/exposures.html">http://industriallogic.com/xp/exposures.html</a>.
<p><hr>
<p>Issues related to the <a href="OnsiteCustomer.html">OnsiteCustomer</a> will be discussed at the <a href="http://c2.com/cgi/wiki?WorkshopOnCustomerInvolvement">WorkshopOnCustomerInvolvement</a>, associated with <a href="XpTwoThousandAndOne.html">XpTwoThousandAndOne</a>.
<p>Chapter 3 of <a href="http://c2.com/cgi/wiki?ExtremeProgrammingInstalled">ExtremeProgrammingInstalled</a> (pp. 17-21) is completely
devoted to the <a href="OnsiteCustomer.html">OnsiteCustomer</a>.
<p>--<a href="http://c2.com/cgi/wiki?ArieVanDeursen">ArieVanDeursen</a>
<p><hr>
See also <a href="http://c2.com/cgi/wiki?CustomerCapabilities">CustomerCapabilities</a>, <a href="http://c2.com/cgi/wiki?WhoIsTheCustomer">WhoIsTheCustomer</a>, <a href="http://c2.com/cgi/wiki?LackOfOnSiteCustomer">LackOfOnSiteCustomer</a>, <a href="http://c2.com/cgi/wiki?CustomerResponsibilities">CustomerResponsibilities</a>, <a href="http://c2.com/cgi/wiki?CustomerRisks">CustomerRisks</a>
<hr>
<a href="http://c2.com/cgi/wiki?CategoryCustomer">CategoryCustomer</a><hr><a href="http://c2.com/cgi/wiki?edit=OnsiteCustomer">EditText</a> of this page (last edited March 5, 2001)<br><a href="http://c2.com/cgi/wiki?FindPage&value=OnsiteCustomer">FindPage</a> by browsing or searching<p><font color=gray size=-1>This page mirrored in <a href="index.html">ExtremeProgrammingRoadmap</a> as of March 31, 2001</font></body>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?