2017.07.07 IT项目管理笔记整理 第10章 敏捷软件开发

什么是敏捷软件开发方法 一、敏捷方法是一类软件开发流程的泛称; 二、敏捷方法是相对于传统的瀑布式软件过程提出的; 三、敏捷方法能够用敏捷宣言(4条)、敏捷原则(12条)来归纳; 四、敏捷原则经过一系列的敏捷实践来体现出来;程序员


敏捷开发软件的特色:1敏捷软件开发更强调程序员与业务专家、用户之间的紧密合做,面对面的沟通,认为这种方式更有效 2可以很好地根据需求的变化编写代码 3频繁交付新的软件版本 4采用紧凑和自组织的软件开发团队 5更注重个体在软件开发中的做用数据库


敏捷软件开发的方法有:1极限编程 二、软件开发节奏 三、敏捷数据库开发
四、自适应软件开发 5水晶方法 六、特性驱动开发 七、动态系统开发方法
八、精益软件开发 9测试驱动开发 十、XBreed 十一、敏捷建模 十二、Scrum编程


敏捷开发的核心思想是:以人为本,适应变化架构


敏捷四项宣言体现其价值观:1个体与交互赛过过程与工具 二、能够工做的软件赛过面面俱到的文档 3客户合做赛过合同谈判 四、响应变化赛过遵循计划框架


敏捷方法的关键实践:一、增量迭代 二、测试驱动开发TDD
3持续集成 4面对面交流 5其它重要实践工具


传统项目管理:事先对整个项目进行估计、计划、分析 ;反对变动; 变动须要从新估计、从新规划 ;严密的合同来减小风险, 若是改变需求要走 CR 流程. ;项目做为一个“黑盒子” ,对客户与供应商的可视性差. ;文档和计划驱动的方法.;软件交付时间晚, 意识到风险的时间晚. ;WBS,甘特图,关键路径分析 开发工具


敏捷项目管理:事先对整个项目作一个粗略的估计,每一次迭代都有详细的计划. ;拥抱(接受)变化, 客户价值驱动开发. ;信任和赋予权力;合约使变动变得简单,增长价值. ;客户和开发人员之间是紧密的连续的合做关系 ;每次迭代都产生可交付的软件 ;专一于交付软件. ;第一次迭代就可交付能工做的版本,风险发现的早. 测试


瀑布模型:流程固定、没有弹性;团队互动困难;若需求未被彻底了解,或是可能须要较大变动,瀑布型不适合 编码

敏捷方法: 完整地开发可在少数几周或几月内可被测试的功能;强调及早交付对业主有价值的可执行功能 ;在整个生命周期中持续地改善、增长将来的功能 spa


敏捷方法的关键实践:增量迭代;测试驱动开发TDD;持续集成;面对面交流;其它重要实践。需求,设计阶段的问题;开发,维护阶段的问题Scrum,不是一种方法,也不是一项构建产品的技术,而是一个框架,在这个框架里能够应用各类过程和技术,Scrum是英语中橄榄球运动的一个专业术语,表示“争球”


敏捷宣言听从的12条原则 1对咱们而言,最重要的事经过今早的和持续交付有价值的软件知足客户须要

2咱们欢迎需求的变化,即便是在后期

3常常交付能够工做的软件,间隔能够从几个星期到几个月,时间跨度越短越好

4业务人员和开发人员应该在整个项目过程当中始终在一块儿工做

5围绕斗志高昂的人进行软件开发,给开发者提供适宜的环境,知足他们的须要,并相信他们可以完成任务

6在小组开发中最有效率也最有效果的信息传达方式是面对面的交谈

7能够工做的软件是进度的主要度量标准

8敏捷过程提倡可持续开发

9不断追求卓越的技术和良好的设计将有助于提升敏捷性

10简单———尽量减小工做量的艺术相当重要

11最好的构架、需求和设计都源自于自组织的团队

12每一个必定时间,团队就要总结如何更有效率,而后相应地调整本身的行为

 

敏捷软件开发的关键成功因素:一、组织文化必须支持协商讨论 二、人员彼此信任 三、人少而精 四、程序员所作决定获得承认 五、环境设施知足成员间快速沟通的须要

 

极限编程的原则 一、快速反馈 二、简单性假设 三、逐步修改 四、拥抱变化 五、高质量的工做

 

极限编程的行为 一、倾听 二、测试 三、编码 四、设计


极限编程的实践一、客户做为团队成员 二、用户故事 三、短交付周期
四、测试驱动的开发方法 五、验收测试 六、结对编程 七、集体全部权
八、持续集成 九、可持续的开发速度 十、开发的工做空间 十一、计划游戏
十二、提倡简单的设计 1三、时常对现有代码进行重构 14隐喻


Scrum工做成果:一、产品积压订单 二、冲刺积压订单 三、障碍积压订单四、燃尽图


Scrum 形式:一、冲刺规划会议 二、每日站立会议 三、冲刺评审会议四、冲刺回顾会议


Scrum的3个角色,3项活动,3种工具,1个冲刺(P329具体说明)
3个角色:一、产品负责人 二、Scrum主管 三、Scrum团队

3项活动:一、冲刺计划会议 二、每日站立会议 三、冲刺评审会议

3种工具:一、产品订单 二、冲刺订单 三、燃烧进度表
1个冲刺:一个时间周期,一般在2-4周之间,开发团队会在此期间完成所承诺的一个冲刺订单的开发

 

Scrum特有的措施 1频繁的风险评估和应对措施

2经过每日站立会议,让计划和模块开发保持透明,让每个人知道谁负责什么,以及何时完成

3以冲刺评审会为主要形式,频繁召开利益全部人会议,以跟踪项目进展,保持项目开发的节奏

4没有问题会被藏在地毯下


Scrum 项目开始时要作些什么: 1计划 2系统架构设计 3确认开发工具和基础设施
4设计开发原型系统 5组织对设计的评审会议


产品负责人(Product Owner)的职责: 1肯定产品的功能。 2决定发布的日期和发布内容。 3为产品的profitability of the product (ROI)负责。 4根据市场价值肯定功能优先级。 5每一个Sprint,根据须要调整功能和优先级(每一个Sprint开始前调整)。 6接受或拒绝接受开发团队的工做成果。


Scrum导师必需要: 1保证团队资源彻底可被利用而且所有是高产出的。 2保证各个角色及职责的良好协做。 3解决团队开发中的障碍。 4作为团队和外部的接口,屏蔽外界对团队成员的干扰。 5保证开发过程按计划进行,组织 Daily Scrum, Sprint Review and Sprint Planning meetings。


Scrum较传统开发模型的优势: Scrum模型一个显著的特色就是响应变化,他可以尽快地响应变化,传统的软件开发模型会随系统因素的复杂度增长,项目成功的可能性迅速下降,而使用Scrum方法后,系统开发成功的机会大大提升

相关文章
相关标签/搜索