敏捷开发的思考

Posted 睿哥茶话会

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了敏捷开发的思考相关的知识,希望对你有一定的参考价值。

从事IT行业的同学对敏捷应该都不会陌生,但到底什么是敏捷?为什么要用敏捷?敏捷能给我们产品研发带来哪些价值?估计不是同学都能说清楚,是否有种只可意会不可言传的玄学风格,其实没有那么复杂,请让我慢慢道来。

        何为敏捷?

敏捷是一种用于开发创新产品和服务的敏捷方式,通过建立产品列表,排列开发产品所需特性的优先级及其他功能列表。在产品列表的指导下,我们总是先开发优先级最高的条目。它是一个用于组织和管理的框架,scrum框架建立在一套价值观、原则和实践之上,在这个框架的基础上,各个组织可以添加相关工程实践特有的实现方式以及实施scrum实践时所采取的特定方法。

        敏捷的起源?

        敏捷 的历史可以追溯到1986年《哈佛商业评论》中的一篇文章,题为“新型新产品开发策略“,通过这篇文章描述了像本田、佳能、富士施乐这样的公司是如何通过可伸缩、基于团队的蜂涌式开发世界一流的产品。文章同时强调授权、自组织团队的重要性。

        为什么要使用敏捷?

         说到为什么要用敏捷,就不得不提不用敏捷有哪些问题,传统的瀑布流开发方式,会带来额外的工作量,研发效率低,客户满意度也很低,显然这不是我们希望的样子。

        自从用了敏捷后,带来了诸多好处,主要包括如下几点:

  1. 客户满意

  2. 投资回报提高

  3. 成本降低

  4. 迅速取得成果

  5. 有信心在复杂的世界中取得成功

  6. 更加愉快

scrum实践如下:

scrum项目中主要角色的工作职责

1、产品负责人

决定开发什么内容,并以什么样的顺序开发。

2、scrum master

帮助每个参与者理解并接受scrum的价值观、原则和实践,对过程提供指导。

3、开发团队

负责产品的交付

敏捷开发有几个形似的名词需要解释下区别:

变更和澄清的区别:

变更是工作或资源的变动,在经济上会造成潜在的严重浪费,中断工作流或在一个冲刺内大量增加工作范围。

澄清是工作和事物当前状态和原理的描述,它不需要对工作进行变动。

迭代和增量的区别:

迭代:承认我们在把事情做对之前可能出错,再把事情做好之前也可能出错,迭代本省是一种有计划的修改的策略,通过多次迭代来改善正在构建的特性,逐步得出一个完善的解决方案。但迭代也有一个较大的缺点,就是在遇到不确定因素时,很难事先确定需要改进多少次。

增量:先构建部分,在构建整体,避免到最后才冒出一个大的、爆发式的活动,集成所有组件和交付整个产品。相反,我们把产品分解成更小的特性,先构建一部分,在从中了解他们在目标使用环境中的具体情形,然后根据更多的理解来做出调整,构建更多的特性。增量开发提供了重要的信息,使我们能够适应开发工作并改变工作方式。增量开发最大的缺点是逐步构建的过程中,有迷失全局的风险。

敏捷开发为什么原则上建议开发周期2-3周,主要有几点好处:

1、需求和特性更容易规划

2、反馈快

3、出现的错误有限

4、投入产出比较高

5、有助于“满血复活”

6、检查点多

冲刺目标

1、Scrum有一条重要的规则:一旦制定冲刺的目标,在冲刺执行开始后就不允许有任何变动对冲刺目标实际产生影响。

2、每个冲刺都可以通过冲刺目标来概括,冲刺目标描述当前冲刺的商业目的和价值,冲刺目标是团队和产品负责人做出共同承诺的基础。

Scrum经典名言:

  1. 想要的不是开始了多少工作,而是完成了多少对客户有价值的工作

  2. 已验证的成果来度量进度,根据信息实时的结果来重新制定计划。

  3. 我们的目标不是满足某个计划或某个事先认为事情如何进展的预言,相反,我们的目标是快速地重新制定计划并根据开发过程中不断出现的、具有重要经济价值的信息进行调整。

  4. 计划驱动以文档为中心,Scrum以价值为中心。

  5. 敏捷开发从一开始就以质量为魂。


以上是关于敏捷开发的思考的主要内容,如果未能解决你的问题,请参考以下文章

对敏捷开发的一些思考

关于敏捷开发本质的一点思考

敏捷开发及运维的思考与落地

阅读思考——被误用的敏捷和阻碍程序员成长的坏习惯

敏捷开发的根本矛盾是什么?从业十余年的工程师在思考

GXP环境下,对敏捷开发及验证的思考