程序员之间存在差异,最好的和最坏的程序员之间的工作效率差异可以达到10:1,而运行速度和空间上的差异达到5:1。数据显示,经验和实际的表现没有相互的关系。
需要协作沟通的人员的数量影响着开发成本,因此系统应该由尽可能少的人来开发:如果一个200人的项目中,有25个最能干和最有开发经验的项目经理,那么开除剩下的175名程序员,让项目经理来编程开发。
HarlanMills 建议大型项目的每一个部分由一个团队解决,但是该队伍以类似外科手术的方式组建,而并非一拥而上。也就是说,由一个人来进行问题的分解,其他人给予他所需要的支持,以提高效率和生产力。
Mills 概念的真正关键是“从个人艺术到公共实践”的编程观念转换。在十人团队中,系统是一个人或者最多两个人思考的产物,其他人都为实现这些思想而工作。
如何运作?
- Team Leader 需要了解所有设计和全部代码,确保程序概念的一致。
- 当出现分歧和问题的时候,由Team Leader单方面来统一。我觉得这一点很重要,因为分歧和问题总是要涉及到彼此之间工作量的再分配,说白了就是利益,谁干的多谁干的少,必须要有人出来做决定的。Team Leader 站出来说话可以解决分歧和问题的拖延。
- 团队中各人的职责是明确的,分工清晰,这使得成员之间的交流变得更加高效。