构建之法学习(6)

本周学习的是第六章——敏捷流程

在软件工程的语境里,“敏捷流程”是一系列价值观和方法论的集合。从2001年开始,一些软件界的专家开始倡导“敏捷”的价值观和流程,他们肯定了流行做法的价值,但是强调敏捷的做法更能带来价值。

现有的做法vs.敏捷的做法

现有的做法     敏捷的做法  
  流程和工具     个人和交流  
  完备的文档     可用的软件  
  为合同谈判     与客户合作  
  执行原定计划     响应变化

1. 尽早并持续地交付有价值的软件以满足顾客需求
2. 敏捷流程欢迎需求的变化,并利用这种变化来提高用户的竞争优势
3. 经常发布可用的软件,发布间隔可以从几周到几个月,能短则短
4. 业务人员和开发人员在项目开发过程中应该每天共同工作
5. 以有进取心的人为项目核心,充分支持信任他们
6. 无论团队内外,面对面的交流始终是最有效的沟通方式
7. 可用的软件是衡量项目进展的主要指标
8. 敏捷流程应能保持可持续的发展。领导、团队和用户应该能按照目前的步调持续合作下去
9. 只有不断关注技术和设计,才能越来越敏捷
10. 保持简明—尽可能简化工作量的技艺—极为重要
11. 只有能自我管理的团队才能创造优秀的架构、需求和设计
12. 时时总结如何提高团队效率,并付诸行动

敏捷的团队

1. 自主管理:以前领导布置了任务,我们实现就可以了,现在要自己挑选任务;每次Sprint结束之后,还要总结不足,提出改进,并且自己要实施这些改进。“自主管理”不等于“没有管理”。
2. 自我组织:以前做好自己的事情就好了,安心下班。现在每个人要联合起来对项目负责,有人工作落后了还要帮助他改进,项目缺少某类资源还要自己顶上去。
3. 多功能型:以前规格说明书由PM来写,测试由测试人员来做,现在每个人都全面负责,自己搞定规格说明书,和别人沟通,同时自己搞定测试。

1. 敏捷宣言表明的是一些优先级,不必当作圣旨或者教条来争论。
2. Scrum Master不是一个官,而是一个没有行政权力的沟通者,就像微软的PM那样。他/她同时还要在团队中做具体的工作。直接把原来的“经理”变成Scrum Master,大多行不通。
3. 一些项目需要很多暗箱操作和政治角力才能搞定,Scrum会把这些矛盾都摆到明处。这有好处,也有风险。
4. 在复杂的项目里,要让一线团队成员做决定。
5. 创业公司的团队其实经常是运行在Scrum 的模式中(只不过大家太忙,没工夫论证自己到底有多么Scrum)。
6. 在Scrum计划阶段的估计不是一个“合同”,领导们不要把它当成一个合同。估计总是不准的。坚持短期的Sprint,这样即使不准的估计也不会有大的损害。
7. 不要和管理层谈“流程”,他们只关心“结果”。
8. 在大型团队、跨地区的团队,或者复杂项目中,Scrum并没有非常完美的答案,Scrum的创始人也承认这一点。

时间: 2024-11-05 19:02:55

构建之法学习(6)的相关文章

构建之法学习总结(1)

构建之法学习总结(1) 从刚开始的自主学习过程再到暑期的开发实践,粗略一算也有一个学期多了,这段时间内收益匪浅.<现代软件工程>这门软件开发的基础课程,说实话这类概念型教材是很枯燥的,但邹老师编写的这本<构建之法>一书给读者带来了更多趣味性,简单易懂,是一本很好的软件工程书. 这本教材对于初学者来说是非常适合的,易懂且涉及全面,软件开发所涉及的方面和方法都有包括在内. 第一章 概论,讲述了软件工程的相关基础概念,为大家解答了软件以及软件工程到底是什么:软件工程和计算机科学的关系:源

构建之法学习(第一章 概论)

初读邹欣老师的<构建之法>,却发现并没有像其它大多数软件工程教材一样偏重理论知识,而是大量引用实例,将实践与理论相结合,一改原本的空洞.乏味,反而更多的是趣味性. 通过对于第一章的自我学习,总结了一些知识点: 1.软件=程序+软件工程 程序=数据结构+算法    程序,就是指的源程序,是可执行代码.软件构建,构建成机器能懂的可执行代码,要有合理的软件架构,软件设计与实现,还要有各种文件和数据来描述各个程序文件之间的依赖关系,编译参数,链接参数等等. 软件工程是把系统的.有序的.可量化的方法应用

构建之法学习(5)

