敏捷软件需求
2018-07-08 13:01:46
  • 0
  • 0
  • 0

软件开发从过去的瀑布式模型到后来的迭代式与增量式的过程到后来敏捷概念的提出,代表这软件的发展和技术的成熟已经给了软件开发新的挑战。现有主流的敏捷方法为Scrum和XP,XP为极限编程,一般适用于十人以下的小型开发团队;Scrum是一种敏捷项目管理方法,目前正在被广泛采用,因为它是一种轻量级的框架,而且十分富有成效。

为什么会采用敏捷模型

首先我们对比一下瀑布模型和敏捷模型的ROI(投资回报率),瀑布模型的ROI要从交付项目开始才可以获得回报,这样获得回报的时间较远而且投资回报是从零开始递增,我们再来看一下敏捷模型,敏捷模型投资回报可以从第一版就开始获得再从不断的迭代中提升,时间成本远远小于瀑布模型而投资回报的效率更高。任何适销特性所具有的价值随时间流逝而降低,因此系那个要获取最大销售毛利,就必须第一个进入市场,或者在价值/定价差异化仍然起效的时候进入市场,所以采用敏捷是符合经济学原理的。

敏捷团队的角色和职能

Agile Master:推动团队向目标前进、领导团队的持续改进、推行敏捷的过程规则和消除阻碍

开发人员:与团队各方面合作确保代码的正确性、写和执行单元测试、根据需求进行测试的相关工作和git代码

测试人员:在写代码时写验收测试用例、测试代码、git代码、推进自动化测试和确保对用户故事的理解追踪故事的所需功能

架构师(很多敏捷团队无架构师):对系统层面的架构,确定系统的整体结构(组件和服务)以及系统层面的用例和对系统整体施加的性能标准。

技服和相关支持人员:UED、DBA等

团队的敏捷需求

用户故事

敏捷过程中,用户故事取代了传统软件需求表述,定义为作为一名<User>可以<dowhat>收到哪些<value>,采用这种形式使用户故事可以综合来自问题域(交付的业务价值)、用户角色和解决方案域(用户通过系统从事的活动)的要素。用户故事是使用索引卡片采集功能的简短语句,详细的系统行为不出现在这种简单语句中,而是通过团队与产品负责人之间对话和验收标准逐渐形成。角色支持对产品功能的细分,而且它经常引出其它角色的需要以及相关活动的环境;活动表述相关角色所需的“系统需求”;价值传达为什么要进行活动,可以为团队提供价值导向引领。

用户故事与需求说明书有着实质的差异:故事不是系统应该完成的事而是需要完成哪类的事;故事简短容易阅读,团队各类人都能理解;代表有价值功能的小型增量,可以在一定周期内开发;故事相对而言更容易估算;对故事很少或没有维护;用户故事以及随后的代码都是增量发展。

什么是好的用户故事?用户故事要具有独立性、可协商性、有价值、可估算、小型和可测试。

关于如何分割用户我会单独用一篇文章进行阐述,也会更透彻分析用户故事。

故事穿刺:用于消除在用户故事或其它项目方面的风险和不确定性,故事穿刺的指导原则是可估算可演示而且可验收,在不同的迭代中分别实现故事穿刺和作为其结果的故事。

干系人、用户表征和用户体验

系统干系人:直接使用系统的人->利用系统使用者成果的人->系统的部署与影响运营影响的人,一般包括用户和操作人员、用户方的经理、采购人员、管理员、技服人员和安装维护人员等,系统干系人将成为系统需求工作的主要驱动力。

项目干系人:受预算和日程直接影响的人;受产品/系统/解决方案的开发方式直接影响的人;将参与系统的推广、销售、安装或维护人员。

理解系统干系人的需求:可以分为一个列表通过干系人的角色,系统特征和系统活动进行描述

用户表征:主要表征代表有特定需求的用户,并且其需求智能通过专门为其设计的用户界面满足;次要表征也是系统用户,它们可以使用针对主要表征设计的界面。开发一组用户故事可以帮助我们识别角色,进而可以帮会组识别用户表征,分析案例研究中用户故事与用户角色的示例将为我们给出关于用户表征的一些线索,用户表征提供了针对用户及其需求的更细粒度鉴别,不需要话费太大的力气试图理解它们,最后在识别了每个用户表征之后,首先尝试理解它们对系统有什么期待以及它们要利用系统做什么,在其之后就已经为接下来编写故事和任何附加的需求发现工作做好准备了。

用户体验:如果把用户体验开发完全分散到各个团队,虽然从敏捷团队的授权与速率角度更有吸引力,但是在实践中可能会有许多问题。UX集中开发有很多相互依赖,但这种集中开发活动可以提升UX领域的核心能力并防止不可避免的设计变更对关对产生重大影响,为了解决更多依赖关系一般会采用分布式、有治理的用户界面开发模型。

敏捷估算与速率

