读XP系列图书有感(200分)

大家看看这些可不可以说服你的老板
软件开发中的基本的风险问题:
1、进度推迟-交付的时间到了,你却只能通知客户,软件还需要若干个月才能完成
2、项目取消-经过多次延迟以后,项目还没有投入生产就被取消了
3、系统恶化-软件成功地投入使用了,但几年以后,对其进行更改的成本以及缺陷率大量增加,以至于必须更换系统
4、缺陷率-软件投入使用了,但是缺陷率太高,以至于没人可以使用它
5、业务误解-软件投入使用了,但是没有解决原先提出的业务问题
6、业务变更-软件投入使用了,但所设计的软件要求解决的业务问题已经在几个月以前被其他更紧迫的业务问题取代了
7、错误特性多-软件有很多潜在的,非常有趣的特性,所有这些特性使编程变得非常有趣,但是却没有任何的实际价值
8、人员调整-两年以后,这个项目中的所有优秀的程序员开始厌恶并离开了
XP地解决方案:
1、进度延迟-XP要求发行周期较短,最多几个月,因此任何延迟都是可以控制的,XP对于用户所要求的特性进行1~4周的迭代,以获得对进度详细的反馈,XP总是首先完成最重要的特性,而错过该发行周期的特性将是不重要的。
2、项目取消-XP让客户选择具有最大也无意义的最小版本,从而在投入使用前减少发生错误的几率,同时软件的价值也被最大化。
3、系统恶化-XP创建并维护一整套测试程序,每次变化发生以后都要运行或重新运行这些程序,以保证质量基准。XP总是是系统保持最佳状态,不允许继类错误。
4、XP进行测试时,既遵从程序员按逐条功能编写俄式程序的观点,又遵从客户按住个程序特性编写测试程序的观点
5、业务误解-XP要求客户恒为整个团队中的一部分。开发过程中项目的说明书不断得到改进
6、业务变更-XP缩短了版本的周期,因此某个半根的开发过程着变化更少,在一个发行周期内,欢迎客户用新功能取代仍未完成的功能。
7、错误特性多-XP强调只专注于具有最高优先级的任务
8、XP要求程序员承担估算和完成自己工作的责任,并将实际所花费的时间反馈给他们,以改进他们的估算,并尊重他们的估算。谁能够做出和改变估算的规则是清楚地,这样就可能更少的因为要求程序员做明显不可能完成的工作而事情感到沮丧。
XP鼓励团队成员间的相互戒毒,以减少常常由于对工作不满意汉生的孤独感/
 
靠!错字连篇!
 
这么不满意!
呵呵,, 不知道战鹰兄 什么时候自己出书啊 !
 
>>如果客户不能来,我们的技术人员可以去嘛!
这说明你们公司的客户太少,或距离近。
公司的客户一旦遍布全国,而且很多项目同步进行,怎么做?
其实,目前对于软件更改频繁的主要原因有二:
1。是调研不明确。
2。是用户本身对于自己所需要的软件需求不清楚。
这都需要在项目过程中不断地与用户沟通,而且尽量坦诚布公。
另外,单元测试真正做起来,我觉得也很难,很多东西很难自动化测试。
关于这一点,我想了很久,没有实用起来,这里还要请教战鹰,是否可以把
你所做的单元测试讲讲,也让我学习一下,谢谢:)
 
来既是不来,去既是不去,来未必真来,去未必真去,这年头来来去去的也需要那么复杂吗?
pcAnywhere,vnc之类的总听说过吧!电话,传真,互联网大家都会用吧!
按现在写程序多用的是perl,这个东西写单元测试要简单很多!因为pm文件可以直接包含测试代码,
我通常使用debug变量来区别是否是测试状态,debug非零运行测试代码!每次修改完程序运行perl xxx.pm就可以了
 
