敏捷开发思想及scrum实践

author author     2022-09-25     612

关键词:

导语:现在每当直接或间接带一支研发团队(注:软件方向,复杂的硬件开发建议使用IPD思想)我都会给大家做一次敏捷思想和实践的培训。作为一个有近10年的开发编码工作经验的资深程序员,作为一个管理者,作为一个还算转型成功的创业者,我一直有种初心

  • 希望所有研发人员能够敢于并且会表达自己,让更多的人了解自己;

  • 希望所有的研发人员不仅仅是机械的写代码,也能洞悉市场、了解用户,让自己的产出能够适配用户和市场的需求,这何尝不是一种成就感;

  • 希望所有的研发人员不再受困于狭窄的职场方向,而是有更多可能转型产品、市场、管理

我认为敏捷开发的实践带给了我这些,工作的收益、内心的释放,转型的机遇以及最重要的自信,也想分享给大家。



敏捷开发思想


技术分享

  • 所有人都可以从字面上理解敏捷代表着“快”;

  • 呆伯特老板的理解:没有什么计划或者文档,直接开始写代码......

  • 很多业内人士的理解:迭代开发。

以上理解不能算是错,但都是盲人摸象式的理解。我们先看看几种常见的开发模式:

  • 计划驱动的瀑布式开发;

  • 逐步完善的迭代开发;

  • 风险驱动的螺旋式开发;

  • 价值驱动的敏捷开发;

除却外包项目常采用的瀑布式开发外,在很多人印象里仿佛剩下的三种开发方式都该是敏捷开发,其实这里有个文字游戏,就是“***的”这个定语,敏捷开发是由用户价值(用户的需求)驱动,这才是区分标准,这种对核心的强调,是在提醒我们需要最重视的是什么。至于用户价值的意义,不言而喻——如果我们做出的东西并不是用户需要的,那又有什么意义?在敏捷开发的过程中其实既有螺旋式开发的思维,也有迭代式开发的流程,甚至有计划式开发的阶段。

敏捷宣言—价值观

技术分享

很多“保守力量”反对敏捷开发的原因就是说敏捷不注重计划或者是文档等等。这里的文字游戏就是“胜过”二字,并不是没有,而是取舍侧重的分别。总结如下:

“自组织团队与客户紧密协作,通过高度迭代式、增量式的软件开发过程响应变化,并在每次迭代结束时交付经过编码与测试的有价值的软件。”

                                                                   胜过

“与客户确定合同后在初期制定并遵循基于活动的完整计划,在重型过程和工具指导下,通过完成大量文档进行知识传递,最后交付需求。”

敏捷开发之 12 条敏捷原则

 1、我们最优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意。          

注:客户的期望值管理

 2、即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势。

注:欢迎变更需求但不是意味着随时变更,在一个计划节点内要保证需求不变更

 3、经常性的交付可以工作的软件,交付的间隔可以从几周到几个月,交付的时间间隔越短越好。                                                                                                     

注:比如scrum,节点周期往往设置为2到4周

 4、在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。  

注:研发人员对业务的理解可以使产品更具备可用性甚至用户体验突出,也加深不同团队的交融理解

 5、围绕被激励起来的个来构建项目。给他们提供所需要的环境和支持,并且信任他们能够完成工作。                                                                                                            

注:比如针对需求和实现性大家的头脑风暴,鼓励每个人发言,比如任务采取主动领取,而不是被动分配

 6、在团队内部,最具有效果并且富有效率的传递信息的方法,就是面对面的交谈。  

注:面对面交谈不但效率高,而且有利于清晰透彻的了解对方的意图

7、工作的软件是首要进度度量标准。                                                                          

注:每一个节点都要保证软件是可用的,而不是99%的完成但不可用

 8、敏捷过程提可持续的开发速度。责任人、开发者和用户应该能够保持一个长期的、恒定的开发速度。

注:scrum节点就如同心跳一般

 9、不断地关注优秀的技能和好的设计会增强敏捷能力。

