📄 extremeroles.html
字号:
<head><title>Extreme Roles</title></head><body><h1><img src="logo.gif"> Extreme Roles</h1>Here are some roles that are part of XP. Most are assigned: Tracker, Customer, Programmer, Coach, Manager, Tester. Anyone can be Doomsayer.
<p><DL><dt><strong>Tracker (<a href="http://c2.com/cgi/wiki?TrackerRole">TrackerRole</a>)</strong><dd>goes around a time or two a week, asks each Programmer how she's doing, listens to the answer, takes action if things seem to be going off track. Actions include suggesting a CRC session, setting up a meeting with Customer, asking Coach or another Programmer to help. <em>(This was discussed at <a href="http://c2.com/cgi/wiki?XpImmersionTwo">XpImmersionTwo</a> -- but not much on that page.)</em>
<p><dt><strong>Customer (<a href="http://c2.com/cgi/wiki?GoalDonor">GoalDonor</a>/<a href="http://c2.com/cgi/wiki?GoldOwner">GoldOwner</a>)</strong><dd>writes <a href="http://c2.com/cgi/wiki?UserStories">UserStories</a> and specifies <a href="FunctionalTests.html">FunctionalTests</a>. Sets priorities, explains stories, views CRC sessions. Corresponds to C3's <a href="http://c2.com/cgi/wiki?GoalDonor">GoalDonor</a>, may or may not also be the <a href="http://c2.com/cgi/wiki?GoldOwner">GoldOwner</a>.
<p><dt><strong>Programmer (XpProgrammer<a href="http://c2.com/cgi/wiki?edit=XpProgrammer">?</a>)</strong><dd>estimates stories, defines <a href="http://c2.com/cgi/wiki?EngineeringTask">EngineeringTask</a>'s from stories, estimates how long stories and tasks will take, implements stories and <a href="UnitTests.html">UnitTests</a>.
<p><dt><strong>Coach (<a href="http://c2.com/cgi/wiki?TheCoach">TheCoach</a>)</strong><dd>watches everything, sends obscure signals, makes sure the project continues to <a href="http://c2.com/cgi/wiki?StayExtreme">StayExtreme</a>. Helps with anything. Applies <a href="http://c2.com/cgi/wiki?RolledUpNewspaper">RolledUpNewspaper</a> as required. See <a href="http://c2.com/cgi/wiki?TheCoach">TheCoach</a> for some beginning notes on this.
<p><dt><strong>Tester (FunctionalTester<a href="http://c2.com/cgi/wiki?edit=FunctionalTester">?</a>)</strong><dd>implements and runs <a href="FunctionalTests.html">FunctionalTests</a>. Graphs results, makes sure people know when test results decline. (Note: Programmers do their own <a href="UnitTests.html">UnitTests</a>.)
<p><dt><strong>Doomsayer (<a href="http://c2.com/cgi/wiki?TheDoomsayer">TheDoomsayer</a>)</strong><dd>points out when the sky is falling, and when you're in big trouble, guys.
<p><dt><strong>Manager (XpManager<a href="http://c2.com/cgi/wiki?edit=XpManager">?</a>)</strong><dd>schedules meetings (e.g. <a href="http://c2.com/cgi/wiki?IterationPlan">IterationPlan</a>, <a href="http://c2.com/cgi/wiki?CommitmentSchedule">CommitmentSchedule</a>), makes sure the meeting process is followed, records results of meeting for future reporting, passes to Tracker. Possibly responsible to the <a href="http://c2.com/cgi/wiki?GoldOwner">GoldOwner</a>.
<p><dt> <dd>goes to meetings, brings back useful information, pays for pizza, keeps the rain off, fills out personnel actions.
<p><dt> <dd>does not tell people what to do (Customer and <a href="http://c2.com/cgi/wiki?IterationPlan">IterationPlan</a> do that), when to be done (<a href="http://c2.com/cgi/wiki?CommitmentSchedule">CommitmentSchedule</a>), or check to see how they're doing (Tracker).
<p><dt><strong>some roles</strong><dd>can be combined in the same individual. For example, the same person could have the Manager and Tracker role.
<p><dt><strong>some roles</strong><dd>probably should not be combined. Programmer-Tracker, Programmer-Tester, Customer-Programmer, Coach-Tracker are examples. Manager probably shouldn't combine with anything except Tracker. <a href="RonJeffries.html">RonJeffries</a>' opinion is that Coach shouldn't combine with Programmer, but maybe it can be done successfully. He's just not good enough.
<p></DL><hr>
<p>Ron, on the <a href="http://c2.com/cgi/wiki?XpLeiden">XpLeiden</a> project I find myself in the role of both Coach and Tracker. Can you explain why that is a bad idea? Also you say Programmer-Tester probably isn't a good combination. Is that true even if the customer writes the functional tests in a special format he can understand and the programmer only implements the code that parses this format and uses the result to test the program? Thanks! --Martijn.
<p><hr>
I am not Ron, but I will answer anyway. If you want a tracker to get the most honest answers from the individuals point of view. It is best if this task is designated to a non threatening person. The Coach on occasions applies the <a href="http://c2.com/cgi/wiki?RolledUpNewspaper">RolledUpNewspaper</a>. ergo Contradiction.
If I was a traker I would ask open questions, and attempt to encourage any rumblings of danger early. From my perspective the trackers role is to be the eyes that see while the coach role is to be the hands that do things. A winning pair of these would fix any project team I have been on.
<p><hr>
<p>I think that this is a very good list of roles, but in most projects that I've been involved in (extreme or not), there have been two other noticeable "supporting" roles:
<p><strong><em>Anti-Roles:</strong></em>
<p><DL><dt><strong><a href="http://c2.com/cgi/wiki?CowboyCoder">CowboyCoder</a></strong><dd>explanation unnecessary, although comments are welcome. see <a href="http://c2.com/cgi/wiki?XpIsGeniusFriendly">XpIsGeniusFriendly</a>.
<p><dt><strong>StandardsAndMethodologyGuy<a href="http://c2.com/cgi/wiki?edit=StandardsAndMethodologyGuy">?</a></strong><dd>resident of the ivory tower, normally an ex-academic who's never done a day's worth of good, hard coding in his life, but has the power and need to tell you what you're doing wrong, and why XP can't and won't work. Your manager can normally run interference if he's got enough courage. (Don't forget his best friend, the <a href="http://c2.com/cgi/wiki?BuzzwordMasochist">BuzzwordMasochist</a>).
<p><p><dt><strong><a href="http://c2.com/cgi/wiki?GodHead">GodHead</a></strong><dd>wants to be <a href="http://c2.com/cgi/wiki?ChiefArchitect">ChiefArchitect</a> or Manager but isn't. Basically a needy personality. Has to be at the center of everything. Memorizes enough details of the system to leverage himself into every design discussion. Takes on every responsibility in sight. The rest of the team is scared to touch the code or the design without him. Development bottlenecks.
<p></DL>These roles tend to introduce a bit of "noise" into the equation, and have another characteristic - if the project goes badly, it's not their fault, but if it goes well, it's their project;-) - <a href="http://c2.com/cgi/wiki?JosephPelrine">JosephPelrine</a>
<p><em>If these people are on your project, remove them. If you can't, remove yourself or prepare for pain. --<a href="RonJeffries.html">RonJeffries</a></em>
<p><em>Great!! While short, this is probably the best advice I've ever seen. In fact, one of the things I actually </em>liked<em> about <a href="http://c2.com/cgi/wiki?EdwardYourdon">EdwardYourdon</a> <a href="http://c2.com/cgi/wiki?DeathMarch">DeathMarch</a> and </em>'Rise and Resurrection of the American Programmer<em> was his statements along these lines. --<a href="http://c2.com/cgi/wiki?RobertDiFalco">RobertDiFalco</a></em>
<p><hr>
<p>Moved from <a href="http://c2.com/cgi/wiki?ExtremePeople">ExtremePeople</a> as Roles is a better term.
<p><hr>
<p><em>Is the</em>
<strong><em>Tracker</strong></em>
<em>or the</em>
<strong><em>Coach</strong></em>
<em>what others would call a <strong>Technical Lead</strong>?</em>
<p><p>Could be, could not be. On our team, Tracker never writes code and doesn't know how. Coach never takes primary responsibility for implementing anything, instead sits with people and helps them, and monitors the process. Coaching well takes a huge amount of time, as you are learning. I'm not smart enough to combine it with much else. There are quiet times, but not that many. --rj
<p><hr>
<p><em>Is the</em>
<strong><em>Doomsayer</strong></em>
<em>an essential role?</em>
<p>The word has a negative connotation, but it's not listed as an Anti-Role.
Is legitimizing the <em>doomsayer</em> one of the ways that <a href="ExtremeProgramming.html">ExtremeProgramming</a> attempts to make it OK to tell the truth? -- <a href="http://c2.com/cgi/wiki?JoeBowbeer">JoeBowbeer</a>
<p><em>Actually I just listed it as a "humorous" observation that most teams have one. However, expressing fear is, in my opinion, a valid thing to do, and teams suppress that expression at their peril. --<a href="RonJeffries.html">RonJeffries</a></em>
<p><em>Sometimes on a large project I don't mind having a <strong>contrarian</strong> around. Of course, when there are only three of you, it can get a little tedious!! But if she is smart and does it without being negative, it can be uncomfortable but productive. --<a href="http://c2.com/cgi/wiki?RobertDiFalco">RobertDiFalco</a></em>
<p><em>There's being courageous (as per the <a href="ExtremeValues.html">ExtremeValues</a>), and then there's being reckless. If you're not looking ahead for the obstacles in the road, you're going to crash. This is what the <strong>Doomsayer</strong> does, I think. Extending this to Kent's LearningToDrive<a href="http://c2.com/cgi/wiki?edit=LearningToDrive">?</a> story, the <strong>Doomsayer</strong> is the person who looks ahead to the horizon, and notes the oncoming truck in the wrong lane. At least, this is hwow I see it... -- <a href="http://c2.com/cgi/wiki?RobertWatkins">RobertWatkins</a></em>
<p><em>As the tester and doomsayer for our team, I feel these roles can be effectively combined. Doomsaying is ugly but someone has to do it. Actually I feel the tester can add value many ways, measuring quality and value produced by XP. Metrics is not my strong suit but some potential customers need hard data to prove the worth of XP. -- <a href="http://c2.com/cgi/wiki?LisaCrispin">LisaCrispin</a></em>
<p><hr>
<a href="CategoryExtremeProgramming.html">CategoryExtremeProgramming</a><hr><a href="http://c2.com/cgi/wiki?edit=ExtremeRoles">EditText</a> of this page (last edited November 6, 2000)<br><a href="http://c2.com/cgi/wiki?FindPage&value=ExtremeRoles">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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -