拿结对编程为例。对于采纳敏捷方法论(尤其是极限编程)的团队来说,结对编程是最有争议的几个问题之一,因为它需要两个开发人员共同完成同一段代码。虽然 一个开发者可能具有杰出的设计能力并精通开发平台,但作为一个高效的XP开发者,他还必须能够沟通思想,协作进行测试,提供可能的实现方案,并在某个实现 策略上达成共识。很多开发者不愿意进行结对编程,并不是因为他们不会编码,而是因为他们不熟悉结对编程。有个开发者在他的blog中写道:“结对编程会使 他们暴露他们真正的知识和技能水平”。独立编程时,别人只会看到编码结果。而结对编程时,不顺利的开始和早期犯的错误都会被别人看到。这时肯定会有一种压 迫感,甚至对高水平的开发者也是一样,要花上一段时间才能习惯。值得牢记的是:当你了解了其它团队成员,并且熟悉每个参与者的个性之后,结对编程就会变得 容易起来。
大多数成功的极限编程者对使用各种语言编程、学习新的设计方法都相当感兴趣,特别是阅读已存在的代码。这些成功的开发者愿意通过尝试做一些小的练习来“实 践”编码。他们可能会通过编写一些小工具或参与开源项目进行实验。在这里,着重强调“实践”是非常重要的。好的敏捷开发者常常通做一些事情来掌握知识和技 术,而不仅仅通过阅读了解它。
“极限编程是共产主义……”这就是某个开发者对结对编程的牵强解释。他提到,在XP中的编码使大家分享了的各自的经验,他嘲笑“集体代码所有制”,并对所 有开发人员可及接触所有领域的工作以便能够编写任意部分的代码这一事实嗤之以鼻。我与这个开发者聊过一段时间以后,才明白他的想法实际上是为了与他人竞争 以保住“饭碗”。他担心同一团队中以及不同团队间的竞争问题。与别人一起工作意味着允许别人看到他是怎样解决问题的,用了什么工具,这就使别人有机会学到 他的诀窍。他对结对编程的反感表明,在敏捷团队中需要解决个人英雄式开发和“饭碗”问题。结对编程很自然地使开发者向同事敞开胸怀,分享领域知识,并时刻 准备把你的方法与大家分享。
一个极度自信的开发者也可能会抛开结对编程这一方式。有时面对生产速率下降而一个成员独立工作可以使其提高的情况下会发生这样的事。另外,当一对开发者中 的某个人能力不济,而另一个人就会把“结对”变成“个人秀”。 还有一些时候,其中的一个开发者可能急不可耐地想完成任务,因为一些个人原因驱使他尽快完成用户故事,可能最显而易见的原因就是“野心”:试图通过展示技 术能力成为团队领导者,或得到其它晋升机会。这样的态度很容易使结对褪变成一个“得分比赛”,比赛的目标就是看谁能赢,而不是设法完成有意义的工作。
过少的发言权也可能是成为一个问题。一个开发者很少主动关心他的结对任务的话,很可能他就会被他的伙伴所领导。在这种情况下,这个开发者实际上是放弃了很多在设计和代码质量上的责任。
此文章共有5页 上一页 1 2 3 4 5 下一页
文章来源:中国项目管理资源网
|