我的第一个敏捷项目总结

2016年11月开始了休长假回来后的第一个项目。也是我职业生涯中的第一个敏捷项目。本人在项目中担任需求分析。 项目启动已经五个多月,目前一切运行乐观。闲来觉得有必要总结下人生中第一个敏捷项目,于它人可以取良去莠, 于自己可以沉淀一二。

回想一下之前做过的项目都是用瀑布+迭代。 需求收集用瀑布。即尽量在需求收集时期定义到所有需求的所有细节,产出产品需求说明书。开发阶段采用迭代。即把需求划分为多个模块,分Sprint 开发。所以不同之处主要在于需求收集和需求管理,其次是才是开发,再次是测试。下文将在需求,开发和测试三个方面总结。

需求方面

在这个敏捷项目里,我们弃用了之前公司项目一直在用的产品需求说明书。直接用一个个用户故事来呈现功能需求。 这点到是为我省了很多事。 之前我们产出需求文档的过程如下:

1. 和客户沟通,产出功能点列表。(这个列表一般在销售阶段会由销售团队完成,用来做项目估算。后期需求细化也是以这个列表作为基准。)

2. 根据功能列表沟通详细需求。期间产出用户界面,多个产品功能需求规格书。

3. 将功能需求规格书拆分成便于开发任务分派的用户故事。

现在,需求收集阶段直接产出一个一个相对独立的用户故事就省去了绞净脑汁分割需求的过程。尤其当需求规格说明书章节没分配好,各个章节相互牵连重复时,分割需求的过程就会尤其痛苦。尽管如此,在项目开始前期,团队对用用户故事管理需求上有很大的争议。对用户故事管理需求提出的问题、最终讨论出的解决方案及实际操作后的效果如下:

问题一:

一个个用户故事太散。 新人没有系统的需求文档学习系统的需求 (话说实际情况也没哪个新人进项目后会系统的学习需求。都是只看自己负责那部分) 需求查阅也不方便。比如想起来要查阅某个需求点,在用户故事的茫茫大海里怎么找?

解决方案:

用记故事地图。 绘制一个用户故事地图大概相当于需求文档的章节索引。找某个需求点或想系统学习需求时可以从用户地图里找。

实际效果及问题总结:

用户故事地图得将用户故事分类总结好才能真正起到地图的作用。比如,如果你想确认购物车页面能否修改选购产品,但是从地图里完全看不出来这个功能点分布在哪个用户故事里。那这样的地图就是失败的。这次项目需求范围比较窄,只有browsing 和Search. 所以做出来的用户故事地图对分类水平要求不高。个人认为对用户故事分类难点在于要想清楚是按功能点按功能模块分,还是按页面分。比如B2B用户注册过程中会要求搜索公司以便将个人用户关联到某个公司. 如果按功能模块,搜索公司这个功能点应该属于搜索模块,如果按页面,那就应该属于注册页面。那应该用哪种分类呢?就个人经验而言,如果划分用户故事时页面已经清楚了,那可以按页面划分。因为我们公司开发基本是按页面开发。这种情况 一般发生在做系统维护升级的项目。对于新项目,功能需求都没有出来,页面肯定是出不来的。这种情况就可以按功能模块划分. 下文中有本人对Bowsing 和Search 的功能点划分图。供参考。
严格来说,我们其实也没有严谨的遵守用户故事划分原则。更倾向于将需求划分为相对独立的小的功能点,而不是用户故事。对于用户故事的定义及划分原则,大家可以自行百度goole. 个人认为一切的方法和理论目的都是解决问题,不必要一定要遵守定义的条条框框。根据公司项目实际开发习惯,高效解决问题就好。

问题二:

用户故事直接建到工作系统(JIRA) 里作为ticket使用,没有用文档记录。用户故事的状态反应对其进行开发的状态。如开发完成,那用户故事的状态会被置为关闭。如果一个用户故事关闭后发生需求变更,该怎么处理?

解决方案:

如果需求变更时用户故事还没有关闭,那就在原始用户故事上改需求描述并进行开发。如果用户故事已经关闭,那就创建新的用户故事描述新的需求。

实际效果及问题总结:

对正在开发过程中的用户故事进行修改,要事先和开发沟通好。避免造成修改的部分没被开发注意到。同意也要通知到正在准备测试用例的同学, 以便测试用例同步更新。

