对极限编程四个核心的理解(二)

三、 反馈

1)        客户对软件的反馈

在极限编程中一个很重要的实践是有现场客户,从此也可以看出来对客户反馈的重视。有了现场客户,就能够随时对软件做出反馈,能够保证在“瞄准”的过程中不断调整,保证软件前进的方向。而且,现场客户还可以对开发人员在开发过程中遇到的问题随时做出反馈,那样开发人员就可以避免由于自己的主观猜测而出现的错误了。而这正是在传统的软件工程的编码阶段程序员最容易犯的错误,因为在那个阶段,已经没有客户的参与了,编码人员只是根据详细设计来编写代码,对业务的不了解往往会造成编码和单体测试都非常困难,甚至于出现严重的错误,一直到最后验收测试的时候才能够被发现,而此时修改的代价是非常大的。由此我们可以看到由于现场客户的存在,把这些可能出现的错误消灭在了萌芽状态,很多时间、精力以及资金都节省下来了。

但是并非说我们可以从客户的公司中随便找一个人来做现场客户就可以了,现场客户的选择也应该是一个可以直接影响到项目的成败的因素。一个好的现场客户不仅可以准确的把握软件的方向,回答业务问题,而且可以编写验收测试,保证软件中的业务数据没有错误。这样就要求他不仅是一个管理人员,而且计算机的水平也要有一定的高度。这可能在国外并不难找到,但是在国内可能会有很大的困难的。

如果一旦没有现场客户,那么我们必须要有相对应的方案来应对。我想一种方式可以是这样的:保证有一个系统分析员级别的人,他可以少量的参与编码的工作,因为结对编程的过程中他会给大家很多的帮助,另外他还有一个更加重要的任务,就是负责与客户之间的交流,及时的将经过短期迭代的小版本的程序交给客户,并听取他们的反馈意见,也就是要他起到开发人员和客户之间的一个桥梁的作用。

2)        测试代码对功能代码的反馈

在极限编程中提倡的是“编码未动,测试先行”,也就是说在编写功能代码之前就先要编写测试代码,测试代码可以用来保证我们的功能代码的运行是否正确。一般来说,我们都是使用xUnit作为开发测试代码的工具的。

有了测试代码之后,功能代码的编写更加像是一个解决问题的过程,什么样的问题呢?也就是让xUnit的那个状态条变绿的问题。我们需要不断的调整我们的功能代码,让状态条不断的从红色变成绿色,看着那种环保的颜色,我们的心情也会变得好起来。

这个方法在程序需要不断变化的时候尤其有用,因为我们在一般的情况下,如果修改了功能代码,那么以前所作的测试工作都需要重新来一遍,那样既浪费时间,又容易出错。有了自动化的测试代码,我们只需要运行一下Test Case,看它给我们的反馈是什么样的就可以了。如果xUnit代码给我们的信息是没有错误,我们大可以放心的继续我们的工作了。

但是,并非是说有了xUnit工具就万事大吉了,我们必须要很好的利用这个工具才可以。首先,一定要有一定的测试的理论知识,明白需要采用什么样的数据作为测试用例,那样才能够做到真正好的测试,才能够保证程序的质量。另外,测试代码的编写不是一次就完成了,随着功能的添加,我们的测试代码也一样要随之而改变,在保证原有代码没有问题的前提下,继续编写新的代码。

3)        管理人员对开发人员的反馈

这一点看起来似乎不很重要,但是仔细想一想,软件最终的完成靠的是谁呢?这个答案大家应该都非常清楚,其实就是所有的开发人员。没有管理人员一个项目可能会延期完成,或者说质量不高,但是如果没有了开发人员,那么项目是一定不能够完成的。所以,为了保证开发人员的满意度,管理人员对开发人员的意见的反馈是非常重要的。

开发人员在工作的过程中一定会遇到各种各样的问题,比如说休息、待遇、工作的环境、工作使用的工具软件等等,这些问题可能会直接影响到工作的积极性和效率,所以管理人员一定要时刻竖起耳朵来听取这些意见,并及时的进行反馈,避免开发人员带着情绪工作,那样不仅仅会影响到自己,而且由于结对编程的特点,那样的情绪会很快的传遍整个团队,等大家都对当前的项目有了抵触情绪的时候,接下来的结果也就可想而知了。

我想,管理人员的任务就是要将开发人员团结起来,使得所有的人真正成为一个团队,而不是一团散沙。想要做到这一点,就需要时刻了解开发人员的要求,似乎看来他们所做的是类似于后勤的工作,但恰恰是这样的工作往往是最重要的。

二、 勇气

1)        接受任务的勇气

在项目开始的时候,一般的情况是由管理人员来为开发人员分配任务。但是,这种分配只不过是根据管理人员自己心中对每个人的估量来做的,所以很难做到每一个人都很满意。有些时候某些人希望从事自己没有做过的任务,从而学习新的知识;同时还有一些人想要从事自己熟悉的任务,那样可以在更短的时间里面做出更多的成绩。不仅仅是对于每一个人,就是对一个人,可能在不同的时间里面他们的想法都是不一样的,所以说,凭管理人员主观的判断来给大家分配任务一定会有一些人对自己的任务不够满意。

在这个时候,我们不妨尝试这样的一种方法,将所有的任务公布给大家,然后让开发人员自己来选择自己想要做的任务。这样,由于任务是自己选定的,那么满意度会有很大程度上的提高。

在这种情况下,重要的一点就是开发人员要有接受任务的勇气,如果所有的人都选择自己觉得容易的任务,而回避困难的任务,那么我们的方法就失败了,因为必定会有一些任务无人选择。在这个时候,管理人员应该采取适当的方式鼓励开发人员,促使能够选择一些对自己具有挑战性的任务,那样对于个人的提高也是很有好处的。

其实想一想,作为开发人员,应该都不会有问题。勇于迎接挑战,正是现在的程序员大多都具有的一种素质。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值