本周学习的是构建之法第五章 团队和流程 团队有共同的特点:1. 团队有一致的集体目标,团队要一起完成这目标.一个团队的成员不一定要同时工作,例如接力赛跑.(王屋村搬砖的"非团队"成员则不然,每个人想搬多少就搬多少,不想干了就结算工钱走人.)2. 团队成员有各自的分工,互相依赖合作,共同完成任务.(王屋村搬砖的"非团队"成员则是各自行动,独立把任务完成,有人不辞而别,对其他的搬砖人无实质影响.)

构建之法学习回顾(二)

学习完构建之法五到八章之后,发现这本书更加贴近于当代,一般的软工教材为了追求更广更久的接受度,在内容上会趋于保守,而这本书不同,许多生硬的知识都得到了新的活力. 在第五章的学习中,主要讲了典型的软件团队模式和开发流程.以及我们也将讨论团队模式和开发效率之间的一些关系. 团队有一致的集体目标,团队要一起完成这个目标.一个团队的成员不一定要同时工作.团队成员有各自的分工,互相依赖合作,共同完成任务.只有我们当做一个团队一样进行工作和学习才能取得更大的成就. 第六章的学习中讲了敏捷流程及其原则,Bac

构建之法学习总结

在学习完构建之法这本书后我收获颇丰,构建之法与其他市面上编程教材最大的不同之处在于这本书没有大段枯燥无味的代码,作者别出心裁地用一个个小故事来启发读者,语言也不失风趣幽默.读完这本书后,我有许多感想,心得与疑问.今后的软件开发维护等大多都是团队合作,有良好的编程风格十分重要,良好的编程风格不仅能为团队中其他成员阅读代码时带来便利,也能极大程度地提升效率,减少错误的发生.今后的软件开发不再是自己写代码来满足自己的兴趣爱好而是要最大程度地满足客户的需求.创新对于一名程序员来说是十分重要的.对于他人的

构建之法 学习笔记01

起初我只是在专业要求的硬性规定下去接触了这本<构建之法>,然后仔细的看下来之后确实让我受益匪浅,让我更切实的了解了这个行业.这本书对我来书最实用的地方在于,在高大上的理论之后会有具体的实例来帮助理解.在介绍方法论的同时,会介绍方法论不适用的场景,介绍方法论在现实中是怎样跑偏--什么叫宏观视角?什么叫最佳实践?什么叫算无遗策?就像画一棵决策树,向哪个分支走,结果会怎么样,清清楚楚,明明白白,让人信服.能让学生了解到工作中接触的种种角色及其想法.诉求,避免"以程序为中心"思考问

构建之法学习(2)

本周学习的内容是第二章 个人技术和流程 2.1单元测试 你的RP是由你的程序质量决定的.软件是由多人合作完成的,不同人员的工作相互有依赖关系.例如,一个人写的模块被其他人写的模块调用.软件的很多错误都来源于程序员对模块功能的误解.疏忽或不了解模块的变化.如何能让自己负责的模块功能定义尽量明确,模块内部的改变不会影响其他模块,而且模块的质量能得到稳定的.量化的保证?单元测试就是一个很有效的解决方案. namespace DemoUser{    public class User    {    

构建之法学习回顾(一)

在学习完构建之法一到四章之后,作为软件工程专业的一名在校生,有了一些全新的认识,作者把软件工程开发的方法和案例讲的清晰有趣而又实用,我们的思维水平也升级了不少. 在第一章的学习中,难免一切事物都要从简单的介绍开始,其中一个让人耳目一新的论点是程序=数据结构+算法. 程序就是一行一行的源代码,他们是建立在数据结构的一些算法.在这些数据之中,我们要构建让他们变成可执行的代码.构建需要一个合理的软件架构,软件的设计和实现,还需要各种文件和数据来描述各个程序文件之间的依赖关系,编译参数,链接参数,这些是

构建之法学习(第七章 MSF)

第七章 MSF MSF(Microsoft Solution Framework)微软解决方案框架: MSF是一套大型系统开发指南,是微软推荐的软件开发方法,它描述了如何用组队模型.过程模型和应用模型来开发Client/Server结构的应用程序,是在微软的工具和技术的基础上建立并开发分布式企业系统应用的参考. 一.MSF 9条基本原则 1.推动信息共享与沟通 --把所有信息都保留并公开,讨论要包括所有涉及的角色,决定要公开并告知所有人. 当然,对牵涉到技术机密.安全性等信息要采取必要的保护措施

构建之法学习(第四章 两人合作)

第四章 两人合作 1.代码规范  1)代码风格规范.主要是文字上的规定,看似表面文章,实际上非常重要. *原则:简明,易读,无二义性 *缩进:4个空格 *行宽:行宽必须限制,可以限定为100字符 *括号:在复杂的条件表达式中,用括号清除地表示逻辑优先级 *断行与空白的{}行:推荐格式如下 if ( condition ) {        DoSomething(); } else {       DoSomethingElse(); } *分行:不要把多条语句放在一行上.并且,不要把多个变量定