敏捷开发小结(原创)

本小结来自于我在公司的敏捷开发实践中总结而来,记录下来,如果有疏漏或者不正确的地方,欢迎批评指正。

所谓的敏捷开发是相当于瀑布式开发而言的,传统的瀑布式开发严格遵循预先计划的需求、分析、设计、编码、测试的步骤进行的,每个阶段都有每个阶段对应的文档;其主要问题是严格的分级导致的自由度降低,导致后期需求的变化难以调整或者代价高昂;

敏捷开发以用户的需求为核心,采用迭代增量、循序渐进的方式进行开发;项目在构建初期就被分为多个子项目,每个子项目可以独立运行和交互,在此过程中软件一直处于可运行状态;每个子项目都要经过设计、编码、测试等几个阶段,相当于就是把一个大的项目拆分成多个子项目来单独开发,降低风险,确保每一个子项目的成功,从而保证到整个大项目最终的成功;往往大项目是复杂的,难以把控的,拆分成多个子项目后,每个子项目的复杂度就降低了,这样项目更容易成功;

下面是敏捷开发的各个阶段做的事情,也就是敏捷开发到底该怎么去执行:

1、团队搭建阶段:

敏捷开发团队不像瀑布式开发那样的大团队,而是小而稳定、跨职能的团队,也就是说这个团队的分配并不是固定的,而是根据功能模块随时组合搭建而成;比如说某项目拆分成了六个子项目,在开发第一个子项目时进一步拆分成五个子功能模块,在第一个迭代开发中,可以将大团队拆分成五个小的团队,每个团队分配对应的开发、需求和测试人员,同时每个小团队需要一个负责人,这个负责人需要对子功能模块的进度和质量负责;在每一个迭代中,小团队的划分和人员分配以及负责人的指定并不是固定;

2、需求分析阶段:

项目被拆分成多个子项目,每个子项目被拆分成多个子任务模块,每个模块都有对应的需求分析人员,需求人员需要针对这个子任务模块编写需求文档和进行需求交底,在需求交底时需要开发人员、测试人员和客户共同参加,分别针对需求文档中的分歧之处提出并讨论并形成最终方案;子任务模块相对于整个系统来说,难度已经降低很多了,而且又有开发人员、测试人员和客户的共同交底,因此能保证需求的正确性;

3、设计阶段;

每个子任务模块的开发人员需要针对当前迭代开发的任务进行方案设计、任务拆分和估时,拆分粒度以不超过2小时为宜,如果任务超过2小时,建议再进一步的拆分;设计完成后由组内资历较老的开发人员进行设计评审,一来可以发现设计方案中不合理的地方,二来可以对任务拆分的粒度给以指导,判断子任务的估时是否合理,是否有漏掉的任务项;

设计评审通过后,需要将拆分的子任务录入到jira中去,这样领导在开发过程中就能随时查看到当前开发进度情况;

4、编码实现阶段:

开发阶段每天早上开一个晨会,下班之前开一个夕会,晨会和夕会的时间不宜过长,以10到15分钟为宜,会议的主要是每个人汇报下自己的进度,在这个过程中有没有遇到什么问题和影响进度的问题,如果影响到进度了,评估下影响的范围,如果在可控的范围内,比如说通过晚上加两个小时的班,或者向其他组员请求支援都能解决并使得记得能正常进行的,则在可控范围内解决;如果范围太大,则说明前面的设计或者任务拆分上出现了严重的问题,此时就需要领导及时调整方案策略,或者向公司上级领导请求其他支持之类的;

5、测试阶段:

测试阶段分两个阶段,一个是开发工作还没有完成的时候,一个是开发已经全部完成的时候。在前一种情况的时候,测试是在开发环境进行测试的,此时早会会正常进行。开发人员已经开发完成的时候,早会可以取消,每天早会时间,测试人员在敏捷小组群里发一下测试进度,以及遇到的风险。

测试测试出来的Bug,开发要及时的修改,每天把剩余Bug数控制在一定范围内,避免最后进度失控,另一个需要注意的是比较大的修改则需要请组内的经验丰富的开发做代码审查,避免改掉一个Bug结果引出多个Bug的现象;

6、迭代反思总结阶段:

每个迭代完成后都需要开个迭代总结会,会上把遇到的问题提出来讨论,总结出现这些问题的原因和症结所在,找出解决的办法,在下一个迭代中进行改进;如果某个方法在多个迭代中被验证是行之有效的,那么可以以制度化的方式固定下来;

原文地址:https://www.cnblogs.com/laoxia/p/11590279.html

时间: 2024-10-10 10:37:24

敏捷开发小结(原创)的相关文章

【原创】基于禅道的敏捷开发管理实践

以下是我在一个长期项目研发过程中采用敏捷思想进行项目开发管理的成功实践,供大家参考 一.项目背景     1.这是一个长期维护,需要不断扩展功能的O2O平台,系统本身包含多达13个子系统,且还在不断增加中 2.系统采用了"组件化架构",各个组件之间实现了脱藕,可以各自单独扩展 3.开发资源严重匮乏,程序员严重不足,且其中能独立工作的程序员比例很低 二.敏捷开发实践 1.每一次版本迭代都包括:需求->设计->编码->测试->交付这四个阶段 2.用禅道对开发全过程进

我和敏捷开发的故事--敏捷角色PO

