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

📄 extremeprogrammingchallenge.html

📁 极限编程 Extream Programing
💻 HTML
字号:
<head><title>Extreme Programming Challenge</title></head><body><h1><img src="logo.gif"> Extreme Programming Challenge</h1>Let's take this thing called <a href="ExtremeProgramming.html">ExtremeProgramming</a> and play with it... push its limits.  Here are several scenarios that take XP out of its element.  How would we do XP in each of these circumstances?
<p><UL><li> <a href="http://c2.com/cgi/wiki?ExtremeProgrammingChallengeOne">ExtremeProgrammingChallengeOne</a> - the compiler
<li> <a href="http://c2.com/cgi/wiki?ExtremeProgrammingChallengeTwo">ExtremeProgrammingChallengeTwo</a> - the graphics package
<li> <a href="http://c2.com/cgi/wiki?ExtremeProgrammingChallengeThree">ExtremeProgrammingChallengeThree</a> - the pacemaker
<li> <a href="http://c2.com/cgi/wiki?ExtremeProgrammingChallengeFour">ExtremeProgrammingChallengeFour</a> - legacies
<li> <a href="http://c2.com/cgi/wiki?ExtremeProgrammingChallengeFive">ExtremeProgrammingChallengeFive</a> - carte blanche
<li> <a href="http://c2.com/cgi/wiki?ExtremeProgrammingChallengeSix">ExtremeProgrammingChallengeSix</a> - telecommuting
<li> <a href="http://c2.com/cgi/wiki?ExtremeProgrammingChallengeSeven">ExtremeProgrammingChallengeSeven</a> - C++
<li> <a href="http://c2.com/cgi/wiki?ExtremeProgrammingChallengeEight">ExtremeProgrammingChallengeEight</a> - Y2K
<li> <a href="http://c2.com/cgi/wiki?ExtremeProgrammingChallengeNine">ExtremeProgrammingChallengeNine</a> - tracking requirements changes
<li> <a href="http://c2.com/cgi/wiki?ExtremeProgrammingChallengeTen">ExtremeProgrammingChallengeTen</a> - the next ten years
<li> <a href="http://c2.com/cgi/wiki?ExtremeProgrammingChallengeEleven">ExtremeProgrammingChallengeEleven</a> - a system in a state of little change
<li> <a href="http://c2.com/cgi/wiki?ExtremeProgrammingChallengeTwelve">ExtremeProgrammingChallengeTwelve</a> - micro - &quot;build versus buy&quot;
<li> <a href="http://c2.com/cgi/wiki?ExtremeProgrammingChallengeThirteen">ExtremeProgrammingChallengeThirteen</a> - RDBs (a.k.a. RDBMS)
<li> <a href="http://c2.com/cgi/wiki?ExtremeProgrammingChallengeThirteenPointFive">ExtremeProgrammingChallengeThirteenPointFive</a> - Testing RDBs
<li> <a href="http://c2.com/cgi/wiki?ExtremeProgrammingChallengeFourteen">ExtremeProgrammingChallengeFourteen</a> - Concurrency
<li> <a href="http://c2.com/cgi/wiki?ExtremeProgrammingChallengeFifteen">ExtremeProgrammingChallengeFifteen</a> - the impossible dream
<li> <a href="http://c2.com/cgi/wiki?ExtremeProgrammingChallengeSixteen">ExtremeProgrammingChallengeSixteen</a> - the <a href="FourVariables.html">FourVariables</a> constrained
<li> <a href="http://c2.com/cgi/wiki?ExtremeProgrammingChallengeSeventeen">ExtremeProgrammingChallengeSeventeen</a> - refactoring Hell
<li> <a href="http://c2.com/cgi/wiki?ExtremeProgrammingChallengeEighteen">ExtremeProgrammingChallengeEighteen</a> - doesn't seem to really be an XP challenge?
<li> <a href="http://c2.com/cgi/wiki?ExtremeProgrammingChallengeNineteen">ExtremeProgrammingChallengeNineteen</a> - external devices
<li> <a href="http://c2.com/cgi/wiki?ExtremeProgrammingChallengeTwenty">ExtremeProgrammingChallengeTwenty</a> - one meeellion bugfixes
<li> <a href="http://c2.com/cgi/wiki?ExtremeProgrammingChallengeTwentyOne">ExtremeProgrammingChallengeTwentyOne</a> - end user documentation
<li> <a href="http://c2.com/cgi/wiki?ExtremeProgrammingChallengeTwentyTwo">ExtremeProgrammingChallengeTwentyTwo</a> - functional who?
<li> <a href="http://c2.com/cgi/wiki?ExtremeProgrammingChallengeTwentyThree">ExtremeProgrammingChallengeTwentyThree</a> - does it matter who writes functional tests?
<li> <a href="ExtremeProgrammingForOne.html">ExtremeProgrammingForOne</a> - since you can't pair with yourself...
<li> <a href="http://c2.com/cgi/wiki?ExtremeProgrammingForProducts">ExtremeProgrammingForProducts</a> - many sources of stories
<li> <a href="http://c2.com/cgi/wiki?ExtremeProgrammingBareMachine">ExtremeProgrammingBareMachine</a> - working from the ground up
<p></UL><hr>
I've learned a lot from these so far.  My first motivation in presenting them was to vary things along different axes to figure out what the core of XP is.  Secondarily, I was eager to see response to mythical situations that each have a grain of reality in experiences I've had and continue to have.
<p>As an outsider, it appears to me that XP is the <a href="ExtremeValues.html">ExtremeValues</a> with a set of practices that can be added, removed, or modified as needed.  For instance, if you have only one person, you can not do <a href="PairProgramming.html">PairProgramming</a>, but you can still conform to <a href="ExtremeValues.html">ExtremeValues</a>.  This seems to tie in to the statement in <a href="AreYouDoingXp.html">AreYouDoingXp</a>: 
<p><em>&quot;Your project is extreme to the degree that you are aware of your software development process, you are aware of when it is working and when it isn't, you are experimenting to fix the parts that aren't working, ...&quot;</em>
<p>The <a href="ExtremeValues.html">ExtremeValues</a> seem invariant, and among them there is a value (testing)  which is also an activity, and it seems to be the one activity that does not seem discardable under any circumstances.  One might think that this is very curious, but upon reflection it does not seem so to me.  We test our software to verify it.  I would suppose that we would test our practices under new situations to verify them.  Testing seems to be the core value.  Why <a href="SpikeSolution.html">SpikeSolution</a>, <a href="YouArentGonnaNeedIt.html">YouArentGonnaNeedIt</a>, etc.?  Perhaps because they are tested?  Because they embody the ethic of verification.  Knowing what you know.  Why Refactoring?  Because you are always learning.  Doing what it takes to learn what is working each step of the way.  -- <a href="http://c2.com/cgi/wiki?MichaelFeathers">MichaelFeathers</a>
<hr>
I offer that &quot;rapid feedback from running code&quot; is also core.  I was told that refactoring is a non-removable practice in XP.  The practices you mentioned that are not testing are all connected to rapid feedback from running code.  What I find extreme and interesting in XP is the shortness of their cycle - hours to a day.  
<p>In fact, I am willing by now to push hard on it: I suggest that testing is so core to the XP system because it permits the other practices... no testing, and refactoring fails, no refactoring and Do The Simplest Thing fails, no Simplest thing, and daily feedback fails.  No daily feedback and you are out of XP.  --<a href="http://c2.com/cgi/wiki?AlistairCockburn">AlistairCockburn</a>
<p><hr>
The above challenges appear technical, what about a set of challenges that are more ... human (can't think of a better word - its late). For example, my brother (<a href="http://c2.com/cgi/wiki?LanceWalton">LanceWalton</a>) and I are introducing XP into the company we are currently working at. If we mentioned any methodology that had the word 'Extreme' in it the management would run a mile. Consquently we are introducing the concepts one by one (unit testing and refactoring being the main two to start with I feel.) Lance is working on one part of the application with end users and has managed to break away from the usual <a href="BigDesignUpFront.html">BigDesignUpFront</a>/NoCodeUntilTheRequirementsAreSignedOff<a href="http://c2.com/cgi/wiki?edit=NoCodeUntilTheRequirementsAreSignedOff">?</a> approach, to an iterative, short cycle involving the end user.
<p>Perhaps...
<p><UL><li> ExtremeProgrammingIntroductions<a href="http://c2.com/cgi/wiki?edit=ExtremeProgrammingIntroductions">?</a> - introducing XP to a team
<p></UL>This is probably covered elsewhere in which case I suggest a <a href="http://c2.com/cgi/wiki?WikiMaster">WikiMaster</a> erase the above :-)
<p><a href="http://c2.com/cgi/wiki?ChanningWalton">ChanningWalton</a>
<p><hr>
<p>The way these pages are named (e.g. &quot;<a href="http://c2.com/cgi/wiki?ExtremeProgrammingChallengeThirteen">ExtremeProgrammingChallengeThirteen</a>&quot;) makes them hard to find.  Someone asked about refactoring with relational databases, I looked around Wiki for something on it, and completely missed the above article: the title gives almost no information, and I searched the body for &quot;RDBMS&quot;, not the &quot;RDBs&quot; mentioned above.
<p>So I duplicated some effort by adding <a href="http://c2.com/cgi/wiki?RefactoringWithRelationalDatabases">RefactoringWithRelationalDatabases</a>.  It would have been nice if the challenge had been named something findable like &quot;XPChallengeRdbms&quot;.  Is it too late to reform now?  --<a href="http://c2.com/cgi/wiki?GeorgePaci">GeorgePaci</a>
<p><em>Hmmm... I guess these pages don't really have <a href="http://c2.com/cgi/wiki?MeaningfulNames">MeaningfulNames</a> and hence the side comments are required and are still insufficient.  It's never too late to refactor... I'd suggest renaming this page ExtremeProgrammingChallenges<a href="http://c2.com/cgi/wiki?edit=ExtremeProgrammingChallenges">?</a> and renaming each challenge to something more descriptive. XPChallenge[topic] seems like a good standard to follow. -- <a href="http://c2.com/cgi/wiki?JasonYip">JasonYip</a></em><hr><a href="http://c2.com/cgi/wiki?edit=ExtremeProgrammingChallenge">EditText</a> of this page (last edited December 17, 2000)<br><a href="http://c2.com/cgi/wiki?FindPage&value=ExtremeProgrammingChallenge">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 + -