【构建之法】第5章-团队和流程

本章重点:

  • 典型的软件团队模式和开发流程都有哪些/li>
  • 各有什么优缺点/li>
  • TSP
  • MVP
  • MBP
  • RUP

1 非团队和团队

团队有一些共同的特点:

  • 团队有一致的集体目标,团队要一起完成这个目标;
  • 团队成员有各自的分工,互相依赖合作,共同完成任务。

2 软件团队的模式

2.1 主治医师模式(Chief Programmer Team,Surgical Team)

就像在手术台上,有一个主刀医师,其他人(麻醉,护士,器械)各司其职,为主刀医师服务。

这样的团队中,有首席程序员(Chief Programmer)来负责处理主要模块的设计和编码,其他团队成员从各种角度支持他。

这一模式往往退化为:一个人干活,其他人跟着打酱油。(作者以学校的软工课为例)

2.2 明星模式(Super-star Model)

主治医师模式运用到极点,可以退化为明星模式。

明星的光芒盖过了团队其他人的总和。

往往对于团队的成长不利,如何让团队的利益最大化、如何让团队的价值在明星陨落之后仍然能够保持,是这个模式要解决的问题。

2.3 社区模式(Community Model)

社区由很多志愿者参与,每个人参与自己感兴趣的项目,贡献力量,大部分人不拿报酬。

优势在于:众人拾柴火焰高。

缺陷在于:“社区”并不意味着“随意”,一些成功的社区项目,都有很严格的代码复审和签入的质量控制。

2.4 业余剧团模式(Amateur Theater Team)

每个人可以在不同的项目中尝试不同的角色。

但是在竞争性强烈、创造性要求高的团队,不会存在完美的民主气氛。

2.5 秘密团队(Skunk Work Team)

一些软件项目在秘密状态下进行,别人不知道他们具体在做什么。

这种模式的好处是:团队内部有极大的自由,较高的热情,没有外界的干扰(不用每周给别人介绍项目进展,听领导的最新指示,等等)。这样的团队往往能发挥超高的效率完成看似不可能的任务。

2.6 特工团队(SWAT)

一些团队由一些有特殊技能的专业人士组成,负责解决一些棘手而又紧迫性的问题。

2.7 交响乐团模式(Orchestra)

门类齐全,各司其职,演奏的都是练习过多次的曲目,重在执行。

2.8 爵士乐模式(Jazz Band)

强调个性化的表达,强有力的互动,对变化的内容给予有创意的回应。

这看上去跟“敏捷的开发模式”有点类似。

2.9 功能团队模式(Feature Team)

具备不同能力的同事们平等协作,共同完成一个功能。

在这个功能完成之后,这些人又重新组织,和别的角色一起去完成下一个功能。小组内的交流比较频繁。

2.10 官僚模式(Bureaucratic Model)

这种模式脱胎于大机构的组织架构,几个人报告给一个小头目,几个小头目报告给中头目,依次而上。

3 开发流程

  • 写了再改模式(Code-and-Fix)
  • 瀑布模型(Waterfall Model)
  • 瀑布模型的各种变形
  • Rational Unified Process 统一流程(RUP)
  • 老板驱动的流程(Boss-Driven Process)
  • 渐进交付的流程(Evolutionary Delivery),MVP和MBP
  • TSP的原则

来源:CA727

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年8月12日
下一篇 2019年8月12日

相关推荐