在前面的三篇文章中对敏捷开发进行了一个背景铺垫,是以笔者个人的经历为主线来逐渐从个人的角度来理解敏捷开发. 通过结对编程完成了开发框架的搭建,在搭建框架的时候其实我们的正式敏捷流程还没有开始,真正开始是大家都可以行动的时候.当敏捷开始的时候整个团队定是在相关的分工下完成任务,所以不同的人有不同的角色,接下来主要对敏捷开发中的角色进行了解. 第一个要说的角色是PO 敏捷开发中的PO即ProductOwner,字面意思是产品或业务负责人,即熟悉该产品所有业务相关的逻辑.流程.设置等方面事宜的人员,一

敏捷开发实战(三)--每日晨会,是否只是摆设?

经过上面总结的两篇博文敏捷开发实践(一)–谈谈我对敏捷开发的理解和敏捷开发实战(二)–你真的了解Scrum吗?,我们已经对Scrum进行了整体的认识和学习,这篇博文我们一起讨论和学习,我在实施敏捷的过程发现的一个问题. 问题描述 相信实施过敏捷开发的博友,每天会在同样的时间和同样的地点召开会议,此会议在Scrum五大活动中被称为每日Scrum会议. 有这样的一种现象,团队中的新成员刚开始接触Scrum时,积极性会特别高,在会议中会比较积极的发言,但是对于大部分经过长时间开发的老成员来说,经常会在

我跟敏捷开发的故事--背景

关于敏捷开发,本人在很早之前已经了解相关的概念,第一次对他了解是在准备软件考试的时候了解到的,然而真正的在实际的项目中运用是从去年一月份,到现在也差不多快两年的时间了,在这两年的实际对敏捷开发这个东西从陌生到熟悉,然后又从熟悉到陌生,一路走下来感觉这个东西还是很有味道的,接下来的内容主要是聊聊这个所谓的敏捷开发. 当然,官方有很多关于敏捷开发的解释,先看看下面的解释. 敏捷开发以用户的需求进化为核心,采用迭代.循序渐进的方法进行软件开发.在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子

浅谈敏捷软件开发与传统软件工程的对比与敏捷开发产生的原因

引言 在"计算机程序的蛮荒时代",人们对于程序的设计.编写是随想随写.灵活变化的.正如我们初学各种编程语言时那样,似乎把程序写对也不是什么很难的事情.然而,这种程序设计模式或许适用于几百行至几千行的小程序,而当我们面对更大的软件规模.更多的代码行数以及更复杂的人员架构时,这种随想随写的程序开发模式似乎不再适用,于是使人们遇到了「软件危机」,进而促使了软件工程这样一门学科的产生. 在我上一门程序设计的课程的时候,老师讲过,当我们学习各种语言.算法和数据结构时,我们学习的是怎样进行&quo

敏捷开发 Scrum 综述

敏捷开发 Scrum 综述 这一星期学习了敏捷开发,然后阅读了相关的书籍,从网上查找了很多相关的资料,对敏捷开发scrum有了更加深刻了理解,对敏捷开发做了如下总结: 一.什么是敏捷开发? 敏捷开发提倡的“增量迭代.及时交付”的思想.这种模式能最大程度地不偏离客户需求的本质. 敏捷不是指某一种具体的方法论.过程或框架,而是一组价值观和原则.符合敏捷价值观和原则的开发方法包括:极限编程( XP), Scrum, 精益软件开发( Lean Software Development), 动态系统开发方

ITOO总结——专属3.1的敏捷开发

事情的起源是酱紫的,在ITOO如火如荼的做到3.0的时候,也许你会说3.0的过程似乎太漫长,但是好像结束的确实有些太快.马上就不如3.1的正轨.3.1,老师只给7天时间,当时的心里有一种不相信自己的感觉,其实这也是在不相信大家.但是经过7天的迭代之后,我看到了我们每个人的实力,爆发力,突击能力,团队合作能力,验证了老师的一句话,同样的任务给你多长时间你就能多长时间完成.让我总结这次开发快的原因,不知道为什么鬼使神差的就想到了一个名词"敏捷开发".也许这个词和这7天的我们来比并不一样,但

每个人都懂得敏捷开发 (软件工程), 为何产品开发的效率与质量还是这么的烂?

敏捷开发(软件工程)是 "设计" 出来的,不是 "学" 来的-- 许多人都一直在质疑敏捷开发是否能提高效率与质量? 更有不少人以嘲讽,不屑的口吻看待软件工程. 其实,敏捷开发或者软件工程, 无法提升团队开发的效率与质量,唯一且真正的问题在于-- "每个人都懂得敏捷开发(软件工程),但却没有人懂得如何 "设计" 可提升团队效率与质量的敏捷(软件工程)的实践." 为何没有人懂得? 因为,没有人知道该如何能看明白,团队所面临且真正该

敏捷开发实战(二)--你真的了解Scrum吗?

随着敏捷开发越来越流行,人人都在谈敏捷,人人也都在学习scrum等敏捷开发方法...当然,自己也是敏捷开发的实施者和受益者. 一.背景 我们公司引入敏捷开发的时间并不长,在实施敏捷的过程还存在一些问题,自己在实施敏捷的过程也存在很多的疑惑(毕竟原来没有学过,和真实的经历,体会),所以最近一直在学习敏捷,看敏捷的视频和阅读相关资料,同时结合自己实施敏捷的经验,通过分享博文进行一下简单的总结,目的有四: 详细的介绍和学习一下敏捷开发 和CSDN的大牛们一起分享交流,学习,提高一下 总结实施敏捷过程中