我们已经了解了敏捷开发如何影响每一个开发人员个体,那么现在我们可以来看看整个开发小组如何采用敏捷开发的做法。
在《敏捷软件开发》上中下系列的《上篇》里,我们探讨了开发人员做法,也回顾了技术优势如何大幅提高软件质量。第一部分把重点主要放在了测试-编码-重整循环上。现在我们转到中间一个圆环,看看敏捷开发做法如何在小组这一层次发挥作用。
让小组高效工作——小组做法
一旦每个开发人员都在紧密围绕中心圆环的反馈循环工作时,我们就可以看看整个开发小组能够如何以更加敏捷的方式工作。小组这一层次的做法是敏捷开发的核心,因为它们能够显示出小组成员可以如何更加高效地一起工作并推动共同进行技术决策。我们将分别从四个方面来讨论小组的这种改变——设定基调、基于小组的代码编写标准、提高和保持效率、采用“统一小组”方式(包括与开发小组直接相关的东西)的首要步骤。我们给你举的例子来自于3Q Solutions公司,这是一家生产财物管理系统并完全使用敏捷开发方法的软件公司。
设定基调——第一步
敏捷软件开发的一个中心思想是小组朝着一个共同的目标工作。尽管很多流程都提倡小组工作,但是敏捷开发(真正)融合了支持小组工作的做法,并将小组工作放到了日常做法里。在开始讨论小组做法之前,我们需要先为小组设定一个基调,让他们开始感觉更像是一个真正的小组。
开放的工作空间
为更加开放的、基于小组的敏捷开发方式设定基调的一种最佳方法是为小组创造一种开放的工作空间(open
workplace)。这意味着要建立一个或多个开放的区域,并尽最大可能进行沟通和合作。你想要专门了解什么样的环境能够让配对编程更容易。小格间和办公室是与敏捷开发开放工作空间格格不入的,所以应该避免其出现。在一家与Exoftware有合作关系的公司里,开放空间区域只被用于工作,里面只有用于配对编程、集成和构建软件的机器。其它的所有区域都留给带有Internet连接和电话的个人计算机。如果你有这样的空间,这就是应该考虑的东西,因为它有助于清楚地表明“当我们在工作区的时候,我们在工作”。
不要低估开放的工作空间对于小组的重要性——这就是为什么我们将其作为第一步的原因。下面的一幅照片就是是3Q Solutions开发小组的工作空间。
请注意,两张大桌子(下面没有文件柜)被摆在一起,构成了最适合配对编程的办公桌。
集体主义主人翁精神
我们想要介绍的下一个思想是集体主义主人翁精神(Collective Ownership)。敏捷编程的这种中心思想是让每一个人都对整个系统负责,每一个人都有更改代码的自由。这是一种重要的思维方法,因为它让小组的注意力都集中到了项目上,从而确保有一个共同的目标。与配对编程相关的其它步骤也强调这种思想,但是尽早引入这种思想是非常好的。