第五章 团队和流程

团队有一致的集体目标,团队要一起完成这目标。一个团队的成员不一定要同时工作,例如接力赛跑。

团队成员有各自的分工,互相依赖合作,共同完成任务。

软件团队有各种形式,适用于不同的人员和需求。基于直觉形成的团队模式未必是最合适的。软件团队的模式,最初是混沌的一窝蜂形式:一群人开始写代码,希望能写出好软件。随着团队的成熟和环境的变化。

团队模式会演变成下面几种模式之一。

1.主治医师模式:有首席程序员,他/她负责处理主要模块的设计和编码,其他成员从各种角度支持他/她的工作(后备程序员、系统管理员、工具开发、编程语言专家、业务专家)。

2.明星模式:让团队的利益达到最大化

3.社区模式:每个人参与自己感兴趣的项目,贡献力量,

4.业余剧团模式:这样的团队在每一个项目中,不同的人会挑选不同的角色。但都听从一个指挥的指导和安排。

5.秘密团队: 团队内部有极大的自由,没有外界的干扰,不用每周给别人介绍项目进展,听领导的最新指示,团队成员有极大的投入。

6.特工团队:软件行业的一些团队由一些有特殊技能的专业人士组成,负责解决一些棘手而有紧迫性的问题。

7.交响乐团模式:家伙多,门类齐全。 各司其职,各自有专门场地,做项目期间没有聊天、走动等现象,同时看指挥的,重在执行。

8.爵士乐模式:和上面的“交响乐团模式”在很多方面都对立,但不能简单地说孰优孰劣。

9.功能团队模式:具备不同能力的同事们平等协作,共同完成一个功能。

10.官僚模式:脱胎于大机构的组织架构,几个人报告给一个小头目,几个小头目报告给中头目,依次而上。跨组织的合作变得比较困难,因为各自头顶上都有不同的老板。

 

瀑布模型:(单向、不可逆)

        硬件行业中:产品一般遵循:【分析->设计->实现(制造)->销售->维护】的流程。

                         且一旦大规模生产,要再返回去修改时就非常困难,甚至是不可能的。

        在设计大型系统时,要做相邻步骤的回溯,解决上一阶段未能解决的问题。

        要让产品成功,最好把这个模型走两边,先有一个模拟版本,在此基础上收集反馈,改进各个步骤,并交付一个最终的版本。

        用户的及早介入、讨论、复审是很重要的。要让顾客正式的、深入的、持续的参与到项目中来。

        软件行业中的局限性:

        ①各步骤之间是分离的,但是软件生产过程中的各个步骤不能这样严格分离出来。

        ②回溯修改很困难甚至不可能,但是软件生产的过程需要时时回溯。

        ③最终产品直到最后才出现。但是软件的客户,甚至软件工程师本人都需要尽早知道产品的原型并试用。

        适用范围:

        ①产品的正确性非常重要,需要每一步的验证。

        ②产品模块之间的接口、输入和输出能很好的用形式化的方法定义和验证。

        ③使用的技术非常成熟,团队成员都很熟悉这些技术。

        ④负责各个步骤的子团队分属不同的机构,或在不同的的地理位置,不可能做到频繁的交流。

posted @ 2017-06-27 13:11  luuuuuula  阅读(79)  评论(0编辑  收藏  举报