第五章主要讲了典型的软件团队模式和开发流程。以及我们也将讨论团队模式和开发效率之间的一些关系。
1.非团队和团队
团队的主要特点:
1) 团队有一致的集体目标,团队要一起完成这个目标。一个团队的成员不一定要同时工作。
2) 团队成员有各自的分工,互相依赖合作,共同完成任务。
2.软件团队的模式
1.主治医师模式
有首席程序员,他/她负责处理主要模块的设计和编码,其他成员从各种角度支持他/她的工作。
2.明星模式
主治医师模式运用到极点,可以蜕化为明星模式,在这里,明星的光芒盖过了团队其他人的总和。
3.社区模式
社区很多志愿者参与,每个人参与自己感兴趣的项目,贡献力量,大部分人不拿报酬。
4.业余剧团模式
这样的团队在每一个项目中,不同的人会挑选不同的角色。。
5.秘密团队
一些软件项目在秘密状态下进行,别人不知道他们具体在做什么。
6.特工团队
软件行业的一些团队由一些有特殊技能的专业人士组成,负责解决一些棘手而紧迫性的问题。
7.交响乐团模式
当某个软件领域处于稳定成长阶段的时候,众多大型软件公司的开发团队就会采取这种模式。
8.爵士乐模式
强调个性化的表达,强有力的互动,对变化的内容有创意的回应。
9.功能团队模式
具备不同能力的同事们平等协作,共同完成一个功能。
10.官僚模式
几个人报告给一个小头目,几个小头目报告给中头目,依次而上。
3.开发流程
3.1写了再改模式
1.只用一次的程序
2.看过了就扔的原型
3.一些不实用的演示程序
3.2瀑布模型
1.如果产品的定义非常稳定,但是产品的正确性非常重要,需要每一步的验证
2.产品模块之间的接口、输入和输出能很好地用形式化的方法定义和验证
3.使用的技术非常成熟,团队成员都很熟悉这些技术
4.负责各个步骤的子团队分属不同的机构,或在不同的地理位置,不可能做到频繁的交流
3.3统一流程(RUP)包括:业务建模,需求,分析和设计,实现,测试,部署,配置和变更管理,项目管理,环境