zoukankan      html  css  js  c++  java
  • 2017.07.07 IT项目管理笔记整理 第10章 敏捷软件开发

    什么是敏捷软件开发方法 1、敏捷方法是一类软件开发流程的泛称; 2、敏捷方法是相对于传统的瀑布式软件过程提出的; 3、敏捷方法可以用敏捷宣言(4条)、敏捷原则(12条)来概括; 4、敏捷原则通过一系列的敏捷实践来体现出来;


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


    敏捷软件开发的方法有:1极限编程 2、软件开发节奏 3、敏捷数据库开发
    4、自适应软件开发 5水晶方法 6、特性驱动开发 7、动态系统开发方法
    8、精益软件开发 9测试驱动开发 10、XBreed 11、敏捷建模 12、Scrum


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


    敏捷四项宣言体现其价值观:1个体与交互胜过过程与工具 2、可以工作的软件胜过面面俱到的文档 3客户合作胜过合同谈判 4、响应变化胜过遵循计划


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


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


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


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

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


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


    敏捷宣言遵从的12条原则 1对我们而言,最重要的事通过今早的和持续交付有价值的软件满足客户需要

    2我们欢迎需求的变化,即使是在后期

    3经常交付可以工作的软件,间隔可以从几个星期到几个月,时间跨度越短越好

    4业务人员和开发人员应该在整个项目过程中始终在一起工作

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

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

    7可以工作的软件是进度的主要度量标准

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

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

    10简单———尽可能减少工作量的艺术至关重要

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

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

    敏捷软件开发的关键成功因素:1、组织文化必须支持协商讨论 2、人员彼此信任 3、人少而精 4、程序员所做决定得到认可 5、环境设施满足成员间快速沟通的需要

    极限编程的原则 1、快速反馈 2、简单性假设 3、逐步修改 4、拥抱变化 5、高质量的工作

    极限编程的行为 1、倾听 2、测试 3、编码 4、设计


    极限编程的实践1、客户作为团队成员 2、用户故事 3、短交付周期
    4、测试驱动的开发方法 5、验收测试 6、结对编程 7、集体所有权
    8、持续集成 9、可持续的开发速度 10、开发的工作空间 11、计划游戏
    12、提倡简单的设计 13、时常对现有代码进行重构 14隐喻


    Scrum工作成果:1、产品积压订单 2、冲刺积压订单 3、障碍积压订单4、燃尽图


    Scrum 形式:1、冲刺规划会议 2、每日站立会议 3、冲刺评审会议4、冲刺回顾会议


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

    3项活动:1、冲刺计划会议 2、每日站立会议 3、冲刺评审会议

    3种工具:1、产品订单 2、冲刺订单 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方法后,系统开发成功的机会大大提高

  • 相关阅读:
    cancel_delayed_work和flush_scheduled_work【转】
    linux中断申请之request_threaded_irq【转】
    VELT-0.1.5开发:使用kgdb调试Linux内核【转】
    iOS_第3方类库_BlurAlertView_GPUImage
    一个轻client,多语言支持,去中心化,自己主动负载,可扩展的实时数据写服务的实现方案讨论
    如果数据文件顺序被打乱,你有办法找回正确的文件把数据库打开吗?
    Hibernate级联操作和载入机制(二) cascade and fetch
    UVA 10557 XYZZY
    Arcgis for javascript map操作addLayer具体解释
    64位CentOS上编译 Hadoop 2.2.0
  • 原文地址:https://www.cnblogs.com/hqutcy/p/7132608.html
Copyright © 2011-2022 走看看