注:倡导每个人要有自主学习能力,建立学习型组织

10、简单----使未完成的工作最大化的艺术----是根本的。

注:大道至简 (豆瓣)UNIX编程艺术 (豆瓣)

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

注:《失控》中的去中心化,生物般的进化

12、每隔一定时间,团队会在如何才能更有效地工作方面进行反省,然后相应地对自己的行为进行调整

注:“实践——反省——修正——成长......”的正循环

基于以上这些原则和关键词,抽出几个敏捷开发的核心:“价值”、“客户”、“人”、“团队”。



敏捷实践之Scrum

大家要明白一个区别,敏捷开发是一种思想,下面来讲述一下承载这种思想的其中一种开发过程Scrum。

技术分享


从这张开发过程使用的统计图中可以看出Scrum的流行程度。Scrum本身并不是方法论,它只是一个框架,它只定义了高层次的管理流程,如下图示

技术分享

它并不涉及具体开发方法或者人员的有效沟通技巧等。这些没有涉及的领域需要同其他理论和技能互为补充,以确保项目的成功。

技术分享

技术分享

可以看到Scrum的实施过程是建立在敏捷开发思想12原则基础上的。反过来,对流程的实施也可以加深大家对敏捷原则的理解。

Scrum兼有的价值观

  • 核心价值观:承诺、专注、公开、敬重和勇气

  • 提倡的原则:自我管理、涌现机制、可视性和评估/适应循环

Scrum的要点提炼

  • Backlog——明晰商业价值,场景化用户故事

  • 任务估算——精细,可控,准确

  • 会议——专注,高效,开放

  • 目标——清晰,可达成


敏捷开发的书籍推荐

硝烟中的Scrum和XP 》    

高效程序员的45个习惯


本文出自 “永远的朋友” 博客,请务必保留此出处http://yaocoder.blog.51cto.com/2668309/1977245

西安用leangoo做scrum敏捷开发实战课(免费)

Leangoo诚邀您参加2017《用leangoo做Scrum敏捷开发》实战课!在此实战课上,您不仅可以听到一线资深敏捷顾问带来的敏捷落地实践经验,还可以和众多企业同仁共同探讨敏捷实践过程中的酸甜苦辣。 「西安站」现正火热报名中.... 查看详情

scrum敏捷工具leangoo企业实践分享

 首次了解到Leangoo,大概是2年前。之前已经有过比较多的Scrum实践,当时在前司开发了一个看板的系统,离开后在新团队没有类似的工具,有点不便,就想找找有没有这样的工具!Google一下后就找到了Leangoo,用了一下,和之... 查看详情

leangoo敏捷实践企业案例,scrum工具

首次了解到Leangoo,大概是2年前。之前已经有过比较多的Scrum实践,当时在前司开发了一个看板的系统,离开后在新团队没有类似的工具,有点不便,就想找找有没有这样的工具!Google一下后就找到了Leangoo,用了一下,和之前自... 查看详情

结对编程第一阶段

1)查阅相关资料加深对敏捷开发和结对编程的理解;敏捷开发(Agile)是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的... 查看详情

巧用scrum与kanban

...自网易云社区文屈鹏飞在互联网行业的项目管理实践中,敏捷和精益一直是大家所提倡的思想,其中Scrum和Kanban方法作为即敏捷又精益的典型代表,许多PM都在研究,笔者近期也在学习和实施Scrum和Kanban方法,有些感触拿出来与大... 查看详情

scrum敏捷软件开发都有哪些要素?

参考技术A根据思艾特近年来使用scrum敏捷软件开发模式的经验,开发过程中涉及的要素主要有以下几种:Scrum团队:产品负责人+scrum团队和ScrumMaster。Scrum工件:产品Backlog、SprintBacklog、燃尽图。Scrum会议:Sprint计划会议、每日Scrum... 查看详情

scrum学习以及团队分工实践