>>来既是不来,去既是不去,来未必真来,去未必真去,这年头来来去去的也需要那么复杂吗?
>>pcAnywhere,vnc之类的总听说过吧!电话,传真,互联网大家都会用吧!
呵呵,这好像不是xp的精神吧,xp强调就是face to face 的交流,这也是我们公司一直坚持的交流方式(最直接有效的方式);
>>按现在写程序多用的是perl,这个东西写单元测试要简单很多!因为pm文件可以直接包含测试代码,
>>我通常使用debug变量来区别是否是测试状态,debug非零运行测试代码!每次修改完程序运行perl xxx.pm就可以了
也许是我的意思表达得不够清楚,我说的是业务逻辑的测试代码,好像不是很好写。
一般说来,测试代码平均是需测试代码的三倍,而且仅是对于一些简单的逻辑可以施加之。
我感觉比较难做。
欢迎讨论中。。。
 
>>来既是不来,去既是不去,来未必真来,去未必真去,这年头来来去去的也需要那么复杂吗?
>>pcAnywhere,vnc之类的总听说过吧!电话,传真,互联网大家都会用吧!
呵呵,这好像不是xp的精神吧,xp强调就是face to face 的交流,这也是我们公司一直坚持的交流方式(最直接有效的方式);
xp的精神是交流沟通,而非易什么形式交流和沟通。就好比xp与uml的关系一样,通常我们会认为xp
是反对uml的,但实际上xp认为任何一种形式只要能够有利于团队内部以及团队与客户的沟通那么它
就是应该采用的形式,相反则应该废除,那么uml在开发过程中的确对于这些沟通是有好处的,所以
适当的使用uml就是正确的。
其实很多情况下大型的软件公司都会派出他们的工作人员(市场销售)与用户进行接洽,其实只要经过
一定的培训这个人对内充当现场客户,对外充当公司的代表也是很正常的!
通常情况下现场客户的最重要的作用之一是提供业务测试,这个工作现在完全没有必要一定让用户到
场,将测试版本发给用户是完全可行的办法。
>>按现在写程序多用的是perl,这个东西写单元测试要简单很多!因为pm文件可以直接包含测试代码,
>>我通常使用debug变量来区别是否是测试状态,debug非零运行测试代码!每次修改完程序运行perl xxx.pm就可以了
也许是我的意思表达得不够清楚,我说的是业务逻辑的测试代码,好像不是很好写。
一般说来,测试代码平均是需测试代码的三倍,而且仅是对于一些简单的逻辑可以施加之。
我感觉比较难做。
业务测试比较复杂,因为有很多业务的执行结果要分辨对错是比较麻烦的,我们的系统当中就存在这种结果!
因为结果是随机产生的,所以无法通过预先制定的数据进行测试,这种情况下我通常是写一个专用的测试程序
嗬嗬,这个工作量和写程序也差不多了!有的时候感觉讨厌的要死!也曾经偷懒跳过去过,不过等出了问题翻
回来找毛病的时候又不得不搞一个完整的测试出来!
 
有没有电子版的?我想我还是学生!囊中羞涩呀!
 
太理论了,一句话做不到!
 
1。上面大家都说过了,XP对于我们开发人员是好,但跟老板说, 十有八九是当废话, 想我原来
公司的老板,脑里有个公式“劳动时间=效益”, 过年前,大家开发人员都没任务了,每天
在公司呆坐,这个pk老板还硬是要到年29下午才放假
(广州的骏码科技有限公司, 老板是陈战,陈胜)
2。国内的软件业还很不成熟,很多公司的开发模式就像以前工业生产的小作坊,组织很差,一句话
就是管理水平太低, XP中提倡开发有两人组成,一个编写代码,另一个起监督作用,我想这个
国内没几家会让你怎么干
3。XP应该是基于OOP之上的, 但大家有几个是用到比较好水平的OO来开发软件的? 有多少人在
code前是先出类图的? 若连OO都没做好,就先别谈XP了
4。单元测试,哪位比较有体会的说说
btw:在java中, 每个类都可以有个卖弄函数(但程序只能有一个主main函数), 这样就可以
分别调用各个类中的main函数执行测试代码进行单元测试,就不用在这个程序(全部类)中来
测试
 
