`

《精益和敏捷开发》读书笔记

阅读更多

对精益不了解, 敏捷开发则是一个到处都在谈论的话题, 我只是跳着看了一些在敏捷方面的做法和观点, 而且主要是scrum相关的, 当然本书的敏捷开发基本上可以等同于scrum. 算是增加了一层对scrum新的认识. 书不敢说是一本好书, 只能各取所需吧.


======================我是读书笔记的分割线==================

如果在同一个办公区域, 你记不清所有人的名字, 那么这就是一个大型团队了

产生非最佳决策的原因是错误的假设和不充分的理由

守破离法则
第一步, 守, 遵守规则直到充分并将其视为习惯性的事.
第二步, 破, 对规则进行反思, 寻找规则的例外并"打破"规则.
第三步, 离, 在精通规则之后就会基本脱离规则, 抓住精髓和深层能量.

团队定期反思如何使自己变得更高效, 然后根据反思结果调整行动.

5个为什么: 帮助培养解决问题和分析根源的能力.

问题:开发人员没有进行代码重构来保证代码的可维护性
为什么? 我们对加快工作速度感到有压力
为什么有压力? 因为我们工作速度慢
为什么工作速度慢? 因为代码很复杂, 很难开展工作.
....

在scrum中, 优先准则是选择可以提前实现和测试那些具有不确定性或有风险的事物. 因为不可预测的事物可测试性比较低, 所以反馈的价值比较高.可预测的事物不能给我们带来更多的经验.

工作有节奏可以提高预测, 计划和协调的能力.

scrum:五项价值
承诺:愿意对目标做出承诺
scrum的根源是自组织的团队, 在sprint计划会议上, 团队自己从产品负责人给出的清单中, 选出要做的事情. 没有一项工作是强加给团队的, 没有一个团队被告知要怎么做事. 这样才能做到真正的承诺, 如果你自己可以决定, 在两周或者4周的迭代中能够合情合理的做完哪些工作, 如果你自己能决定完成这些工作, 你才会更愿意做出承诺, 也才能有能力实现诺言

专注:做你的工作, 把你的心思和能力都用到你所承诺的工作上去, 不管任何其他的东西.
不完全参与意味着不完整的结果

开放:scurm把项目中的一切都开放给每一个人看.scrum不存在秘密会议或是隐蔽的项目管理信息.

尊重:每个人都有他独特的背景和经验, 我们应当尊重组成这个团队不同的个体.
它要求团队有一个共同的, 清晰的目标(当前迭代要完成的特性);

勇气: 有勇气行使scrum的规则去改变组织, 或者是一个自组织团队发挥自己的主动权. 不管是个人工作还是团队工作将要前功尽弃的时候, 要有勇气把现状完全公开.

scrum团队成员除了"团队成员"之外没有其他特别的称谓. 团队中不会强调"开发人员"跟"测试人员"称呼上的不同. 团队的目标是鼓励团队学习更多的技能和"整个团队进行完整特性的开发."

如果没有接触过大量不同的代码, 这就会阻止他们学习优秀设计的机会

当我们每时每刻看到这种复杂模糊的1万多行的代码时, 它们开始很自然地变得熟悉和"清楚", 由于长期的接触, 你就不觉得它们有多复杂, 也不会因此一筹莫展, 更没有想深入改进它们的动力

对卓越技术和良好设计的不断追求将有助于增强敏捷能力.

无法排除障碍的最常见的原因是"这是我们一直以来的工作方式", "我们不会改变的, 我们已经投入很多"

scrum是揭露组织问题的简易框架

scrum是理解容易但很难使用的实践方法, 因为它使组织的所有弱点彻底曝光.

好的想法和建议随着开发的进展不断涌现, 如果整个开发过程不允许变化的产生, 那么将会遏制创新.

scrummaster帮助产品团队学习和应用scrum以获得商业价值.

scrum会使许多干扰团队与产品负责人效率的障碍和危险呈现出来, 这就需要由ScrumMaster全心全意协助铲除这些障碍, 否则团队或产品负责人将会感觉到取得成功非常难.

优秀的ScrumMaster可以从任何背景和学科产生出来.

与项目经理不同, ScrumMaster不是简单的分配工作, 他们协助过程顺利进行, 并支持团队自组织和自管理.

scrum重要实践原则: 团队决定承诺完成多少任务, 而不是产品负责人安排工作, 这就使得任务的交付更可靠, 团队根据自己的分析和计划来承诺工作量, 而不是其他人"安排"交给他们的工作量

每日例会不是向经理汇报工作进度, 而是自组织的团队互相交流, 某位团队成员会将障碍内容记录下来, ScrumMaster负责协助团队铲除障碍

每日例会不允许讨论

通常最好不允许经理或其他管理层参加每日例会, 这样使团队感受到"被监控", 在压力下汇报每日的进程, 而且抑制了问题的汇报. 这些会消弱团队的自组织能力. 如果能协助团队解决问题, 那么参加会议会更有意义.

如果在sprint计划会议中还包含很多问题, 疑惑, 新的发现, 就说明团队没有进行提炼研讨会(或者会议没有达到目的)

scrum的核心原则之一是sprint的周期不可以延长: 它结束于指定时间, 不论团队是否完成承诺的任务.

固定的周期可以帮助团队了解他们的实际工作效率, 以便进行正确的估算和制定长期的发布计划. 同时也可以帮助团队保持工作节奏.

scrum要求准备演示的时间不超过30分钟, 否则就说明团队的工作出了问题.

scrum回顾会议的最简单方法就是在白板上画出两栏: 分别注明"哪些工作顺利", "哪些工作可以做的更好", 然后让与会者轮流在每一栏下添加条目. 当出现重复条目时, 可以在该条目旁边记正字累计. 并计划在下一个sprint中尝试少量的变更, 改进, 并在下一个sprint回顾会议上评审结果.

彻底解决问题的第一步就是让问题显现出来, scrum对此正是有强大的促进作用.

产品负责人和团队应该在每个sprint都进行产品待办事项列表的提炼, 从而不断的为未来工作做准备.

没有人可以预知未来, 因此工作的重点就应该放在创建和调整计划上来, 以给予发布一个总的方向, 并明确如何对决策做出权衡(范围vs.计划).

scrum并不解决实际问题, 它只是使问题显现出来, 并提供人们以短周期和小范围改进尝试来探求解决问题的框架.

一个错误的做法: 让scrum挑战团队固有习惯的时候, 他们会改变scrum, 而不是改变自身的问题.
分享到:
评论
1 楼 tomfish88 2012-05-02  
百度到你的文章一定要拜读

相关推荐

    [免费PDF高清]精益和敏捷开发大型应用指南之读书笔记.rar

    通过阅读这本书和相关的读书笔记,开发者不仅可以学习如何将精益和敏捷理念应用于大型应用的开发中,还能了解到如何优化团队协作、提高开发效率和软件质量。对于任何想要提升软件开发实践的人来说,这些都是宝贵的...

    精益和敏捷开发大型应用指南 之读书笔记

    将精益和敏捷开发大型应用指南的精华部分提取出来,并写成PPT。

    精益-敏捷理论在产品开发项目中的应用(一).pdf

    精益-敏捷理论在产品开发项目中的应用 精益-敏捷理论是供应链管理中的一种思想原理,旨在平衡大规模生产的经济效益和客户化定制的快速响应,以达到既有效降低生产流通成本,又提升客户满意度。该理论的应用在产品...

    敏捷开发:精益思想与软件开发之精益工厂之旅

    ### 敏捷开发:精益思想与软件开发之精益工厂之旅 #### 一、精益思想概述 精益思想源于制造业,特别是丰田生产系统(Toyota Production System, TPS),它强调通过不断减少浪费来提高效率和质量。在《精益思想与软件...

    精益管理读书笔记

    ### 精益管理读书笔记知识点总结 #### 第八章:采用精益工程实践 ##### 8.1 持续交付基础 - **定义**:持续交付是一种软件开发实践,目的是确保软件产品可以在任何时间点发布到生产环境中,且不会出现重大错误。这...

    敏捷开发知识体系

    《敏捷开发知识体系》面向敏捷实践者学习敏捷知识和敏捷软件开发企业进行敏捷转型的需要,旨在帮助个人更快地掌握敏捷开发知识,帮助企业更好地实施敏捷转型。主要内容包括:敏捷开发的哲学理念、价值观、敏捷开发...

    敏捷开发知识体系--高清版.pdf

    - Scrum是一种管理产品开发过程的框架,它定义了角色(产品负责人、Scrum Master和开发团队)、活动(Sprint、日常站会、评审会议和回顾会议)和工件(产品待办事项、Sprint待办事项和增量)。 - 极限编程(XP)则...

    Devops与精益敏捷开发实现.pptx

    Devops与精益敏捷开发实现.pptx

    精益创业实操方法论读书笔记收集.pdf

    精益创业实操方法论读书笔记收集 精益创业是一种新的创业方法论,它强调通过快速迭代和试错来开发和完善商业模式,而不是传统的“火箭发射式”创业思维。精益创业认为,基础参数极难度量、未来不可估计、用户痛点和...

    精益敏捷开发的软件架构设计

    在精益敏捷开发中, 如何进行软件架构设计, 一直是个有趣的话题◦ 此份材料主要便是在探讨, 在精益敏捷开发中运用简单, 轻量级, 视觉化的工具, 使得精益敏捷开发的团队成员, 可共同的协作, 以更高效的方式, 设计出...

    敏捷开发管理试题及答案.docx

    敏捷开发是一种快速响应变化、强调灵活性和协作性的软件开发方法论。相较于传统的瀑布模型,敏捷方法更适合需求频繁变动或在项目初期需求不明确的情况。它提倡以迭代和增量的方式进行开发,通过短期的开发周期(迭代...

    软件项目管理论文:敏捷在软件开发中的应用

    精益生产从广义上来给敏捷开发下定义,敏捷开发(agiledevelopment)是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行...

    精益开发,精益的由来

    这些特点在软件开发中表现为以用户需求为导向、强调质量控制、团队合作以及同步进行设计和开发。 精益开发的成功在于它不是一个孤立的工具或实践,而是一个全面的管理体系,它融入了企业的文化和运营环境。通过建立...

    敏捷开发与测试

    敏捷开发方法包括多种形式,例如极限编程(XP)、Scrum、敏捷建模(AM)、自适应软件开发(ASD)、水晶方法(Crystal)、特性驱动开发(FDD)、动态系统开发方法(DSDM)、精益软件开发(Lean)和Xbreed等。每种敏捷...

    中级产品方法论(九):精益创业,敏捷开发 .doc

    【中级产品方法论(九):精益创业,敏捷开发】主要探讨了在产品开发过程中采用精益创业和敏捷开发策略的重要性。精益创业强调有效利用有限资源,通过最小化可行产品(MVP)快速试错和迭代,以找到正确的产品方向。...

    精益软件开发管理之道1

    精益软件开发管理之道是软件行业中一种高效的开发管理方法论,旨在减少浪费,提高效率,确保软件项目的质量和价值。这一理念源自于制造业中的精益生产理论,它强调通过不断优化流程,消除不必要的步骤,来提高整体...

    敏捷开发的艺术.pdf

    Scrum团队通常包括产品负责人、ScrumMaster和开发团队。 4. 敏捷规划:敏捷开发中的计划制定是一个动态和灵活的过程。它包括产品路线图、发布计划和迭代计划。敏捷规划强调适应性和持续调整计划以反映最新的项目...

    敏捷开发知识体系.pdf

    管理实践如Scrum、极限编程(XP)、OpenUP、精益开发和动态系统开发(DSDM)等,它们提供了指导团队执行敏捷开发的框架和流程。而工程实践则涵盖了项目管理、需求管理、架构、开发、测试和变更管理等多个方面,如...

    敏捷开发agile SAP敏捷精益转型介绍 scrum_cn

    open_house_2011_agenda practice-agile-developer-minibook-by-infoq SAP敏捷精益转型介绍 Scrum_Guide scrum_primer_cn Scrum培训教材(BY_Uperform) 火星人敏捷开发手册_2012-06-30 The_Lean_Startup

    何勉-规模化精益敏捷实施.pdf

    规模化精益敏捷实施是将精益敏捷开发方法应用于大型组织和复杂系统的方法论。它强调在保持敏捷实践的同时,如何有效扩展这些实践以满足大型企业的需求。以下是几个关键知识点: 1. 敏捷开发方法核心原则:敏捷开发...

Global site tag (gtag.js) - Google Analytics