《构建之法》学习(5)——团队和流程
1.非团队和团队
团队共同的特点:
团队有一致的集体目标,团队要一起完成这目标
团队成员有各自的分工,互相依赖合作,共同完成任务
2.软件团队的模式
一窝蜂模式
主治医师模式
有首席程序员,他/她负责处理主要模块的设计和编码,其他成员从各种角度支持他/她的工作。
明星模式
主治医师模式运用到极点,可以蜕化为明星模式,在这里,明星的光芒盖过了团队其他人的总和。
社区模式
社区由很多志愿者参与,每个人参与自己感兴趣的项目,贡献力量,大部分人不拿报酬。
“社区”并不意味着“随意”。
业余剧团模式
这样的团队在每一个项目中,不同的人会挑选不同的角色。
秘密团队
一些软件项目在秘密状态下进行,别人不知道他们具体在做什么。
特工团队
软件行业的一些团队由一些有特殊技能的专业人士组成,负责解决一些棘手而有紧迫性的问题。
交响乐团模式
当某个软件领域处于稳定成长阶段的时候,众多大型软件公司的开发团队就会采取这种模式
爵士乐模式
强调个性化的表达,强有力的互动,对变化的内容有创意的回应。
功能团队模式
具备不同能力的同事们平等协作,共同完成一个功能。
官僚模式
几个人报告给一个小头目,几个小头目报告给中头目,依次而上。
3.开发流程
3.1写了再改模式
“只用一次”的程序
“看过了就扔”的原型
一些不实用的演示程序
3.2瀑布模型
产品定义稳定,产品的正确性非常重要,需要每一步的验证。
产品模块之间的接口、输入和输出能很好地用形式化的方法定义和验证。
使用的技术非常成熟,团队成员都很熟悉这些技术。
负责各个步骤的子团队分属不同的机构或者在不同的地理位置,不能做到频繁的交流。
3.3统一流程
业务建模
需求
分析和设计
实现
测试
部署
配置和变更管理
项目管理
环境
RUP四个阶段
初始阶段:此阶段的目标是分析软件系统大概的构成,系统与外部系统的边界在哪里,大致的成本和预算是多少,系统的风险主要来自哪里。
细化阶段:它的目标是分析问题领域,建立健全的体系结构基础,编制项目计划,按优先级处理项目中的风险。
构造阶段:在这一阶段,团队开发出所有的功能集,并有秩序地把功能集成为经过各种测试验证过的产品。
交付阶段:这时候团队工作的重点是确保软件能满足最终用户的实际需求。
3.4老板驱动的流程
由行政领导主导,或者由公司的老板驱动。
3.5渐近交付的流程
MVP——最小可行产品:把产品的最核心功能用最小的成本实现出来,然后快速征求用户意见。