关键词:
构建之法现代软件工程(第五次)
这周我阅读了《构建之法》第六第七章
- 敏捷开发的原则:
(1)尽早并持续地交付有价值的软件以满足顾客的需求;
(2)敏捷流程欢迎需求的变化,并利用这种变化来提高用户的竞争优势;
(3)经常发布可用的软件,发布间隔可以从几周到几个月,能短则短;
(4)业务人员和开发人员在项目开发过程中应该每天共同工作;
(5)以有进取心的人为项目核心,充分支持信任他们;
(6)无论团队内外,面对面的交流始终是最有效的沟通方式;
(7)可用的软件是衡量项目进展的主要指标;
(8)敏捷流程应能保持可持续的发展。 领导, 团队和用户应该能按照目前步调持续合作下去;
(9)只有不断关注技术和设计才能越来越敏捷;
(10)保持简明 - 尽可能简化工作量的技艺 - 极为重要;
(11)只有能自我管理的团队才能创造优秀的架构, 需求和设计;
(12)时时总结如何提高团队效率, 并付诸行动。
- 由Scrum软件开发方法论得出的敏捷步骤:
1.找出完成产品需要做的事情。
2.决定当前的冲刺需要解决的事情。
3.冲刺(同时进行每日立会来进行面对面的交流)
4.得到软件的一个增量版本,发布给用户。
- 敏捷流程的经验教训:
1.敏捷宣言表明的是一些优先级,不必当作圣旨或者教条来争论。
2.Scrum Master不是一个官,而是一个没有行政权力的沟通者,就像微软的PM那样。他/她同时还要在团队中做具体的工作。直接把原来的“经理”变成Scrum Master,大多行不通。
3.一些项目需要很多暗箱操作和政治角力才能搞定,Scrum会把这些矛盾都摆到明处。这有好处,也有风险。
4.在复杂的项目里,让一线团队成员做决定。
5.创业公司的团队其实经常是运行在Scrum的模式中(只不过大家太忙,没工夫论证自己到底有多么Scrum)
6.在Scrum计划阶段的估计不是一个“合同”,领导们不要把它当成一个合同。估计总是不准的。坚持短期的Sprint,这样即使不准的估计也不会有大的损害。
7.不要和管理层谈“流程”,他们只关心“结果”。
8.在大型团队、跨地区的团队,或者复杂项目中,Scrum并没有非常完美的答案,Scrum的创始人也承认这一点。
MSF是微软解决方案框架,MSF的9条基本原则:
1.推动信息共享与沟通,第一个原则,就是所有信息都保留并公开,讨论要包括所有涉及的角色,决定要公开并告知所有人。当然,对牵涉到技术机密、安全性等信息要采取必要的保护措施。
2.为共同的远景而工作,“共同的远景”是指产品的远景。我们做一个产品,不管是应用软件、行业软件,还是通用软件,要明确项目的目标是什么。
3.充分授权和信任,在一个高效的团队中,所有的成员都应该能得到充分的授权,他们有权在职权范围内按照自己的承诺完成任务,同时,他们也充分信任其他同事能实现各自的承诺。
4.各司其职,对项目共同负责,在项目进展的过程中,对于每一项任务,每个人都要明确以下几点。
- Who:谁负责
- What:做什么,具体的执行方案,什么叫做“做好了”
- When:什么时候开始,什么时候结束
- Why:为什么是这样安排(和项目的远景是否吻合),在什么情况下可以变更?
5.交付增量的价值,现在的软件产业,特别是和互联网相关的产业,变化非常快,用户希望产品团队经常提供更新,以适应新的需求。
6.保持敏捷,预期和适应变化,软件工程,唯一不变的是变化。所以干脆别幻想客户的需求会在第一时刻很明确,然后保持不会变。要注意,我们是预期变化,不是期望变化。
7.投资质量,软件开发过程大部分时间花在了解/设计/变更/再了解/再设计的过程中。我们要重视质量,但并不是要不惜一切代价达到最高的质量标准(有人倒吸了一口凉气),因为提高人/过程/工具的质量是要花成本的!我们不是为提高质量而提高质量。我们要讲投资的效率。比如,在做快速原型的过程中,有些部分可以做得粗糙一点。
8.学习所有的经验,在学习过去的经验的同时,也要避免让过去的经验妨碍解决现在的问题 。
9.与顾客合作,在项目开发过程中,要一直保持与客户沟通交流,因为商业价值是由客户说了算的。
- MSF的团队模型:
在MSF团队模型中,任何技术项目都必须达到特定的关键质量目标,才能够被认为是成功的项目。任何一个角色无法实现其目标,都将危及整个项目。因此,每个角色都被认为是同等重要的,重要的决定都要共同作出。
我认为在一个项目结束的时候,每个角色都应该问自己这样的问题——我是否达到了我的质量目标?
- MSF过程模型:
MSF过程模型是从传统的软件开发瀑布模型和螺旋模型发展而来的,它把瀑布模型中基于里程碑的规划优势与螺旋模型中增量迭代的长处结合了起来。
团队用里程碑来检查工作是否结束和同步各个角色的进度,以此来确定当前阶段的目标是否已经实现。此外,里程碑标志着每个阶段的结束,此时团队应该引导成员转移工作的重心,并鼓励队员以新的视角来看待下一阶段的目标。
《构建之法》第五次随笔
MSF,即微软解决方案框架,也就是微软推荐的软件开发方法,大约在1993年,微软在总结了自己产品团队的开发经验和教训,以及微软咨询服务部门的业务经验后推出的。MSF基本的原则:1.推动信息共享与沟通;2.为共同的远... 查看详情
20171103构建之法:现代软件工程-阅读笔记2
本周阅读了《构建之法》第五章。第五章讲了几种软件团队的模式、软件开发流程;邹欣老师的这本书,写得形象生动,第五章用体育运动等团队例子引出软件开发团队的形式。软件团队形式多样,适用于不同的人员与需求。团... 查看详情
构建之法第五次心得
构建之法9、10、11章第九章学习了第九章之后,了解到了在一个项目中项目经理的重要性。生活中,无论什么团队工作,都需要一个领队,来掌控团队项目的发展,以及各个成员工作的分配。PM指ProductManager、ProjectManager、ProgramMan... 查看详情
构建之法现代软件工程(第四次)
构建之法现代软件工程(第四次)本周阅读了《构建之法》第四章和第五章 代码规范: 虽然计算机只关心编译生成的机器码,但是由于现代软件工程一般都是在一个团队里工作,所以代码是要给同事看的,因此... 查看详情
《20171214-构建之法:现代软件工程-阅读笔记2》
第五章 团队和流程软件团队的模式:主治医生模式,明星模式,社区模式,业余剧团模式,秘密团队,特工团队,交响乐模式,爵士乐模式,功能团队模式,官僚模式开发流程:写了再改模式,瀑布模型,瀑布模型的各种变... 查看详情
20170915-构建之法:现代软件工程-阅读笔记
第五章用体育运动等团队例子引出软件开发团队的形式。软件团队形式多样,适用于不同的人员与需求。团队可能会演变的模式有:主治医师模式、明星模式、社区模式、业余剧团模式、秘密团队、特工团队、交响乐团模式、爵... 查看详情
快速阅读《构建之法——现代软件工程》
2017年4月1日,我借阅了《构建之法——现代软件工程》一书,2017年4月13日上午终于快速读完了一遍。书中包含的内容丰富,其中大量的网上链接没有阅读。在我看来,读这本书应该先通览全篇,不能被大量的链接在第一次... 查看详情
《20171005-构建之法:现代软件工程-阅读笔记》
《20171005-构建之法:现代软件工程-阅读笔记》1、软件团队的模式:主治医师模式、明星模式、社区模式、业余剧团模式、秘密团队、特工团队、交响乐团模式、爵士乐模式、功能团队模式和官僚模式2、代码重构(coderefactoring)... 查看详情
读《现代软件工程——构建之法》所获
在以前的学习当中,不明白软件工程是什么,能做什么,有什么特点,如何去做,以及IT行业的真正含义是,开发一个软件有哪些流程,目标等等这些疑问,在阅读《构建之法》之后,得到了一定的解答。1、软件工程是什么?软... 查看详情
构建之法现代软件工程(第二次)
... 构建之法现代软件工程(第二次)单元测试是什么? 单元测试是为了让各个模块的质量能得到稳定的,量化的保证的一种有效解决方案。(VSTS) 好的单元测试的标准是什么?... 查看详情
《构建之法:现代软件工程-阅读笔记》
构建之法:现代软件工程软件=程序+软件工程程序=数据结构+算法软件团队要从需求分析开始把合适的需求梳理出来然后逐步展开后续工作 构建管理源代码管理软件设计软件测试项目管理是软件工程的核心部分软件开发的不... 查看详情
《现代软件工程构建之法》之五点疑惑
...一样,每个人看一书的理解和想法都是不一样的。《现代软件工程构造之法》主要讲述了什么是软件工程、软件工程在社会企业中的典型案例、软件工程师的职业发展。读完《现代软件工程构造之法》我有以下五点疑惑: &nb... 查看详情
20170930-构建之法:现代软件工程-阅读笔记
msf原则:1推动信息共享与沟通(Fosteropencommunications)2为共同的远景而工作(Worktowardasharedvision)3充分授权和信任(Empowerteammembers)4各司其职,对项目共同负责(Establishclearaccountabilityandsharedresponsibility)5重视商业价值(Focusondelivering... 查看详情
《20171030-构建之法:现代软件工程-阅读笔记》
《20171030-构建之法:现代软件工程-阅读笔记》创建单元测试函数的主要步骤:1.设置数据2.使用被测试类型的功能3.比较实际结果和预期的结果 个人开发流程的任务清单:1.估计这个项目需要多少的时间2.需求分析3.生成设计... 查看详情
《20170914-构建之法:现代软件工程-阅读笔记1》
1.软件=程序+软件工程2.软件工程定义:软件工程是系统的、有序的·、可量化的方法应用到软件的开发、运营和维护上的过程。 3.软件工程包含以下领域:(1)软件需求分析 (2)软件设计 ... 查看详情
构建之法:现代软件工程——问题所见
快速浏览《构建之法:现代软件工程》这本教材后,提出的问题如下:(1)IT专业的大学生毕业后转变为职场人员需要些什么?怎样做一个合格的软件工程师?(2)本科期间软件工程学到的知识杂而多,很难让同学有个清晰全... 查看详情
现代软件工程的构建之法
本学期又开设了一门新课程——现代软件工程的构建之法,第一眼看到课本的时候,还傻傻的以为开设了书法课之后才得知它是安卓开发课程的后续。不过还好的是还是郭老师教我们,刚上第一堂课的时候觉得这本书和之前的课... 查看详情
《20171117-构建之法:现代软件工程-阅读笔记》
项目经理: 项目经理做开发和测试之外的所有事情。 1)、ProjectManager: 是团队行政领导,带领大家在项目中工作 通常为团队和外界打交道的唯一代表 对项目的功能有... 查看详情