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

📄 toayoungextremist.html

📁 极限编程 Extream Programing
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<head><title>To Ayoung Extremist</title></head><body><h1><img src="logo.gif"> To Ayoung Extremist</h1><a href="KentBeck.html">KentBeck</a> sent this note to a young extremist.  She asked about the coding and partnering experience and how to communicate to her partner what she foresaw:
<p><em>I have this vision of how I want the objects to be and what they need to do - and I don't seem to be communicating it very well.</em>
<p>Here's Kent's reply:
<hr>
Perhaps the vision is the problem, not the communication. I will explain
by analogy.
<p>When you sit zazen (the Zen mediation technique (I don't know how much
you know about stuff like this, so I'll make little explanatory notes
until you tell me to stop)), I am told that bizarre things can happen to
you. You can get sudden bursts of psychic powers- precognition,
far-seeing, telepathy, etc. Lots of people would think that was cool.
They would hold onto these powers (if they could).
<p>Zen teaches exactly the opposite. While it is true that the mind is
capable of many things that we don't understand, it is far more
important to get behind all of these experiences to the true ground of
existence than to play with a few more mind toys. If you focus on the
visions, you will lose track of the search for the essence.
<p>By analogy, we are embarked on a quest to find the simplicity and
commonality of experience. Because we want to get paid, we generally
restrict ourselves to finding the simplicity and commonality of
commerce. Fortunately, commerce is a close enough reflection of humanity
that it is still a fertile and challenging field.
<p>When we program, we are always engaged in a struggle to truly see. If we
see clearly- what the users want, need, and fear; what our co-workers
want, need, and fear; what we ourselves want, need, and fear; and
finally what the system wants and needs (damn good thing computers can't
fear!)- we work well and truly. Our systems are simple. Our thoughts are
simple. We work without stress, without fear, with joy and love for our
task and ourselves.
<p>Visions of objects screw this entire process into the ground. When you
already see the illusion of objects, you stop seeing everything that
could tell you that you were wrong. The cases where our visions came true only
exacerbate the problem, as we make the vision the goal, not the system.
<p>Because envisioning feels good. It brings many of the good feelings that
really programming brings, but it can't crash. So people pursue visions
instead of code (lots of design before you code), and visions of visions instead
of code (lots of object oriented analysis), and the worst of all are those who
pursue visions of visions of visions instead of code (the
methodologists).
<p>So - congratulations on having gained the ability to envision objects
before you program. Take a moment to enjoy the feeling when it comes.
Then knock it the hell off. Find the one piece of the vision that seems
most compelling and do the least possible amount of that. Then bless and
release the vision and get back to listening- to your code, your user,
your partner, and yourself.
<p><hr>
<p>Even half-baked ideas seem whole when they first come to you. It's hard not to be proud of them. But resist your impulse to show them off too quickly. Recall instead what led you to the idea and share that with your partner. Listen to what comes back. If you are lucky, the response will support or complete your idea. It could also eclipse your idea, leaving your partner with the impression that it was his own. Learn to accept this as it makes very effective communication. -- <a href="http://c2.com/cgi/wiki?WardCunningham">WardCunningham</a>
<p><hr>
<p>Couple of comments.  This is all about accurate perception.  <a href="http://c2.com/cgi/wiki?TomDeMarco">TomDeMarco</a> in TheDeadLine<a href="http://c2.com/cgi/wiki?edit=TheDeadLine">?</a> said <em>&quot;It's not what you don't know that kills you,... it's what you know that isn't so.&quot;</em>
He was talking about project management, but it is true in all of life.  It is very easy to forget to look, or to look once and never look again.  Worse still, to be lulled into never considering changing something when it is best that it is changed.  One's notion of the world gets in the way of the world.
<p>I am concerned that Kent's note throws away design.  I agree with the note, but I think that it will cause a perception problem.  While it will be possible to get programmers to drop the notion of design and deal with the code in a very interactive flow, I am certain that it will be increasingly difficult to sell such an idea to managers and worse still people who acredit software engineering programs as states appear ready to make software development a part of engineering.. licensing as PEs everyone who sells software or consults.. making them legally accountable for what?  Their designs or their code?
<p>It is extreme to say that you do not design, but I also believe that it is inaccurate.  <a href="TheSourceCodeIsTheDesign.html">TheSourceCodeIsTheDesign</a>.  Sell that idea and you are covered.  It crystalizes so much.  I can't say that I feel more strongly about anything in software recently, except perhaps that the standardization of software engineering practice is still a bit premature.  -- <a href="http://c2.com/cgi/wiki?MichaelFeathers">MichaelFeathers</a>
<p>Thanks! This is good advice.  I'll have to look to see where we've said we don't design and see how to modify what is put there.  (In my copious free time.)  <strong>I couldn't find much where we come out against design ... modified Kent's words above, since I happen to know he won't kill me.  If folks can identify places where we seem anti-design, please point them out.  Put 'em on my name page or something.  Thanks!</strong>
<p>The note itself is to a young <a href="http://c2.com/cgi/wiki?ExtremeProgrammer">ExtremeProgrammer</a>, so I'm not worried about the perception issue there, nor about any negative impact on WikiDenizens<a href="http://c2.com/cgi/wiki?edit=WikiDenizens">?</a>, who are already either infected or inoculated on the XP stuff.  
<p>Thanks again. --<a href="RonJeffries.html">RonJeffries</a>
<p>Oh, way to go, Ron. If you're gonna get all polite and everything then that means it's mine turn to be the prickly curmudgeon...
<p>I reacted strongly both to Ron posting this, although I suggested some time ago he find a forum for it, and to Michael's comments. The above comes very close to the heart of what I think, which makes it dangerous. If you don't like <a href="http://c2.com/cgi/wiki?CommitmentSchedule">CommitmentSchedule</a>, well, okay, but if you think listening for the universe's simplicity is a stupid idea, that would be harder for me to take. Be brave, little Piglet...
<p>Re: design. Software design to me is the process and effect of decisions with a certain scale of effect (typically between objects) and a certain set of concerns (typically having to do with communicating intent, reducing duplication, and technical elegance).
<p>

⌨️ 快捷键说明

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