《构建之法》第五章读书笔记

第5章 团队和流程 

一、非团队和团队

团队的共同特点:

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

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

二、软件团队的模式

软件团队的模式最初是混沌的一窝蜂的形式:一群人开始写代码,希望能写出好软件。随着团队的成熟和环境的变化,团队模式会演变成下面几种模式之一。

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

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

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

4、业余剧团模式:在每一个项目中,不同的人会挑选不同的角色,在下一个项目中,这些人也许会换一个完全不同的角色类型。个人在团队中听从一个中央指挥的指导和安排。

5、秘密团队:一些软件项目在秘密状态下进行,别人不知道他们具体在做什么。这种模式的好处是:团队内部以后极大的自由,较高的热情,没有外界的干扰。

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

7、交响乐团模式:门类齐全、各司其职。当某个软件领域处于稳定成长阶段的时候,众多大型软件公司的开发团队就会采取这种模式。

8、爵士乐模式:强调个性化的表达,强有力的互动,对变化的内容有创意的回应。

9、功能团队模式:很多软件公司的团队最后都演变成功能团队,具备不同能力的同事们平等合作,共同完成一个功能。

10、官僚模式:这种模式在软件开发中会出问题,因为成员之间不光有技术方面的合作和领导,同时还混进了组织上的领导和被领导关系。

三、开发流程.

一群人在一起做软件开发,总是要有一些方式方法,就像第一章提到的:我们在开发、运营、维护软件的过程中有很多技术、做法、习惯和思想。软件工程把这些相关的技术和过程统一到一个体系中,叫做“软件开发流程”,软件开发流程的目的是为了提高软件开发、运营和维护的效率,以及提升用户满意度、软件的可靠性和可维护性。

1、写了再改模式:这种模式不需要太多其他准备或相关知识,上来就写代码,写不出来就改,但要写一个有实际用户、解决实际需求的软件,这个方法缺点就很大。

2、瀑布模型:他的适用范围如果产品的定义非常稳定,但是产品的正确性非常重要,需要每一步验证,产品模块之间的借口、输入和输出能很好的用形式化的方法定义和验证,使用的技术非常成熟,团队成员都很熟悉这些技术,负责各个步骤的子团队分属不同的机构,或在不同的地理位置,不可能做到频繁的交流。

3、瀑布模式的各种变形:生鱼片模型、大瀑布带小瀑布

4、统一流程:业务建模、需求、分析和设计、实现、测试、部署、配置和变更管理、项目管理、环境、初始阶段、细化阶段、构造阶段、交付阶段

5、老版驱动的流程:该模式的问题领导对许多技术细节是外行,未必懂得软件项目的管理,领导的权威影响了自由的交流和创造,领导最擅长的管理方式是行政命令,这未必能管好软件团队或任何需要创造力的团队,领导的精力有限,领导很忙时,团队怎么办?

6、渐进交付的流程:很接近迭代式开发流程,当系统的主要需求和架构明确之后,软件团队进入了一个不断演进的evolution循环中:开发→发布→听取反馈→根据反馈做改进

7、TSP的原则:使用妥善定义的流程,流程中的每一步都是可以重复的、可以衡量结果的,团队的各个成员对团队的目标,角色,产品都有统一的理解,尽量使用成熟的技术和做法,尽量多地收集数据,并用数据来帮助团队做出理性的决定,制定切合实际的计划和承诺,团队计划要由负责具体执行的角色来制定,增加团队的自我管理能力,专注于提高质量,争取在软件生命周期的早期发现问题,最有效提高质量的办法是做全面而细致的设计工作。

时间: 2024-10-10 09:52:08

《构建之法》第五章读书笔记的相关文章

《构建之法》第一章读书笔记

工程有了一个初步的了解.介绍了软件工程里的一些基本概念,软件开发的几个阶段.软件工程的特殊性.目标以及软件工程与计算机科学之间的联系与区别.    软件工程作为一门新兴的学科,是连接计算机硬件和传统机械工程的一个桥梁.起先,我所认为的软件工程单纯的只是编程,通过算法实现正确的输出而已.但在构建之法的第一章中,我认识到会写程序只是一个合格的软件工程师最基本的素质.一个完整的项目,应该在需求分析,软件构架设计.代码实现.程序测试.软件发布运营及维护每个阶段都尽职尽责,并结合用户体验去完善软件的每一个

构建之法第五章读书心得

这一章我们主要学习了团队和流程.团队简而言之就是开发一个软件工程的团队,那么团队究竟怎样在一起开发这一软件便有了多种多样的方法. 比如所有人都一起做的一窝蜂模式,但这样模式弊端很大,虽然都做了许多工作,但结合起来的成果可能还没有单人做的进度快.慢慢的发展出了一些其他的模式,比如我们在学校中,一个学霸主力,其他人打酱油,但这并不好.之后也出现了明星模式,社区模式等更好的模式 写了再改模式:这种便是我们学生中最为普遍的一种模式.不管代码怎么样,先写出来,甚至连语法错误都没有考究,整体做完后再针对问题

