《精益-敏捷 项目管理》学习笔记(一)
1.敏捷是一套价值观和信仰体系,敏捷是一套事件理论
2.Scrum(冲刺),具有自住址和跨只能特点的团队在迭代开发中的过程
3.XP(极限编程),团队围绕一软件工程为核心的迭代开发过程,最为常见的是测试驱动开发、配对编程、持续集成
4.指导原则,以商业利益为驱动,为企业客户提供最大价值,交付的价值(软件)能为企业带来最大的利益回报
5.敏捷开发者宣言
我们一直在事件中探寻更好的软件开发方法,同时也身体力行地去帮助他人。由此我们建立了如下价值观:
个体互动 ? ? ? ? ?胜过 ? ?过程和工具
可工作的软件 ? ?胜过 ? ?详尽的文档
客户合作 ? ? ? ? ?胜过 ? ?合同谈判
响应变化 ? ? ? ? ?胜过 ? ?遵循计划
尽管右列各项有价值,但是我们更重视左侧的各项价值。
?
6.敏捷宣言的12条原则
(1)我们最重要的目标是通过持续不断地以及尽早交付有价值的软件使客户满意;
(2)欣然面对需求变化,即使在开发后期也一样,通过敏捷过程掌握变化以维护客户的竞争有事;
(3)经常交付可工作的软件(迭代周期,几个星期或一个月),倾向于采用较短的周期;
(4)业务人员和开发人员必须紧密合作,项目中每天都部例外;
(5)激发个体斗志,以他们为核心构建项目,他们提供所需的环境和支持,辅以信任,从而实现目标;
(6)不论团队内部还是外部,传递信息效果最好、效率最高的方式是面对面交流;
(7)可工作的软件是进度的首要度量标准;
(8)敏捷过程倡导可持续开发。发起人、开发人员和用户要保持一致;
(9)坚持不写地追求技术卓越和良好设计,敏捷能力由此增强;
(10)以简洁为本,努力减少不必要的工作量;
(11)最好的架构、需求和设计出自自由组织的团队;
(12)团队定期反思和如何提高效率,并以此调整自身行为。
?
7.原则是一种综合的基本法则、学说或假设
?
8.范式是假设、价值观、信念和事件的组合,它定义了如何评估实现状况,如何看待实际形式
?
9.软件开发人员都是实用主义者
?
10.原则“消除浪费”
?
11.回顾性实验,通过查询历史记录来验证或推翻目前提出的假设。
?
12.敏捷的核心理念
(1)项目开始之初,不可能知道所有的需求去开发合适的软件产品;
(2)项目开始之初,客户无须精确地描述他的需求,他可以在项目进展过程中进一步澄清;
(3)尽可能地经常接受客户反馈,给开发人员尽可能多的反馈,以指导他们工作;
(4)可工作的编码是最精确的反馈方式,能够有效地反馈开发的进展情况;
(5)各个小组在一起协同合作,是成员间信息的延误和损失最小化;
(6)将测试移动到开发周期之前,改进开发人员、客户和测试人员之间的交互,借此进一步改善代码质量;
(7)管理层可以设定开发工作的期望值,但不要求具体如何实现;
(8)关对每次实施一个项目,从而改善团队的生产率。
?
13.精益的核心理念
(1)大多数错误是有系统内部某个人的工作造成的,而不是这个人本身的愿意导致的;
(2)做这项工作的员工是理解和改进系统最好的人选;
(3)对等模式是一个不被接受的过程;
(4)着眼于整个项目完成过程比试图确保每步能可能高效率更加有用;
(5)我们对成功的衡量标准必须与时间总量相关,从刚开始构思到最终客户交付有价值的产品为止;
(6)管理层必须余团队一起协同合作改进工作方式、提高工作效率;
(7)把工作量限制在团队的工作能力范围之内,团队的工作就是最有效率的;
(8)通过在过程中最小化每次的工作量来提高团队的工作效率;
(9)评估步骤时我们必须着眼于全局优化而不仅仅是改进过程的某个步骤;
(10)减少浪费,这些都是软件开发中必须遵循的原则。
?
14.实践行为
(1)企业重视产品组合管理和团队合作而非只关注团队,因此需要提供一种工作方式去取代Scrum-of-Scrums;
(2)重视产品交付价值而非项目本身;
(3)管理着眼于全局需求,并将它们与需求分析和产品设计结合在一起;
(4)代替以手机素材为发布目标的发布计划,推动以商业价值为目标的发布计划。
?
?