过渡到极限编程的5个经验教训

这可能是一种许多人以前没有遇到过的软件开发方法,但是位于澳大利亚悉尼郊区戈登的Citect最近成功地实现了极限编程(XP)。观察Citect软件开发领域当前的活动,会产生一些关于XP的不同寻常的印象。

通过约翰·麦克马洪,Citect公司 二三年三月一日
关键字
  • 控制软件

  • 软件编程

  • 控制架构

  • 开放标准

栏:
XPs 12实践如何影响人力和技术问题

这可能是一种许多人以前没有遇到过的软件开发方法,但是位于澳大利亚悉尼郊区戈登的Citect最近成功地实现了极限编程(XP)。

观察Citect软件开发领域当前的活动,会产生一些关于XP的不同寻常的印象。起初,这项活动似乎开放而嘈杂。六个程序员可能站在一个白板前,讨论一个设计问题,增加想法和输入。然后他们将分成两组,在有大显示器的电脑前工作。一个人,称为驱动程序,轮流编写代码,而另一个人,称为导航器,观察,做笔记,有时打断他或她的朋友,建议对他们正在工作的模块进行更改,甚至是一种全新的方法。

混乱,但有效

这种类型的配对编程并不是编程领域的标准。然而,在XP环境中,驱动程序和导航器之间的切换可能每小时发生一次。这似乎不是一种开发软件的有效方法,但Citect发现XP方法可以帮助开发足够健壮的程序,以应对世界上一些最大的实时、监控和数据采集(SCADA)站点。

作为一种已发布的方法,XP及其实践可以追溯到1999年。从历史上看,XP是敏捷开发方法组中的一种软件开发方法,它关注质量、对变化的响应能力和推向市场的速度。XP基于四个价值观:沟通、简单、反馈和勇气。此外,XP促进了一组12个开发实践(见表)。

Citect的一个团队在2001年底开始了XP试验,并于2002年4月在Citect的产品开发小组中扩展了该方法。这个变化是巨大的,根本的,有时是痛苦的,但是这个小组和Citect成为了一个敏捷的软件开发组织。在过渡过程中,Citect开发了一些关于XP的经验教训,这些经验教训具有重要的积极影响。

教训

1: XP是一种哲学,而不是宗教

编程从“故事”开始,在XP语言中定义为功能需求。虽然很简短,但是这些故事是XP工作方式的一部分,因为客户无处不在。因此,在客户和开发人员之间的紧密交互过程中,细节得到了填充。

然后XP程序员使用12种开发实践来设计和实现有用的解决方案。例如,最重要的实践之一是#4,简单设计,它回答了这个问题,“可能工作的最简单的东西是什么?”另一个是#6,重构,在XP过程中整理修订。

然而,因为很容易被方法论的信仰冲昏头脑,XP鼓励参与者保持常识。在XP中,“简单”意味着不为可能永远不会出现的需求进行设计,但是如果您已经知道了需求,那么现在几个小时的额外设计可以节省以后几天的返工。

教训

2:

哲学不能取代好的管理

因为XP是如此敏捷,并且能够更改以满足客户需求,所以更改的速度可以很高。这并不意味着不干涉;这确实需要增加变革管理的努力。健全的项目管理实践可能需要一些弯曲和适应,但他们仍然需要保持利益相关者过于紧张;使变化不受控制;专注于最终的游戏;帮助管理风险、成本、质量和进度。

教训

3:

一种方法并不适合所有人

XP方法还包括在与会者站着时举行的每日会议。这些活动以一轮鼓掌结束,这在不同的文化中可能有也可能没有巧妙的转换。一些开发商接受了这个想法,而另一些开发商则抵制这种情绪化的表现。

教训

4:

人的问题主导了XP更改代理的选择

如果您决定采用XP,那么将会有一些痛苦,这些痛苦主要集中在人而不是技术上。虽然XP主要由高级技术人员驱动,但实现应该得到人力资源专家的支持,因为XP的许多关键变更管理问题包括团队技能、共识决策、自信和其他软问题。

教训

5:

:创建集体代码所有权

在过去,开发团队中的程序员对代码没有所有权。任何人都可以在任何时候更改代码。虽然这允许灵活性,但也会产生不稳定的代码。转移到个人代码所有权导致了更稳定的代码,但延长了开发进度并增加了官僚主义。

XP提倡集体所有权。团队拥有整个代码库,如果能使他们的生活更轻松,任何程序员对都被鼓励改进任何代码。如果我们有一对正在做出改变的人,并且交流是开放和快速的,那么质量、敏捷性和稳定性就可以达到。

Citect的XP好处

Citect作为早期采用者走上了XP的道路,并发现它的主要优点包括:

  • 团队内部和团队之间的沟通水平是快速、有效的,并对不断变化的客户需求做出响应。

  • 降低了“高质量代码行”的成本。考虑到结对编程的高成本,这似乎违反直觉,但结对使每个程序员的代码诚实,这意味着代码质量得到了提高;他们保持着惊人的速度,这意味着产出的提高足以证明这对搭档加倍的开销是合理的;这个过程有助于快速决策,提高效率。

  • 团队授权,以及相关的共识决策,减少了由短视的设计决策引起的返工。

  • 测试优先的代码开发是非常值得的,即使您没有实现其他XP实践。对功能和系统可靠性的信心显著提高。

如果你的客户发现在他们看到有用的东西之前很难说出他们想要什么;如果你关心质量水平;或者如果你需要建立一个更加以客户为中心的开发团队,那么XP和敏捷方法通常是值得研究的,看看它们在你的文化中是如何工作的。

评论吗?电子邮件jmontague@reedbusiness.com

有关XP的更多信息,请访问www.extremeprogramming.org/index.html。有关Citect的更多信息,请访问www.citect.com

XP的12个实践如何影响人类和技术问题

XP实践 人类的影响 技术的影响
1. 计划游戏 X X
2. 短的版本 X
3. 比喻 X
4. 简单的设计 X X
5. 测试 X X
6. 重构 X X
7. 结对编程 X
8. 集体代码所有权 X
9. 持续集成 X
10. 每周工作40小时 X
11. 现场客户 X
12. 编码标准 X X
影响总数 11 X
来源:Control Engineering,信息来自Citect
极限编程的12个实践影响组织的人力和技术领域,但大多数实践对人的问题有影响
作者信息
John McMahon,注册会计师,PMP, Citect产品开发集团总经理