Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Design Pattern & UML  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 Extreme Programming Is Evil ?
sothis



CJSDN高级会员


发贴: 168
积分: 60
于 2003-03-20 17:29 user profilesend a private message to usersend email to sothissearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
这本来是TheServerSide上面的一个讨论,看得有点意思,就引过来了
http://www.theserverside.com/home/thread.jsp?thread_id=17635

可能XP的Pair Programming确实是有些问题的,估计程序员一般都很难接受.不知道大家的感觉.

附部分原文
Talk of Extreme Programming is getting more and more common. Management is learning about it, and it is being used on many projects. Is it the best way to do software development? Is it right for all projects? A couple of developers are speaking out.

Chiara started with a fit stating "I have only two words for pair programming though. Extreme hatred!".

Cedric agreed with:

Once again, I find myself in brutal agreement with her. I have been observing XP as a curious beast since pretty much its inception and I have always been uncomfortable with most of the concepts this methodology preaches. In short, it is just at complete odds with reality. Let's take pair programming, for example.

1) Financially.

You cannot convince anyone in the manager and above layer that it's worth spending the salaries of two programmers to achieve the job of one. In their eyes, quantity matters more than quality, and while I used to recoil in horror at this idea, I am now slowly beginning to realize that they are right. Except that quantity and quality are not necessarily at odds if you have a good QA department. This should certainly not be a license for developers to spurn code like mad without paying attention to quality and trying to write tests before implementing, but overall, the combination of developers + QA engineers can work wonder, and you will get twice as much done than XP will ever allow.

2) Socially.

Have you ever tried to sit near a fellow developer and work with her on a problem? If you haven't give it a try and come back when you are done. My experience is that it is one of the most frustrating endeavors a software developer can ever be submitted to. There is so much dissonance in this exercise that the mind reels.

Mental dissonance, first. Even if both developers have similar backgrounds and a similar amount of knowledge (already an impossibility in my opinion), there is still the problem that both of you will have different ways of solving the problem. Granted, you might eventually agree on a common solution if both are open-minded (another requirement) but it's going to take a lot of discussing before reaching that point.

Then, practical dissonance. Most likely, you are not working at the same pace as your XP partner. You are either slower or faster. If you are slower, the growing unrest and impatience of your partner will eventually get to you. If you are faster, you will be squirming on your seat and wishing you could take the keyboard away from the slowpoke so you can get things done, at last. What if you are using an IDE and the unfortunate soul is using a text editor? You are going to cringe, trust me ("where is that source file again? Ah yes, src/com/foo/... er... what was it again?") If you are using a text editor and your partner is using an IDE... well, you will want to punch her nose after ten minutes of work to put an end to her constant reminder on how you would work faster with an IDE.

I could go on and on and dissect Kent's book chapter by chapter. Note that I still recommend you read that book, because you will most likely learn things about yourself and software engineering in general, but I can't really see how XP programming will ever leave the realm of academia.

And I would be extremely wary of working for a company that has made it its True and Only methodology.



作者 Re:Extreme Programming Is Evil ? [Re:sothis]
floater

Java Jedi

总版主


发贴: 3233
积分: 421
于 2003-04-01 05:16 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
Hehe, I would say this kind of thinking is at least 10 years old. Ironically, the concerns are all true, and they are particularly true in academy, where you can't copy others' homework, Big Smile.

I've been pair programming for many years, and I really enjoy it. Of course, the first condition is you have to have the right partner.
1.
You cannot convince anyone in the manager and above layer that it's worth spending the salaries of two programmers to achieve the job of one.
This is not true, the case is two do >2 jobs with better quality. If you have one job, why bothers to put 2 folks there. Pair programming doesn't mean you always put two feet in one shoe! Plain silly idea, is it?

2. Mental dissonance: Just because of different background and knowledge, two could have a better solution to the problems than one does. Of course, they have to be somewhat close in some way and can learn from each other, and that's the sense, not background and knowledge. I agree that some folks are incapable of working with others, I've seen them, I am working with some of them. But it doesn't matter since there are capable fellows, and in my opinion, only those folks keep the ball rolling!(I just had a case today). This is true everywhere in life, get it over and move on. Open minded is not only a requirement in programming, it's required everywhere else. Otherwise, a stubborn, narrow minded is a duck(imaginarily, Big Smile).

3. practical dissonance: Well, if you have to wait, then wait. Everyone has its day. Today you may be a lucky dog(slang, not bad sense), tomorrow you may run into a tree, who knows. Just give them some time if you think they are good, otherwise don't do this.

4.
I could go on and on and dissect Kent's book chapter by chapter. Note that I still recommend you read that book, because you will most likely learn things about yourself and software engineering in general, but I can't really see how XP programming will ever leave the realm of academia.
Once you've been there, done that, you know it's great. It might not work for everyone(definitely not in my view, but I am open minded, ;D), it might not the *only* way, but it sure is one of most productive and enjoyable way to programming. And the friendship is a common bond, an honor.

This idea is pretty much like students studying together. I remembered I had a lot of friends studying together when I went graduate school. We didn't compete against each other, instead we studied together, in algebra, analysis, computations, computers. We all got A's in the finals, had a very solid foundation in the coming years, a lot of our homeworks serve as answers for others. Without doing this in this way, I can't imagine we could get anywhere close to that.

The same idea runs in this bbs. Why in the world do we have bbs, like this one? Because we can exchange ideas, thoughts. Nobody knows everything(unless he wants to kid himself), and we are different in various aspects, but work together, we get better in educating ourselves.

So personally, I think this idea is just an old idea with a new name, it's working all the way up to now and it will thrive more in programming and elsewhere.


floater edited on 2003-04-01 05:19

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
- Martin Fowler, Refactoring - Improving the Design of Existing Code
作者 Re:Extreme Programming Is Evil ? [Re:sothis]
sothis



CJSDN高级会员


发贴: 168
积分: 60
于 2003-04-02 09:51 user profilesend a private message to usersend email to sothissearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
畅快啊畅快
放了这么长时间,终于有高手过来给大家解惑了

软件开发是一项技术,更是一门艺术
技术有对错,艺术就看感觉了



作者 Re:Extreme Programming Is Evil ? [Re:sothis]
floater

Java Jedi

总版主


发贴: 3233
积分: 421
于 2003-04-02 10:29 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
hehe, I was busy on family matters, now trying to catch up a little.

I am interested in this article because I had the same feeling on some of the thoughts before and somehow later on overrun them. I wish I had someone to chat with me about these before, so I hope it helps(Of course, all errors are yours, no, no, mine, definitely, Big Smile).



"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
- Martin Fowler, Refactoring - Improving the Design of Existing Code

flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923