现代软件工程讲义 4 团队和流程
Advanced Software Engineering, Team Structure and Development Process 软件团队和开发流程 小飞:搞软件 不就是人在写代码么?只要能写代码, 各种各样的团队模式对工程师的工作和软件最后的质量有影响么? 为啥要管这么多? 阿超:1960年代,程序员Melvin Conway 就总结了一个 康威规律 : 一个机构设计出来的系统,它的体系结构注定会沿用这个机构的内部交流模式。 【注1】 因为人的工作都受到大大小小团队、组织的影响,最自然和安全的工作方式,就是在组织的边界内部工作,而组织之间的交流方式,会极大地影响系统的设计。 如果观察一个银行网站, 或一所 大学的网站,你往往能看出这些机构的内部结构。但是 , 软件系统是给用户 使 用的,用户的需求并不是要看这个机构的内部组织架构图,而是要解决用户的问题。 一个合适的团队结构,能更大地改进交流的效率,让团队更能把注意力集中在最主要的目标 —— 解决用户需求上面。 【注1:参见: http://catb.org/~esr/jargon/html/C/Conways-Law.html 】 非团队和团队 在讲团队之前 , 我们要讲什么是 “ 非团队 ” 。 王屋村里经常发生这样的一幕 : 王屋村的大智要把一堆砖头从村头搬到村尾。 他到顶球酒吧前 , 看到前面三三两两地蹲着一些人