📄 areyoudoingxp.html
字号:
<head><title>Are You Doing Xp</title></head><body><h1><img src="logo.gif"> Are You Doing Xp</h1>There is an "us" doing and defining <a href="ExtremeProgramming.html">ExtremeProgramming</a> (<a href="http://c2.com/cgi/wiki?WardCunningham">WardCunningham</a>, <a href="RonJeffries.html">RonJeffries</a>, <a href="http://c2.com/cgi/wiki?MartinFowler">MartinFowler</a>, <a href="KentBeck.html">KentBeck</a>). "We" want to expand the community of Extremists, but we don't want to diffuse the meaning of <a href="ExtremeProgramming.html">ExtremeProgramming</a>. Caught on the horns of this dilemma, we turn to the <a href="ExtremeValues.html">ExtremeValues</a>:
<UL><li> Communication -- We have tried to communicate as much as we can articulate about XP, primarily here on Wiki, but in other forums, public and private
<li> Simplicity -- We want to make the definition of XP as simple as possible, so people can understand where they stand WRT XP
<li> Testing -- We would like to make these tests as concrete and easy to apply as possible
<li> Aggressiveness -- We would like to grow the XP community as fast as possible
<p></UL>Sounds impossible. One of the XP principles is that you want to get as many people making good decisions as possible. Therefore, it's not extreme to create a review board to decide for you if you are extreme. It is extreme to let you decide if your project is extreme. We'll tell you what we think that means. If you decide your project is extreme, you can become part of the community refining the same definitions you just used to decide if you were part of the community. Damned circular, but it's the simplest thing that could possibly work.
<p>Here's a short list of what "we" think makes a project extreme:
<UL><li> Paradigm -- Your project is extreme to the degree you see change as the norm, not the exception, and optimize for change
<li> Values -- Your project is extreme to the degree that you honor the four values- communication, simplicity, testing, and aggressiveness- in your actions
<li> Power sharing -- Your project is extreme to the degree that business makes business decisions and development makes technical decisions
<li> Distributed responsibility and authority -- Your project is extreme to the degree that people get to make the commitments for which they will be held accountable
<li> Optimizing process -- 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, and you consciously enculturate new team members
<p></UL>If your project is extreme, please put it on the list of <a href="ExtremeProgrammingProjects.html">ExtremeProgrammingProjects</a>
<hr>
My own view is that there are some things that
if you aren't doing them, you aren't doing XP. I'm not sure what they are,
but I feel sure they are there. In particular, can anyone do XP without
testing? without refactoring?
<p>Imagine someone who sets out to do the simplest thing that could possibly
work, but doesn't refactor. IMO, he's hosed, end of story. Doing XP? I don't think so.
<p>Imagine someone who refactors without <a href="UnitTests.html">UnitTests</a>. Ditto hosed. Ditto not XP.
<p>Imagine a project with tests, but the techies have a <a href="http://c2.com/cgi/wiki?BuildForTheFuture">BuildForTheFuture</a>
orientation. Quite possibly doomed. Are they doing XP?
<p>I dunno, I'm just an egg, but I think calling the tail a leg doesn't make
it one. -- <a href="RonJeffries.html">RonJeffries</a>
<p><hr>
<p>I consider <a href="http://c2.com/cgi/wiki?NanoIncrements">NanoIncrements</a> near to the core of XP, if not in it. <a href="http://c2.com/cgi/wiki?NanoIncrements">NanoIncrements</a> plan for change, as above, but also imply (what is for some of us) surprising economics - that increments can be so short and still be economically effective.
-- <a href="http://c2.com/cgi/wiki?AlistairCockburn">AlistairCockburn</a>
<p><hr>
I consider distributed and continuous design to be near to the core of XP. It is made possible with objects; is the dual of simplicity; and it motivates the other values of communication and testing. But, then, this is just the side of XP that I find most interesting. (Could it be that we are agreeing?) -- <a href="http://c2.com/cgi/wiki?WardCunningham">WardCunningham</a>
<p><hr>
Ward, I was real glad to see you write the word <strong>design</strong>
above. If <a href="ExtremeProgramming.html">ExtremeProgramming</a> is about Listening, Testing, Coding, and Refactoring then where is the design? Use CRC cards? Fine. But, I remember an article that I read back in the early 90s that has the answer (for me). <a href="TheSourceCodeIsTheDesign.html">TheSourceCodeIsTheDesign</a>. -- <a href="http://c2.com/cgi/wiki?MichaelFeathers">MichaelFeathers</a>
<p><em>There is great truth here. <a href="http://c2.com/cgi/wiki?WardAndKent">WardAndKent</a> teach us to go quickly to code, because there we learn so much more. And they teach us to code with <a href="http://c2.com/cgi/wiki?ExtremeClarity">ExtremeClarity</a>, which makes the design evident within the code. Yes, as discussions in <a href="http://c2.com/cgi/wiki?MethodCommenting">MethodCommenting</a> and elsewhere suggest, there still are things that are harder to see in the code than one would wish. But IMO the bulk of truth lies here: <a href="TheSourceCodeIsTheDesign.html">TheSourceCodeIsTheDesign</a>. --<a href="RonJeffries.html">RonJeffries</a></em>
<hr>
My first thought of Extreme Programming was that the programmer writes programs to write programs. Compiler design doesn't count -- it's not intelligent enough. For example, creating a unique (disposable) programming language to accomplish a particular web project where the project description largely becomes the source code for the of the project -- it's just a matter of interpreting the code...
<hr>
I just want to be really clear that almost all of XP is a surprise to me (Mar, 2000). I've been researching and interviewing since 1991, and I find little in XP that was predictable from what I've seen elsewhere. That includes <a href="PairProgramming.html">PairProgramming</a>, <a href="http://c2.com/cgi/wiki?NanoIncrements">NanoIncrements</a>, TestFirstDevelopment<a href="http://c2.com/cgi/wiki?edit=TestFirstDevelopment">?</a>, AutomatedRegressionUnitTests<a href="http://c2.com/cgi/wiki?edit=AutomatedRegressionUnitTests">?</a>, ContinuousRefactoring<a href="http://c2.com/cgi/wiki?edit=ContinuousRefactoring">?</a>, <a href="http://c2.com/cgi/wiki?CollectiveOwnership">CollectiveOwnership</a>, NoWrittenDocumentation<a href="http://c2.com/cgi/wiki?edit=NoWrittenDocumentation">?</a>, and DTSTTWPW. That's a lot of things to be non-obvious. (Ward's Distributed And Continuous Design up above is just as unpredicted for me as anything else about XP.) So congratulations for inventing and documenting it. --<a href="http://c2.com/cgi/wiki?AlistairCockburn">AlistairCockburn</a>
<hr>
Just a note that the Testing value has been replaced by Feedback.
I don't currently have the courage to change it above. -- David Levine<hr><a href="http://c2.com/cgi/wiki?edit=AreYouDoingXp">EditText</a> of this page (last edited July 6, 2000)<br><a href="http://c2.com/cgi/wiki?FindPage&value=AreYouDoingXp">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 + -