Android深度探索——第五章读书笔记及心得

搭建S3C6410开发板的测试环境 ——第五章读书笔记及心得 通过本章的学习学会了如何在开发板上安装Android.开发板是学习和开发嵌入式技术的主要硬件设备,想要顺利的通过linux驱动访问硬件,是不能在PC板上模拟的,需要在卡发板上进行调试和测试.其相对于手机更适合与对程序进行测试,尤其是对底层linux程序进行测试.还了解了S3C6410开发板的基本信息.知道了如何安装串口调试工具以及烧写Android系统.知道了如何配置有线网络. S3C6410是一款低功耗.高性价比的精简指令集计算机处

构建之法第三章读书心得

在构建之法第三章中,我们主要学习了个人能力的衡量与发展. 初级软件工程师有以下几个成长阶段:1.积累软件开发相关的知识,提升技术技能. 2.积累问题领域的知识和经验. 3.对通用的软件设计思想和软件工程思想的理解 4.提升职业技能 5.实际成果 软件开发的工作量和质量你的衡量标准:1.项目.任务有多大? 2.花了多少时间? 3.质量如何?交付的代码中有多少缺陷?

JavaScript高级程序设计(第3版)第五章读书笔记

第五章 引用类型 创建Object实例的方式有两种,第一种是使用new操作符后跟Object构造函数,例如: var person = new Object( ); person.name = “Nicholas”; person.age=29; 第二种是使用对象字面量表示法.如: var person = { name : “Nicholas”, age : 29 }; 在最后一个属性后面添加逗号,会在IE7及更早版本和Opera中导致错误. 两种访问对象属性的方法,一是方括号语法,例如per

构建之法第五章学习

今天我学习了<构建之法>第五章 团队和流程.首先我了解了写了再改模式(Code-and-Fix) 史蒂夫·迈克康奈尔(Steve McConnell)在这里提到了不少开发流程.第一个提到的开发流程.这个流程也有好处,不需要太多其他准备或相关知识,大家上来就写代码,也许就能写出来,写不出来就改,也许能改好.当面临下面的任务时,也许这个方法是有用的.但是,要写一个有实际用户.解决实际需求的软件,这个方法的缺点就太大了. 然后我学习了瀑布模型 当软件行业还在年幼的时期,它从别的成熟行业(硬件设计,建

《构建之法—现代软件工程》读书笔记

今天阅读了<构建之法:现代软件工程>的第一章,受益匪浅.本来我对软件的了解只是处在最基本层面,通过阅读本书,我对软件工程的了解有了更深入的认识. 软件工程是把系统的.有序的.可量化的方法应用到软件的开发.运营和维护的过程.软件工程包括下列领域:软件需求分析.软件设计.软件构建.软件测试和软件维护.软件工程和下列学科相关:计算机科学.计算机工程.管理学.数学.项目管理学.质量管理.软件人体工学.系统工程.工业设计和用户界面设计.人们在开发.运营和维护软件的过程中有很多技术.做法.习惯和思想体系.

Android深度探索--HAL与驱动开发----第五章读书笔记

第五章主要学习了搭建S3C6410开发板的测试环境.首先要了解到S3C6410是一款低功耗.高性价比的RISC处理器它是基于ARMI1内核,广泛应用于移动电话和通用处理等领域. 开发板从技术上说与我们经常用的手机类似, 也包含显示屏. 键盘. Wi-Fi. 蓝牙等模块(可 能有的是选配〉.但与手机不同的是在开发板上安装嵌入式系统要比手机容易得多.而且一般开发 扳都有很多扩展的端口,可以很容易开发定制的硬件, 并与开发板链接.因此,开发板相对于孚机 来说,更适合对程序进行测试,尤其适合对底层的 L

构建之法第五篇阅读笔记

今天将构建之法剩下的阅读完了,主要讲述如何组队一起设计一款软件软件设计与实现过程中,着实有这么一句话:在理论上,理论和实践是一回事:在实践上,理论与实践却是两回事.若是只是在理论阶段讨论着实践,就永远不知道想象中的目标实现难度与实际的目标实现难度差距有多么的大.这在课程结对编程中有所体现,也感触颇深,动手前将设计思路商量地基本完美,大多会遇到的问题也都通通解决,然而到了实现环节就出问题了,发现原来之前商量的方法并不可行,还有很多突发的问题没有考虑到……所以,有的程序可以“一拍”即得,有的不行.构