敏捷项目随时知道它的确切位置,因为这是基于可工作代码的主观评估,甚至不用估计;利用有效的敏捷估算,团队就有了对接下来几周工作内容想到那个可靠的预报器。估算可以确定成本、建立优先级排列和安排日程与承诺。

从范围估算到团队速率:根据某团队在给定领域中已知的历史速率,就可以预计她们呢完成任意工作量要用多少时间。这也是一种有价值的校准,可以帮助他们在下一轮故事中更准确地叫牌。

从速率到进度和成本

进度估算:首先团队对将要排程的待变事项故事进行估算;其次,把估值累加;然后,由于迭代市场也是已知的,使用以下简单方程式估算完成任意待变事项将用多少天:完成工作的天数 = 每次迭代的天数 × (待办事项大小的估值/速率)。

成本估算:用团队的平均负担成本除以他们的速率,就是该团队每个故事点的成本。然后,在估算任何待变事项时,只要以该团队每个故事点的成本乘以待变事项的故事点总估值即可。

迭代、代办事项、吞吐量和看板

迭代长度:大多数团队以两周为时间与三点有点,一是这个时间足以创建有意义的增量价值,二是鉴于制定计划的事务成本和其他开销,团队认为这是它们可以承受的最快反馈周期,三是短迭代将故事分为一些小块,使定义/构建/测试必须同时进行,避免使迭代“瀑布化”的倾向。

迭代模式:第一阶段是简短的计划会议,期间评审待变事项并排列优先级进行估算,然后团队承诺在接下来迭代中的一定工作量;第二阶段是执行,期间通过编码和测试,实现迭代的待办事项条目;最后阶段包括对ixnxitong增量的评审与评估,以及接下来对迭代过程和结果的回顾。团队待办事项条目应该聚焦于用户功能性,而更为详尽的需求和验收准则通常在实现相关故事的迭代之前或在这期间才会详细制定。

迭代计划:提炼待变事项中的故事,准备迭代计划会议

迭代承诺:基于速率的承诺、基于目标的承诺、基于任务的承诺用SMART(具体、可度量、可完成、相关的和有时间限制的)描述任务

最后执行迭代,通过周期重复进行直到完成队列中所有的待办事项条目,可以采用燃尽图追踪迭代的整体状态。

追踪与调整:利用看板和敏捷项目管理工具追踪

评审与回顾:分为两个部分产品演示和评审;迭代回顾

待变事项、精益与吞吐量

需求发现工具箱

头脑风暴法

头脑风暴的原则:理清产品特性、明确产品提供什么服务和对于产品或市场有哪些机会错过和抓住

创意收敛:第一步删掉不值得继续投入的创意,第二步对创意进行分组,第三步定义特性。

竞品分析

竞品分析通常以矩阵形式提出,包括产品(产品计划)、实现方式、内容透明性(工具栏标签提供页面的风格)、页面评论和发展局限性,最后对于整体矩阵加权分析得出结论。

项目集的敏捷需求

(1)愿景、特性和路线图

愿景:敏捷场景下不用BRD,PRD传递需求时,就需要把愿景向敏捷开发团队传达,愿景要解决的问题是为什么我们要构建这种产品、系统或应用?它可以解决什么问题?它提供哪些特性和优势?这些特性和优势是为谁提供的?通过它交付的查您将有什么样性能、可靠性和伸缩性?它支持哪些平台、标准和应用?

(2)估算特性

估算工作量:初步估算进行粗略、相对的估算,提炼进行估算故事点,最终估算进行从下到上、基于团队的估算

产品经理的作用

在敏捷环境中,产品经理具有的主要职责有:了解解决方案的需要、差距和其中蕴含的机会;定义产品和解决方案以便处理需要;在组织内部工作,为成功部署扫清一切障碍;与开发团队一起工作,定义需求,帮助确保解决方案的不断进展,满足干系人的实际需要。

下面可能是我们最关心的,传统产品经理到敏捷的过程中有哪些改变呢?

产品经理是敏捷发布火车和基于节拍的、驱动火车的发布计划活动后面的推动力量。

敏捷发布火车

敏捷发布火车的原则:针对解决方案,开展经常的、定期的计划制定活动,并且发布(或PSI)的日期也都是固定的;团队采取公共迭代长度;确定中途、全局和目标里程碑;在顶级的系统层面、特性和组件层面,实施连续的系统集成;发布增量可以在固定间隔获得,以便客户预览、内部评审和系统级QA;系统级的硬化迭代被用于减少技术债,并为专业发布级别的验证与测试提供时间;对于在某些结构、特定基础设施组件(包括:公共界面、系统开发工具箱、常用装置、用户故事等)之上构建的团队,通常必须提前追踪。

设计敏捷发布火车:确定哪些人将在一起制定计划以及相关火车将交付哪些产品或服务

发布

项目组合的敏捷需求

 
最新文章
相关阅读