⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 extremeprogrammingforone.html

📁 极限编程 Extream Programing
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<p>I've only done solo XP where I was Business and Development. In the challenge above, Business is somebody else. In this case, you certainly have to make the <a href="http://c2.com/cgi/wiki?UserStory">UserStory</a>'s explicit, add the estimates, and get Business to give you priorities. The lack of contact with real users bothers me. Take one to lunch. Sneak out and watch one. Info straight from the source is vastly superior.
<p>Re: releasable system. You don't need <a href="ContinuousIntegration.html">ContinuousIntegration</a>, or rather you get it for free. The test cases have to run all the time, of course. --kb
<p>I'd want ENVY if I could afford it, and would use it with versioning/release.  That way I could change a bunch of classes, decide I was loony, back it all out with impunity.  Agree I don't need <a href="ContinuousIntegration.html">ContinuousIntegration</a>, but I would retain the distinction between code in process and code released.  --rj
<p><hr>
<p>Ok, I'm beginning to get this. I can see how XP can be used for integrating
new functionality into an existing framework, but how does an extreme
programmer write a framework from the ground up? I can see how to get
requirements down as user stories, but won't the first user story require
a huge number of engineering tasks in order to construct the framework?
<p>I'm sure I'm missing something here (possibly a decade of programming
experience..) --<a href="http://c2.com/cgi/wiki?DavidMcNicol">DavidMcNicol</a>
<p><hr>
<p>There seem to be several things going on here, all grouped together as <em><a href="ExtremeProgramming.html">ExtremeProgramming</a></em>, and bandied about as one thing. Please correct me if I'm wrong, but I'd like to take a shot at this, because I think it might make XP easier for newbies to understand.
<p>There seem to be (at least) two axes of information in discussion about XP, one of which became clear(er) to me while reading this page, which is why I'm posting my comment here. The axes I see  are Coding vs. Process and Practices vs. Aphorisms.  Granted, there is some overlap and considerable grey area between these, but I think that grouping them all together does a disservice, at least to newcomers, because it makes XP look more complicated than it is (or than it seems to me).
<p>Here is my first take on dividing XP into manageable categories:
<p><UL><li> ExtremeCodingPractices<a href="http://c2.com/cgi/wiki?edit=ExtremeCodingPractices">?</a>
<UL><li> <a href="RefactorMercilessly.html">RefactorMercilessly</a>
<li> <a href="http://c2.com/cgi/wiki?CrcCards">CrcCards</a>
<li> <a href="DoTheSimplestThingThatCouldPossiblyWork.html">DoTheSimplestThingThatCouldPossiblyWork</a>
<li> UnitTestsFirst<a href="http://c2.com/cgi/wiki?edit=UnitTestsFirst">?</a>
<li> <a href="PlanningGame.html">PlanningGame</a>
<li> <a href="FunctionalTests.html">FunctionalTests</a>
</UL><li> ExtremeCodingAphorisms<a href="http://c2.com/cgi/wiki?edit=ExtremeCodingAphorisms">?</a>
<UL><li> <a href="http://c2.com/cgi/wiki?EmbraceChange">EmbraceChange</a>
<li> <a href="http://c2.com/cgi/wiki?OnlySayThingsThatCanBeHeard">OnlySayThingsThatCanBeHeard</a>
<li> DevelopersMakeDeveloperDecisions<a href="http://c2.com/cgi/wiki?edit=DevelopersMakeDeveloperDecisions">?</a>
</UL><li> ExtremeProcessPractices<a href="http://c2.com/cgi/wiki?edit=ExtremeProcessPractices">?</a>
<UL><li> <a href="PairProgramming.html">PairProgramming</a>
<li> <a href="ContinuousIntegration.html">ContinuousIntegration</a>
<li> <a href="http://c2.com/cgi/wiki?CollectiveCodeOwnership">CollectiveCodeOwnership</a>
<li> <a href="http://c2.com/cgi/wiki?SingleReleasePoint">SingleReleasePoint</a>
<li> StandupMeetings<a href="http://c2.com/cgi/wiki?edit=StandupMeetings">?</a>
<li> <a href="http://c2.com/cgi/wiki?ExtremeScheduleNegotiation">ExtremeScheduleNegotiation</a>
<li> <a href="http://c2.com/cgi/wiki?MovingPeopleAround">MovingPeopleAround</a>
<li> <a href="http://c2.com/cgi/wiki?CustomerShadowing">CustomerShadowing</a>
</UL><li> ExtremeProcessAphorisms<a href="http://c2.com/cgi/wiki?edit=ExtremeProcessAphorisms">?</a>
<UL><li> <a href="http://c2.com/cgi/wiki?OnlyWearOneOfFourHats">OnlyWearOneOfFourHats</a>
<li> BusinessMakesBusinessDecisions<a href="http://c2.com/cgi/wiki?edit=BusinessMakesBusinessDecisions">?</a>
<p></UL></UL>Note that this division is dependent on context. Outside of the <a href="ExtremeProgrammingForOne.html">ExtremeProgrammingForOne</a> context I would put <a href="PairProgramming.html">PairProgramming</a> and <a href="ContinuousIntegration.html">ContinuousIntegration</a> under coding practices rather than process practices. Maybe what I'm calling process here is just what is difficult or redundant when doing XP for one?
<p>The point I'm trying to make is that the aphorisms are nice things to keep in mind, tack up on the wall, etc., but the practices seem to be core things you <strong>do</strong> when you do XP. Conversely, the coding part of XP seems to be accessible to anyone, alone or in a team, with or without management support, while the process part seems to require more cooperation from the business/team.
<p>Thoughts, criticism?
<p>--<a href="http://c2.com/cgi/wiki?DetheElza">DetheElza</a>
<p><hr>
<p>See <a href="SpikeSolution.html">SpikeSolution</a>.  On C3, we had enough user stories to know what payroll was, and we had defined our &quot;metaphor&quot;, which others might call architecture.  It's an analogue to an assembly line: hours and money are Parts, kept in Bins, processed at Stations.  
<p>We built a payroll system in one week.  It didn't do much: just paid one guy his base pay (entitlement), took 27% federal income tax (deduction).  But it had a Person, with a Profile, Parts in Bins, processed by Stations.  Even printed a check as I recall.
<p>There probably isn't a line of that code left in the system, but we just evolved it from that Spike to over 2,000 classes.  Our fingers never left our hands!  --<a href="RonJeffries.html">RonJeffries</a> 
<p><hr>
<p>I've tried working alone several times, and I usually found that my natural practices square pretty much with the XP practices.  But not being able to pair is a really serious drawback.  It affects the quality of my work, because it removes the 'continuous review' aspect of XP.  And without a sounding-board I work veeerrryyyy sloooooowlyyyy - because I get no feedback on which of my ideas are good or bad.  Cutting tasks into tiny pieces helps; so does not thinking ahead (I often get into abstract loops, or caught on the horns of a dilemma).
<p>Can anyone suggest other/new practices for <a href="ExtremeProgrammingForOne.html">ExtremeProgrammingForOne</a> that might reinstate the quality and speed benefits of pairing?  -- <a href="http://c2.com/cgi/wiki?KevinRutherford">KevinRutherford</a>
<p>This is something I'm trying to get a handle on for <a href="http://c2.com/cgi/wiki?JeraWorks">JeraWorks</a>.  Some thing I've thought of thus far:
<UL><li> Making a conscious effort to remind myself of XP principles and practices on a daily basis.  One important aspect of <a href="PairProgramming.html">PairProgramming</a> is to provide positive peer pressure and make XP practices normative.  As a solo programmer, you aren't getting that feedback from your social setting, so you need to figure out a way to internalize it.  I've gone as far as thinking of some sort of XpPledgeOfAllegiance<a href="http://c2.com/cgi/wiki?edit=XpPledgeOfAllegiance">?</a> to say at the beginning of the day, just to remind myself of what to do and why.
<li> I'm trying to figure out a way to at least do source code reviews.  Either reviewing my own code after a cooling off period, or having a &quot;buddy system&quot; with someone else doing <a href="ExtremeProgrammingForOne.html">ExtremeProgrammingForOne</a>.
<li> Creating lots of <a href="UnitTests.html">UnitTests</a> wouldn't hurt.
<p></UL>--<a href="http://c2.com/cgi/wiki?JohnBrewer">JohnBrewer</a>
<p><hr>
As strange as it may sound, I have found that frequent interruptions help achieve some of the benefits of pairing (which is what happens when you program at home with two little boys running around). Specifically, they prevent me from wasting too much time on a single task (instead of trying other approaches once the first approach turns out not to be that simple), they allow me to &quot;lean backwards&quot; and see the bigger picture (especially the holes in it that I forgot to fill), and they provide an opportunity to think without being bothered with the mechanics of keyboard and mouse - my best ideas come during interruptions.
<p>--<a href="http://c2.com/cgi/wiki?YonatSharon">YonatSharon</a>
<p><hr>
If kids will work as a programming partner, how about that silly paperclip?
Give it something useful to do beyond consuming spare cpu cycles... that
might actually make me wish Linux had a paperclip! I'm in the same boat
with regard to not having a pair.  The fellow that introduced me to XP is assigned to customer support and not available for pair programming on my current project.  -- <a href="http://c2.com/cgi/wiki?JoiEllis">JoiEllis</a>
<p><hr>
It's already been done, though not particularly usefully.  Look at <strong>Vigor</strong>,
based on <em>nvi</em>, and written by Joel Holveck.  It's based on the <a href="http://c2.com/cgi/wiki?UserFriendly">UserFriendly</a> cartoons from 4 January 2000 to 14 January 2000, and uses Tcl/Tk to provide a snide paperclip companion. It's available at 
<a href="http://www.red-bean.com/~joelh/vigor/">http://www.red-bean.com/~joelh/vigor/</a>.  Here's the screenshot page:
<a href="http://www.red-bean.com/~joelh/vigor/screenshots/">http://www.red-bean.com/~joelh/vigor/screenshots/</a>. --<a href="http://c2.com/cgi/wiki?EricJablow">EricJablow</a>
<p>See also <a href="http://c2.com/cgi/wiki?ExtremeHacking">ExtremeHacking</a>
<hr><a href="http://c2.com/cgi/wiki?edit=ExtremeProgrammingForOne">EditText</a> of this page (last edited November 4, 2000)<br><a href="http://c2.com/cgi/wiki?FindPage&value=ExtremeProgrammingForOne">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 + -