问题三:
如何统计需求变更? 比如某天项目要求统计出项目的需求变更(做了五年的项目貌似只被要求过一次)。对于新建的需求变更用户故事上加一个标签就很容易被统计出来。但是对于在原始用户故事上进行改动就统计不出来。因为在整个原始用户故事上加标签不合理,尤其当只有很小的一部分用户故事需求发生发动时。

解决方案:
需求变更控制沿用非敏捷时期的变更控制流程。控制流程图附入下文。该流程中会使用需求变更表单文档记录需求变更内容和实现变更需要时间和客户应该付的额外经费。需求变更文档配合变更列表就能很好的追踪和统计需求变更。

实际效果及问题总结:
任何流程都是为了有章法地解决问题。不能被流程绑架。比如在该项目实际执行过程中PM这段基本是由BA来完成。
判断是否是一个收费的CR的标准有些是用审批过的需求文档作标准,有时是用项签订项目合同时的功能列表作为标准。

问题四:
在系统中查看用户故事查阅需求时如何时知道这是不是最新的需求?

解决方案:

用户故事可能在关闭后发生需求变更。这种情况下已关闭的用户故事里的描述是不允许更改的。
JIRA 系统里的ticket 有相互链接的功能。如果一个用户故事在关闭后发生变更,必然会有新的用户故事ticket 产生。把新的用户故事链接到已关闭的用户故事即可解决。
需求变更产生的用户故事在ticket 在用户故事名称上加明显标识有助于快速找到需求变更对应的用户故事。如Change - [story name]

问题五:
项目要求用文档记录需求。方便某些人不想用用户地图+JIRA 系统查看需求时可以直接用文档搜索。

解决方案:
把用户故事按故事地图为章节复制到文档里。

实际效果及问题总结:
文档生成后并和系统里的用户故事同步更新耗费时间。目前为止,没有任何项目成员去看过这个文档。暂时没看出来这个文档存在的意义。如果项目不要求在某阶段必须产出这个文档,可以在每个sprint 结束时把sprint 里关闭的story 复制到文档里。一个Sprint 一个Sprint 地去做。这样可以节约更新文档的时间。因为关闭的Story 需求变动的可能性比较小。

开发方面

开发方面我们并没有严格按敏捷的定义做法。比如估算Story point, 我们并没有让几个开发坐在会议室大家亮出自己的估算,最高和最低的分别解释估算的理由,然后协商达成一致。Story point 估算基本都是team leader 在sprint 开始前自行决定。

测试方面

测试流程和之前一样,没什么影响。

附图:

Search / Browsing 功能点划分(TBD表示除Search 和Browsing 以外的功能点 )

时间: 2024-12-19 08:46:59

我的第一个敏捷项目总结的相关文章

敏捷项目管理框架(APMF)

研读许秀影博士的<敏捷项目管理:基础知识与应用实务>一书,其中提到传统项目管理与敏捷项目管理的混合管理模式—敏捷项目管理架构(Agile Project Management Framework,APMF),估计是普遍大部分公司所需要的,也比较认可的模式,可以很好的实现传统项目管理向敏捷项目管理转型.这本书很值得推荐,从现在软件管理的大势所需,到对软件研发管理发展史的剖析,到推崇的敏捷项目管理框架,到敏捷项目管理的企业导入,到敏捷创新模式讲解,让你在软件项目管理方面有了更加开阔的视野.如果你对

医疗平台:我的第一个大项目

从四月以来,就一直跟着公司的师兄师姐们在做网络虚拟诊疗学习平台,可以说这算是我的第一个比较正式的大项目了,同时也是第一次跟那么多一起合作. 因为一开始没有开发这种大项目的经验,感觉吃了很多亏一开始. 总结一下,因为一开始再看文档,卧槽完全被文档牵着走,然后因为需求自己都不太明确,所以云里雾里.同时,我们公司居然用的自己的模板,唉,以前没弄过连MVC开发方式都不熟悉,SVN到用起来非常方便有没有. 再是熟悉模板,我去我们公司的框架其实很简单,当初为什么花了那么久才能理解,我现在想想当时脑子的是糊的

人生第一个上线项目总结

此时,项目公测第一天,项目组集体坐在公司值班,等待着用户反馈,鉴于之前已经做过为期半个月的内测,于是,公测的第一天晚上似乎不是多么紧张. 毕业后,就进入现在公司,开始了现在项目.历时一年,很快.快结束的现在,总觉得自己应该总结下这一年发生的事情,于是,便记在这里,供自己"回眸".从程序员的角度看问题,更多. 使用技术:服务器,Linux + Java:客户端,Unity3D(主要NGUI). 项目框架: 服务器 客户端 1.登录服务器. 2.主要服务器M. 3.服务器G. 4.服务器D