1,第一个问题是这样的,所以不要跟老板说什么减少工作时间的问题!
2,这个理解是错误的,不存在专职的监督者,结对编程是一个互相帮
助的过程,有点类似师傅带徒弟,而且结对不是静态的,而是动态
的,上午你可能和一个人合作在一些一段程序,下午可能就是和另
外一个人合作写另外一段程序!
3,好像这个没有必然的联系!是否采用OO要看实际情况,连李维都说
现在的纯粹的OO的程序差得要死!
XP对于代码的要求是简单!而不是OO!因为XP认为多数情况下代码重用
是不可能的事情,而且能否重用代码是不可预料的事情,所以没有必要
为了这个浪费时间!同时XP认为在项目进入投产之前是随时可能被取消
掉的,如果那样重用代码就更加的无从谈起,与其考虑那些无法预料的
事情还不如先把手头的工作完成,真的要修改程序的时候与其在原来的
结构上打补丁,不如从头再写一遍!
另外我现在也是老板了,所以不要和我谈减少工作时间的问题![:D]
 
工作中的一切都要体会、再提高。
 
很老的帖子了,顶一下!
另外,说说如何能够说服老板来接受xp!
几乎是老板就抠门,至一点大家不要拍砖,也不要拍老板的砖,你当了老板以后也会这样,而“xp”说:“结对编程,两个人使用一台电脑!”这样,老板可以节省一大笔的电脑采购和升级的费用。同时“xp”还说:“大家在一个开放的办公室里面编程,不要隔断和单独的办公室”这个对于老板来说太重要了,房子很费钱的啊!
有兄弟该说了,这样我们很苦的啊!我说:大家不要心急,你要想有一个好的工作环境就必须要让老板上“XP”的贼船,然后才有其他,这就好比XP认为以最快的速度完成开发任务是最重要的,只有这样以后才有其他。
困顿之际胡说八道zzzzzzzzzzzzzzzzzzzzzzzzzz
 
我谈谈体会,最近公司在搞CMM,
我自己也一直看些软件开发方面的书,包括XP方面。
软件说到底,是通过项目相关人员的心智凝结所成。
人员素质不够,再多的模板,也不会产生价值。
所以任何忽视人的开发过程,或者想把人作为可替换零件的开发过程,
都是必败无疑。由于一个软件项目,需要沟通的是海量信息,这信息
既有已存在的信息,也有大家都未知、需要探求的信息。想把相关信息都记录成
文档,即便不是不可能,也是代价极其高昂而成效又低效的。
XP的理念无疑是相当好的,正如XP书中的自述“来源于几十年的编程实践,
和几百年来的管理经验”。
我现在想在公司CMM的大框架下(其实CMM空得很),填充XP的具体实践方法。
但我觉得成功与否还是要取决与人员素养。
有一些XP实践也有点困难,比如说 自动测试,事实上我也写了份junit使用入门介绍,
http://www.delphibbs.com/keylife/iblog_show.asp?xid=2441
在公司里做了一下介绍。但现在大多数项目都是和数据库有关,这样使用自动测试
难度就高了很多,这点我还没想到好的办法。
我觉得由于中国人一向的灵活作风,在理念上接受XP没什么大问题。
但不知道 “战鹰”有没有具体实践经验可以分享。
 
哦,我也去读读看看。
 
我这怎么没有这种书。
 
这几本book太贵了,我是下载的电子版的再看,不过都是英文的:(
看得慢,还没怎么理解
 
在delphi的项目中,XP的最佳实践哪位能提些建议?
 
XP基本上与开发工具关系不大。delphi项目也可以遵循一般XP原则适用。
 
顶部