第五章 团队和流程
1、团队的模式
窝蜂模式—例如小朋友刚开始T足球的时候,大家都一窝蜂地去抢球,球在哪里,人就在哪里。
主治医师模式—在团队中存在一个首席程序员,负责处理主要模块地设计和编码,其他成员从不同地角度支持他。
明星模式—主治医师模式运用到极点,其中团队一人地光芒超过了其余人的总和。
社区模式—“社区”并不意味着“随意”,一些成功的社区项目,都有很严格的代码复审和签入的质量控制。
业余剧团模式—在这样的团队中,不同的人会挑选不同的角色,而在下一个项目中,也可能会选择不同的角色。
秘密团队—一些项目在秘密的状态下进行,没有人知道团队里面的人在做些什么。
特工团队—一些团队由一些由特殊技能的专业人士组成,负责解决一些棘手而又紧迫性的问题。
交响乐团模式—这样的团队具有交响乐团的特点。
爵士乐模式—强调个性化的表达,强有力的互动,对变化的内容由创意的回应。
功能团队模式—具备不同能力的同事们平等协作,共同完成一个功能。
官僚模式—脱胎于大机构的组织构架,几个人报告给一个小头目,几个小头目报告给一个中头目,依次而上。
2、开发流程
写了再改模式—与窝蜂团队模式十分的像,既有优点也有缺点,优点是不需要太多其他准备或者相关知识,上来就开始写代码,缺点是要写一个有实际用户、解决实际需求的软件时有很大的不足。
瀑布模型—描述了单向的、不可逆的生产过程。
瀑布模型的变化:1)生鱼片模型:各相邻模块像生鱼片那样部分重叠。
2)大瀑布带着小瀑布:为了解决不用子系统之间的进度不一,技术要求迥异,需要区别对待的问题,引入子瀑布模型。
3、Rational Unified Process统一流程(RUP)包括:
业务建模、需求、分析和设计、实现、测试、部署、配置和变更管理、项目管理、环境。
RUP四个阶段:初始阶段—细化阶段—构造阶段—交付阶段
老板驱动流程以及渐进交付流程(MVP和MBP)。
4、TSP原则:
1)使用妥善定义的流程,流程中的每一步都是可以重复、可以衡量结果的;
2)团队的各个成员对团队的目标、角色、产品都有统一的理解;
3)尽量使用成熟的技术和做法;
4)尽量多的收集数据,并用数据来帮助团队做出理性的决定;
5)制定切合实际的计划和承诺,团队计划要由负责具体执行的角色来制定;
6)增加团队的自我管理能力;
7)专注于提高质量,争取在软件生命周期的早期发现问题。
感受: 在第五章的团队和流程中,团队有共同的特点:团队有一致的集体目标,团队要一起完成目标。一个团队的成员不一定要同时工作,团队成员有各自的分工,互相依赖合作,共同完成任务。软件团队也有不同的模式。很多软件公司的团队最后都演变成功能团队,简而言之,就是具备不同能力的同事们平等协作,共同完成一个功能。在这个功能完成之后,这些人又重新组织,和别的角色一起去完成下一个功能。他们之间没有管理和被管理的关系。大型软件公司里的不少团队都是采用这种模式。小组内的交流比较频繁。我们在开发、运营、维护软件的过程中有很多技术、做法、习惯和思想。软件工程把这些相关的技术和过程统一到一个体系中,叫“软件开发流程”,软件开发流程的目的是为了提高软件开发、运营和维护的效率,以及提升用户满意度、软件的可靠性和可维护性。要完成一个复杂的软件项目,团队的各种成员要在不同阶段做不同的事情。