现代软件工程讲义 4 团队和流程

Advanced Software Engineering, Team Structure and Development Process 软件团队和开发流程

小飞:搞软件不就是人在写代码么?只要能写代码,各种各样的团队模式对工程师的工作和软件最后的质量有影响么? 为啥要管这么多?

阿超:1960年代,程序员Melvin Conway 就总结了一个康威规律

          一个机构设计出来的系统,它的体系结构注定会沿用这个机构的内部交流模式。【注1】

因为人的工作都受到大大小小团队、组织的影响,最自然和安全的工作方式,就是在组织的边界内部工作,而组织之间的交流方式,会极大地影响系统的设计。 如果观察一个银行网站,或一所大学的网站,你往往能看出这些机构的内部结构。但是软件系统是给用户使用的,用户的需求并不是要看这个机构的内部组织架构图,而是要解决用户的问题。 一个合适的团队结构,能更大地改进交流的效率,让团队更能把注意力集中在最主要的目标——解决用户需求上面。

 

【注1:参见:~esr/jargon/html/C/Conways-Law.html  】

 

非团队和团队

在讲团队之前, 我们要讲什么是非团队王屋村里经常发生这样的一幕:

王屋村的大智要把一堆砖头从村头搬到村尾。  他到顶球酒吧前, 看到前面三三两两地蹲着一些人, 有些人前面放着一块从包装箱扯下来的纸板, 上面写着“Java,  ***一行”;“网页前端,  不酷不要钱”;“专做 PS擅长人体”;“通吃SQL, NoSQL”等等。

#ed8c7bd96048e521959293494dee9cb5#

(来源:  论坛)

 

大智冲这些人喊了一嗓子:  搬砖的有没有?  一百块砖一毛钱!

地上蹲着的一些人抬头看了看,  有一两个人慢慢站起来了。

大智看了看人数, 又喊了一声: 中午有盒饭!

这时七八个人都站起来了, 拍拍屁股就凑到大智面前。大智就带着他们走了。

 

这七八个人是团队team)么?  不是,他们只是一群乌合之众,临时聚集在一起,各自完成任务就领钱走人(work group) 

 

下面是一些团队的例子:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgfjwf.html