1.scrum—敏捷开发学习心得:  查了一些资料,总结起来的话,就是以下这些:  首先我们需要确定的一点是:scrum是什么?它是一种迭代式增量软件开发过程,应用于敏捷开发。  什么是迭代式呢?就是一层一层更迭代换... 查看详情

scrum方法

 Scrum的由来—由瀑布等传统开发模型的弊端提出敏捷开发方法 瀑布模型是由Royce在1970年提出的,他把大型软件的开发分为分析与编程.瀑布模型的弊端:   1).强调文档性:导致了往往要到开发的后期,才能看到软件的模样.为软件的... 查看详情

scrum学习心得

...项目管理需要更灵活、更积极地,向应客户的需求。使用敏捷项目管理方法,项目经理可以在不影响价值、质量和商业规则的前提下实现所有目标,Scrum是一种迭代增量式的软件开发过程,用于敏捷软件开发。Scrum是一个包括一... 查看详情

敏捷开发:最通俗易懂的敏捷开发描述,一看就懂

敏捷开发分类:敏捷开发的实现主要包括SCRUM、XP(极限编程)、CrystalMethods、FDD(特性驱动开发)等等。其中SCRUM与XP最为流行。同样是敏捷开发,XP极限编程更侧重于实践,并力求把实践做到极限。这... 查看详情

iot项目管理:做好敏捷管理,从敏捷看板开始

...周期,将重点工作放在定义核心功能集的前端。你可以从敏捷软件开发思想中借鉴一些最佳实践,并将这些实践应用于团队管理中。敏捷思想最开始是通过17位软件开发领导者合作编写的敏捷宣言(AgileManifesto)脱颖而出的。敏... 查看详情

敏捷开发之scrum方法运用

...适应这种开发环境和市场需求,传统的软件开发模式已被敏捷开发模式所替代。本文介绍敏捷软件开发中的Scrum方法,并结合实际问题,分析Scrum方法在实践中的运用。产品质量和开发效率一直是软件产品开发的关键。随着科技和经... 查看详情

敏捷开发scrumvskanban,如何选择?

 两大方法虽然敏捷诞生只有20年的时间,但却帮助了很多企业取得了成功,在这期间也出现了各种敏捷方法论和思想体系,这篇文章,我们试图去讨论一个问题:对于准备实施敏捷的团队,在Scrum和Kanban两种方法之间如何选... 查看详情

21天敏捷打卡--敏捷方法实现

常用的敏捷实践包含:精益、看板、Scrum、XP极限编程、水晶、DSDM动态系统开发、FDD功能驱动开发、AUP敏捷统一过程、OpenUP。《敏捷实践指南》将敏捷方法和看板方法是为精益方法的子集。因为他们都符合精益思想的具体实例,... 查看详情

极简敏捷:解析scrum落地常见问题

参考技术ASCRUM作为最流行的敏捷框架,这些年已经得到广泛的流行。但是很多团队在落地SCRUM的时候,通常会产生以下问题:一,概念性问题:SCRUM就是敏捷么?SCRUM就是开各种会么?SCRUM有什么好的,能对我的团队产生什么作用... 查看详情

每日站立会议——敏捷流程scrum实践

每日站立会议是敏捷流程scrum中的很重要的一个制度之一。 功能:  1.快速同步进展,让项目组内部的员工互相了解彼此的进展,从而了解本项目的整体进展。    2.给每个人一种精神压力,信守承诺。这... 查看详情

敏捷2.7scrum流程与实践

Scrum流程与实践相信通过前面一篇文章的介绍,你已经对Scrum有了一定的了解了。但是这玩意怎么用呢?XP的实践如果是做过软件开发的同学,或者是带过软件开发团队的同学一定或多或少的都接触过,至少也是听... 查看详情

敏捷-敏捷方法实现

常用的敏捷实践包含:精益、看板、Scrum、XP极限编程、水晶、DSDM动态系统开发、FDD功能驱动开发、AUP敏捷统一过程、OpenUP。《敏捷实践指南》将敏捷方法和看板方法是为精益方法的子集。因为他们都符合精益思想的具体实例,... 查看详情