软件过程与项目管理(第六周作业)

敏捷流程(第6章)

敏捷开发:敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

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

敏捷的步骤:

第一步:找出完成产品需要做的事情--Product Backlog

产品负责人领导大家对于待解决问题中的条目进行分析、细化、理清相互关系估计工作量等工作;每一项工作的时间估计单位可为“天”。

第二步:决定当前冲刺需要解决的事情--Sprint Backlog

整个产品的实现被划分为几个互相联系的冲刺,产品订单上的任务进一步被细化,单位被分解为小时,并附上一个相对难度系数,订单上的任务团队成员可以根据自己的情况来认领。

第三步:冲刺--Sprint

在冲刺阶段,外部人士不能直接打扰团队成员。一切交流只能通过Scrum Master来完成,有任何需求的改变都留待冲刺结束后再讨论。

冲刺期间,团队通过每日例会来进行面对面的交流,大家依次报告:我昨天做了啥、我今天要做啥、我碰到了哪些问题。

第四步:得到软件的一个增量版本,发布给用户;然后在此基础上又进一步计划增量的新功能和改进。

  敏捷(Agile) 计划驱动(Plan-driven) 形式化的开发方法(Formal Method)
产品可靠性要求 不高,容忍经常出错 必须有较高的可靠性 有极高的可靠性和质量要求
需求变化 经常变化 不经常变化 固定的需求,需求可以建模
团队人员数量 不多 较多 不多
人员经验 有资深程序员带队 以中层技术人员为主 资深专家
公司文化 鼓励变化,行业充满变数 崇尚秩序,按时交付 精益求精
实际例子 写一个微博网站 开发下一版本的办公软件,给商业用户开发软件 开发底层正则表达式解析模块;科学计算;复杂系统的核心组件
用错方式的后果 用敏捷的方法开发登月火箭控制程序,前N批宇航员都挂了 用敏捷方法,商业用户未必受得了两周一次更新的频率 敏捷方法的大部分招数都和这类用户无关,用户关心的是:把可靠性提高到99.999%,不要让微小的错误把系统搞崩溃
原文地址:https://www.cnblogs.com/dengyaoye/p/5373090.html