第一个团队项目——成员及项目简介

第一个团队项目——成员及项目简介 一.项目名称 <校园封神榜> 二.团队成员简介 贾兆款.宋海林.张江鹏.禹慧慧 三.项目背景 在大学里的学习,似乎比高中轻松了很多,那是因为很多时候我们觉得无事可做,更重要的一个原因是很多同学不知道该做些什么.其实,在大学里,我们需要学习很多知识,如为人处事的方法.自我学习的方法.与人交流的方法,最重要的是与人合作的技巧和方法.等我们走上工作岗位以后,我们需要迅速融入一个集体,这就少不了需要和陌生的同事进行合作开发项目,尤其是对于从事信息行业的同学而言.因此,

敏捷项目研发工具

Leangoo(中文名:领歌)是一款基于看板的敏捷项目协作工具. 它的设计融入了先进的敏捷管理思想,由多位业界知名敏捷管理顾问提供支持,并由专业的敏捷开发团队精心打造而成,完美支持Scrum敏捷开发和看板方法. 我们可以使用Leangoo可视化地进行项目需求.任务.问题和文档的管理和协作,随时随地跟踪团队工作进展. 它核心是看板,通过看板共享和实时同步团队工作以实现高效协同, 团队工作体现为卡片,内容可以是需求.任务.问题等. 更提供了永久免费个人版(无任何限制)在线企业版以及私有部署版本. 产

敏捷项目风险管理落地

发现很多做项目的同学,会忽略对项目风险的管理,以至于成为项目的救火队长,处理各种应急事件.为了让项目开展更顺畅,避免出现项目既乱又累的问题,不应以战术上的勤奋,掩盖战略上的懒惰,梳理总结下敏捷项目的风险管理落地.通常项目中风险管理,目的在于提高项目中积极事件的概率和影响,降低项目中消极事件的概率和影响.首先,我们先回顾下传统项目中PMP阐述的风险管理知识点,然后分享下我们软硬件项目中如何进行风险管理的,最后分享他山之玉百度工程效率部总结的风险管理干货. 一.传统项目的风险管理1.规划风险管理主要

[书摘]《敏捷软件开发: 原则、模式与实践》第一部分:敏捷开发

面向对象设计的原则 单一职责 开放-封闭 Liskov替换原则 依赖倒置原则 接口隔离原则 重用发布等价原则 共同封闭原则 共同重用原则 无环依赖原则 稳定以来原则 稳定抽象原则 人的重要性 交付产品的关键因素是人,而不是过程.(敏捷 Agile) 人与人之间的交互式复杂的,并且其效果从来都是难以预期,但却是工作中最为重要的方面. ------ Tom DeMacro 和 Timothy Lister<人件> 有凝聚力的团队将具有最强大的软件开发力量. 敏捷软件开发宣言 我们一直在实践中探寻更

敏捷项目与任务看板

我们最近在多个项目中使用Topo项目管理软件实施敏捷项目管理,有些经验心得: 先在Topo中创建好项目,首页下有个项目中心,建好的项目可以一次看到全部的概况,包括项目未关闭的缺陷和任务,其中也给出了严重缺陷和延期任务的数量. 项目中心 进入项目,项目首页则是本项目的数据展示,包括项目各种数据和30天的数据统计,非常清楚,包括项目的任务.缺陷.代码.检视的开展情况: 项目概况 我们着重看下任务: 任务看板 这是一个看板,按四种状态列举了当前的任务,每条任务上有执行人.过期时间.工作量.标签等设置,

第一阶段团队项目个人总结

终于,第一阶段的冲刺结束了,历时十天,筋疲力竭,感触颇深. 经过这十天的团队项目合作练习,我的收获很大,我知道了团队是一个集体,不是某一个人的英雄主义行为,一个人的力量再强大,也不如团队的力量强大,不过我们似乎没有把团队的力量发挥到极致,刚开始我们的热情还很高涨,不过经过几天的磨合,由于项目进展不大,逐渐产生了动摇的想法,想换个题目,不过后来仔细想了一下,我们的课题还是挺好的,只是没有认真分析讨论,我们的集体合作时间很少,除了每天站立会议那十几分钟,由于每个人的作业都比较多,还有考研的同学需要复