软件工程的引入:Scrum开发框架总结

俗话说,自己写的代码,6个月后也别人的代码……复习!复习!复习!涉及的知识点如下:

  • 软件工程概念
  • 敏捷开发过程scrum

一、什么是软件工程一句话描述。

  软件工程是一门研究性的学科:它用工程化的方法(联系建筑工程……),构建和维护有效的、实用的,和高质量的软件。简单来说,软件工程有三要素:过程+方法+工具,而软件工程是目标软件过程是步骤,方法和工具是辅助。

 

三、常用的软件开发过程(开发框架)都有什么种做简单介绍。

  1、瀑布模型(Waterfall Model):开发过程是通过设计一系列阶段顺序展开的,过程如下:先明确要做的是什么,然后看用户的需求是什么,分析需求之后简单得出一个demo(画出原型图,草图等),然后进行架构分析和设计,总结出设计文档,之后讨论详细的开发细节,而后实现,最后测试……如图:

那么敏捷是不是就是万能的呢过程都不好的,一定澄清几个误区,对敏捷开发的误解:敏捷固然好,但是其他方法不是都没用。遵循敏捷过程的常见软件开发模型有scrum,xp(极限编程)……其中比较流行的是scrum。

 

五、scrum概念

  Scrum是一个框架,顾名思义scrum是橄榄球运动里带球过人,争球的含义,而带球过人需要计划!在球场上,在比赛每段的开始,双方都要摆开阵势,教练和队长都可以参考计划。而在软件开发公司。敏捷方法的每个迭代的开始,团队领导者都应该做好本迭代的计划,尤其是需求条目的优先级排序、选择本迭代的工作、设定必须完成的内容等。且带球过人需要灵活应变!在球场上,哨声响起,尽管队员们努力按照计划推进,但场上瞬息万发,队员不可能实时按照教练指令亦步亦趋地行事,而是靠平时训练中形成的素养见机行事,达成目标,在软件开发公司,在每个迭代开始后,团队领导不可能也不必需要事必躬亲,而是应该由具体执行的人选择如何去做。团队领导要做好的是协调资源、解决困难、提供指导,以达成目标。

  1、敏捷开发的角色

  产品负责人PO,负责产品的需求提炼、条目化,优先级排序,PO直接和用户以及其他关系人交互。scrum过程管理者scrum master,负责维护scrum方法的秩序,并协调解决非技术问题。最后是team团队,自组织的相对扁平化的管理方式进行项目的开发工作。

  scrum团队结构:

  多次迭代发布,传统项目、大型项目

 

  • 确定Sprint目标及长度,半死不活的目标也比啥都没有强。
  • 讲解Story:讲解故事就是要明确故事内容,决定spring包含的故事,使用故事索引卡,哪些故事需要从产品 backlog 拷贝到sprint backlog 中,在sprint中包含多少故事由团队决定 ,而不是产品负责人or其他人
  • 估算时间;估算时间就是对故事的估算,估算的单位——故事点(理想化的人-天),可以使用计划牌

  我们在这里使用以下几种技术:
  –本能反应
  –昨日天气,昨日天气(yesterday’s weather)——查看团队的历史

  –生产率计算:用生产率计算来估算,这项技术包括步骤如下:

–参考实际生产率
–得出投入程度
–得出估算生产率
–计算在不超出估算生产率的情况下可以加入多少故事。

  实际生产率:把上一个 sprint 中完成的所有故事的原始估算加起来,得到的和就是实际生产率

估算生产率:Eg:假设下个Sprint我们有30个人天,则生产率=30×36%=10个故事点

一些其他问题:如果没有历史数据怎么办团队中使用的“默认”投入程度通常是 70%。

   实际过程中我们用的是哪种估算技术我们都是结合起来用

–审视上个sprint的投入程度和实际生产率
–估算一个投入程度
–再进行“直觉反应”的检查

   产品负责人如何对 sprint 放哪些故事产生影响r> 调整优先级

 

  4、scrum每次sprint设计的过程

  不好的,引发风险,产品不能满足客户需求变化,bug率标高,代码质量堪忧

  1. 先界面原型设计,PO主持,那什么是界面原型span>

  界面原型指使用工具根据客户需求及软件分析人员的理解,将头脑中的界面快速的反映到介质上。将需求转化为可视画面以及人与系统的交互!

  界面原型的目的:
?尽早验证需求
?尽早明确不确定性的因素
?方便便沟通交流
?为后续界面设计提供基础

  界面原型的目的是需求验证,不必太纠结细节。

 

  画界面原型的工具;白纸、铅笔、橡皮、橡皮+铅笔+白纸、Axure、MS OFFICE、PS、Viso……工具只是工具,任何一种方法or工具都是为我们开发、生产过程服务的,我们不能成为工具的奴隶。根据实际以及环境选择合适的工具绘制。

  2、数据库设计。这里主要讲解范式——”数据库的三范式

?第一范式
  –关系R中的属性都是不可分割的项.
?第二范式
  –在1N的基础上,每个非主属性完全函数依赖码.
?第三范式
  –在2N的基础上,每一个非主属性既不部分依赖码也不传递依赖码.

在首次每日例会以后,任务板可能会变成这样

 

  还有使用燃尽图(burn down chart):是在项目完成之前,对需要完成的工作的一种可视化表示。Sprint燃尽图和迭代燃尽图,Sprint燃尽图展示了以故事点表示的在本轮迭代中剩余的工作量;

-y:预估剩下的故事点
–x:日期(非工作日除外)
–y/x=生产率

  还有累计故事点图:表明了在每轮迭代结束时总共完成的故事点数。

软件工程的引入:Scrum开发框架总结

  每日燃尽图显示了团队在某轮迭代中的进度,你可以用这个信息判断计划的工作能否在迭代结束时都能完成。

 

相关资源:MinionProfitsTracker:随着市场价格波动,轻松识别最赚钱的奴才[在…

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2016年1月27日
下一篇 2016年2月1日

相关推荐