敏捷开发模式中如何需求规划

敏捷开发模式中如何需求规划
敏捷开发模式中如何需求规划

敏捷开发模式中如何需求规划

摘要: (2)

一、敏捷开发模式中的需求规划 (2)

1.1需求收集 (2)

1.2需求记录 (3)

1.3需求优先级 (4)

1.4需求变更 (5)

二、敏捷开发模式中的需求实现 (5)

2.1计划会议如何分解Backlog (5)

2.2每日站会确保需求实现的进度 (7)

2.3敏捷测试保证需求实现的准确率 (8)

三、分析复杂需求 (9)

四、结论 (9)

摘要:敏捷开发对需求规划的要求是很高的,首先需求是打散的,一个大的项目需求会拆分成很多小的功能完整的需求,以便排定优先级去逐个实现;其次打散的需求全部实现之后,组合起来的要是一个整体,而不是散碎的个体,这样就要求需求规划非常完整,需求拆分非常精确。所以个人感觉敏捷开发提升了开发效率,但是对需求规划的要求更高了。如果是产品经理来担当PO的话,就是对产品经理的需求规划能力提出了更高的要求,必须有清晰的思路,很强的需求规划能力才行,这样才能保证敏捷开发可以按照既定的设想去一步一步实现产品的设计。

很多人认为既然敏捷开发了,那就应该不用写文档了,其实不然,最基本的PRD 还是要有的,哪怕是本来要一口气写一份完整的PRD,采用敏捷开发之后,拆分成好几个部分去写,最后才合在一起。PRD除了讲解需求的作用,还是产品历史功能追溯、记录的作用,用来保证需求设计、开发实现、测试验证的过程是在同一个基准的理解基础上的,避免出现各自的想法不一致导致的产品形态走样。要保证整个产品的过程流畅的走下去,首先就得保证需求规划的过程是完备且正确的。

一、敏捷开发模式中的需求规划

1.1需求收集

敏捷开发模式下照样有需求收集的过程,不然开发个什么劲呢,不管是产品经理自己的想法,还是用户的需求,总有一个收集验证的过程。那么如何进行需求收集呢?除了老三样的问卷调查、意见反馈、竞品分析外,还可以有数据分析、同事反馈、用户观察等。

意见反馈:现在做任何互联网的产品,一般都会在产品上预留一个给用户反馈使用意见的口子,这就是我们经常在各个产品中见到的“意见反馈”链接页面或者是按钮弹窗,用以收集用户在使用过程当中反馈过来的信息,进而把这些信息收拢起来做统一分析,以得出相应的分析结果,看是否可以转换为产品需求。具体的处理过程可以参见意见反馈—小功能大设计。

问卷调查其实也是用户反馈中的一种,用以对特定人群或者不限人群投放预先设计好的问卷调查内容,适当加以鼓励填写的措施,以收集到一定数量的用户填写信息。

竞品分析应该是最常用的一种方式,这种方式最为直观,可以直接找到相类似的产品进行使用,然后分析其功能点和特性,找出优缺点。这种方式最常见,所以也经常造成功能上先类似的产品之间长的都差不多,也就是大家都说的“天下文章一大抄”,加引号的哈,我们还是有创新的,呵呵。

数据分析的方式是比较适合敏捷开发的,原因在其分析的结果可以快速的反应在开发结果上,以观察实际更改后的效果,比如一个购物流程,发现用户老是停留在购物车页面,就是无法转换成有效订单,这个结论一出来,我们就可以去分析购物车页面是否哪里体验做的不够好,导致用户提交订单的比率下降,分析的结果可以马上进行开发改进。

用户观察是要坐到用户旁边去观察用户使用产品的操作过程,不做任何限定,让用户以自己的方式随意使用产品,观察整个使用过程,适当的还可以进行一些提问。这种方式成本比较高,比较适合观察公司内部用户,或者是在用户的电脑上安装录屏软件,以达到事后观察的效果。

同事反馈只能小范围使用,其实就是内部PK,三个臭皮匠顶个诸葛亮,一群产品经理的智慧是比较可怕的,自己设计的产品要勇于拿出去分享,在PD内部做头脑风暴,有时候会有意想不到的效果。

此外还有微博搜索、博客搜索等信息收集的渠道,不再一一阐述。

1.2需求记录

把搜集回来的需求做一定的分析之后得出的结论就是我们要记录的需求条目,也就是可以排到敏捷开发计划里面去实现的需求列表。一般我们记录某个需求条目的时候都会考虑到用户场景,以一个故事的形式表述出来。

用户故事是从用户的角度来描述用户渴望得到的功能。一个好的用户故事包括三个要素:

1.角色:谁要使用这个功能。

2. 活动:需要完成什么样的功能。

3. 商业价值:为什么需要这个功能,这个功能带来什么样的价值。

用户故事通常按照如下的格式来表达:作为一个<角色>, 我想要<活动>, 以便于<商业价值>。举例:

作为一个“网站管理员”,我想要“统计每天有多少人访问了我的网站”,以便于“我的赞助商了解我的网站会给他们带来什么收益。”

敏捷开发项目管理流程

敏捷开发项目管理流程 你知道敏捷开发项目管理流程是怎样的吗?你对敏捷开发项目 管理流程了解吗?下面是为大家带来的敏捷开发项目管理流程,欢迎 阅读。 1.目的 规范互联网软件产品开发项目管理过程,指导开展项目研发、 管理等活动。 2.适用范围 本章程的作用范围为互联网软件产品开发立项至结项管理过程。 1.对项目经理开展产品规划及设计活动以及项目管理手段和应 遵循的开发流程提供了指导; 2.对项目团队的日常管理活动及内容进行了指导; 3.角色及职责定义 项目经理: 进行产品开发过程中的业务目标、进度、成本、质量控制。 挑选项目团队并进行团队建设,激发、鼓舞和改进团队的生产 效率。 识别项目干系人,定期向干系人汇报,并作为团队和外部的接口,屏蔽外界对团队的干扰。 确保项目中流程被遵循,组织、监督、培训项目各实践活动。 产品策划 确定产品的功能,拆分用户故事。

需求功能确定优先级。 接受或拒绝开发团队的工作成果。 参与产品开发过程中的有关会议。 UI 根据用户故事,负责产品的功能交互及界面设计 组织开展人机交互及用户体验,不断跟踪改进,提高产品表现力。 参与产品开发过程中的有关会议。 开发 根据用户故事,负责产品的技术架构设计及功能开发 评估、设计及维护产品相应模块,确保模块的稳定性、易用性、高效性。 参加产品开发过程中的有关会议。 测试 根据用户故事,设计产品测试标准,确保产品品质满足市场需求。 合理分配测试资源,组织产品测试并优化测试流程及测试标准,提高测试效率。 编写产品测试用例,提交测试问题,编写测试总结报告,以测试角度来确定产品版本是否发布。 4.项目管理过程

敏捷过程中的需求分析

【摘要】在日趋激烈的电信业竞争态势下,持续而快速地发掘和响应商机成为新的课题。作为响应机制中的关键环节,需求工程应用敏捷过程方法,以关注商业价值、快速响应、持续迭代的特征来应对变化和难测的未来,是尝试提高组织敏捷能力的核心。在这其中,作为沟通桥梁的需求分析同样可以应用敏捷的过程方法参与到生命周期的演进。敏捷需求分析将在需求时机与过程、文档要求、变更、参与者角色等方面展现其不同传统的特性。本文将结合电信业背景及企业实际情况,对敏捷需求分析作出初步的探索。 1、敏捷需求分析:电信行业背景与敏捷过程的需要 从中国电信行业ITSP战略推出至今,数年中我们已经看到了明显的变化,作为其信息化体系落地的C TG-MBOSS,也已初具规模和成效。大规模实施的下一个阶段,将是在商业价值引领下的重构竞争模式、市场细分,以及作为支撑的需求深入研究。在项目实施过程中,各种挑战和困难纷至沓来,项目管理者不管是做时间、成本、质量的三角平衡,还是人与技术的双向选择,始终无法绕开的一个问题跟源是:如何快速响应环境的变化,使客户在优化的体验过程中满足其商业目标,从而实现企业本身的价值? 用失控的过程膨胀来形容近10年的许多软件公司的情形是很合适的。虽然有很多团队在工作中没有使用过程的方法,但是采用庞大、重型的过程方法的趋势却在快速增长,在大公司中尤为如此。但现实的发展确与此不相同步,竞争态势造成了更多的不确定性和快速调整的机会。从近年ERP上线的平均速度来看,项目的交付时间都比较长,这让用户产生了顾虑。但实际上软件上线仅仅是一个软件生命周期早期的阶段,软件的价值是在使用中体现出来的,其投资回报也只能在后期的运营得到完成。未来的变化如同纳西姆?塔勒布的黑天鹅一般不可预测且重要,已知和过去琐碎的重复并不足以预测未来的重大影响。以预测性度量为控制基础的过程模型,只能以经验涵盖一般性事件,所以与此同时,随机应变,保持快速集成和持续改进以应对商业环境的不确定性,延长软件的生命周期提高它的最大价值,从而为获取更多投资回报提供保障,也成为软件工程发展的必然。 敏捷过程(Agile Process)的主要优势是能够适应系统需求的不确定性,将客户作为需求团队中密不可分的成员,而在实现过程中尽量在最短时间内实现对用户来说业务价值最大的需求;同时,敏捷开发(A gile Development)是一种面临迅速变化的需求快速开发软件的能力,它帮助处理了未来不确定性的问题;但是对于过去,应该没有不确定的事。而敏捷需求分析,是面对迅速变化的商业状况,提高其响应和组织成可理解和接受的需求说明并对敏捷开发作出能力保证的方法论。 2、敏捷与过程改进和度量模型 从软件工程发展起,过程改进在全球日益得到重视,ISO 9000/SW-CMM/CMMI各级的评估也在业界得以推展,这种氛围下,以RUP等为代表的过程模型也得到了广泛的应用。但与此同时,敏捷的论调却异军突起,方兴未艾。软件过程的多样性,源于过程环境和层次的不同;而过程选择的多样性和CMMI目标的通用性决定了过程改进途径的多样化。 运用一系列重方法,将在应对商机方面造成挑战;尤其是在企业的管理考核和过程模板仍更多的是一种瀑布式体系下,软件的实现过程将在不同模型下摇摆却显得不那么灵活。一个合适的生命周期模型选择是重要的,由于惯性的教育,瀑布在我们的工作环境中随处可见。但如果不去分析CMMI等的实质,将无助于改进这一点而提高响应。 强调结构化方法与重型的管理策略,往往在内心中拒绝变更,把变更作为被管理甚至被“管制”的对象;而为了尽可能避免变更,常常要求开发之前的需求获取、分析与定义要完整无误且精确。这是一种理论上的理想状态,尽管我们可以采取诸如CMMI的一些理念及过程改进模板对其管理,但实际上往往会出现与用户商业价值要求的脱节;而为达成此目标,使得前期的需求开发工作变得小心翼翼,最终有可能在压力与时间约束下难免简单化而草草了事,在后期又不能得到及时的修正,从而形成一个隐患。

对敏捷开发的一点理解

对敏捷开发的一点理解 今天有人问到我,对敏捷开发是怎么理解的?一时不知道从何说起了,先来思考下面的问题。 问题:为什么会出现敏捷开发? 我刚开始工作的时候采用的瀑布模型,将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。 这种方式有什么缺点? 1.不适应用户需求变化,软件开发中用户需求发生变化真的太多了。 2.项目有风险,由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果。 3.一个项目周期太长,就会不适应市场变化。 上面的缺点其实就是:开发出一个项目周期太长,不能跟上用户需求的变化。 在这个信息快速更替的时代,如果一个项目从策划到使用要一年的时间,估计当时提出的需求早变了。 如果你是给政府部门做项目做个一两年算正常情况,如果是做互联网产品,一年时间市场早就可能出现其他类似的产品。互联网要求的就是反应速度快,最先抢占市场。 敏捷开发是针对瀑布开发模式的弊端而产生的一种新的开发模式,迎合了用户需求经常变化,采取迭代开发、循序渐进的开发原则,目标是提高开发效率和响应速度。 敏捷开发主张简单,拥抱变化。不怕用户需求发生变化,第一个Sprint先开发用户核心模块,开发完成后马上拿给用户看,当用户看到可运行的软件就会知道是不是自己想要的,然后用户又会提出新的需求,第二个Sprint继续开发新功能。就这样一个Sprint一个Sprint的迭代开发,每个Sprint结束后用户进行确认,最终完成整个项目。

敏捷开发强调 1.开发团队与业务专家的紧密协作。 2.构建自组织团队和跨职能团队。 3.面对面的沟通胜过书面文档。 4.编写能够很好地适应需求变化的代码。 5.持续交付新版本软件。

敏捷开发理念

敏捷开发 人与人之间的交互是复杂的,并且其效果从来都是难以预期的,但却是工作中最重要的方面。 -- Tom DeMacro和Timothy Lister 敏捷软件开发宣言: n 个体和交互胜过过程和工具 n 可以工作的软件胜过面面俱到的文档 n 客户合作胜过合同谈判 n 响应变化胜过遵循计划 虽然右项也有价值,但是我们认为左项具有更大的价值。 敏捷宣言遵循的原则: n 我们最优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意。 n 即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势。 n 经常性地交付可以工作的软件,交付的间隔可以从几个星期到几个月,交付的时间间隔越短越好。 n 在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。 n 围绕被激励起来的个体来构建项目。给他们提供所需的环境和支持,并且信任他们能够完成工作。 n 在团队内部,最具有效果并富有效率的传递信息的方法,就是面对面的交谈。 n 工作的软件是首要的进度度量标准。 n 敏捷过程提倡可持续的开发速度。责任人、开发者和用户应该能够保持一个长期的、恒定的开发速度。 n 不断地关注优秀的技能和好的设计会增强敏捷能力。 n 简单是最根本的。 n 最好的构架、需求和设计出于自组织团队。 n 每隔一定时间,团队会在如何才能更有效地工作方面进行反省,然后相应地对自己的行为进行调整。 当软件开发需求的变化而变化时,软件设计会出现坏味道,当软件中出现下面任何一种气味时,表明软件正在腐化。 n 僵化性:很难对系统进行改动,因为每个改动都会迫使许多对系统其他部分的其它改动。 n 脆弱性:对系统的改动会导致系统中和改动的地方在概念上无关的许多地方出现问题。 n 牢固性:很难解开系统的纠结,使之成为一些可在其他系统中重用的组件。 n 粘滞性:做正确的事情比做错误的事情要困难。 n 不必要的复杂性:设计中包含有不具任何直接好处的基础结构。 n 不必要的重复性:设计中包含有重复的结构,而该重复的结构本可以使用单一的抽象进行统一。 n 晦涩性:很难阅读、理解。没有很好地表现出意图。 敏捷团队依靠变化来获取活力。团队几乎不进行预先设计,因此,不需要一个成熟的初始设计。他们更愿意保持设计尽可能的干净、简单,并使用许多单元测试和验收测试作为支援。这保持了设计的灵活性、易于理解性。团队利用这种灵活性,持续地改进设计,以便于每次迭代结束生成的系统都具有最适合于那次迭代中需求的设计。 为了改变上面软件设计中的腐化味,敏捷开发采取了以下面向对象的设计原则来加以避

敏捷开发流程详解

敏捷开发流程详解by yangdl 1敏捷开发流程 ?敏捷软件开发核心是迭代式开发,增量交付。 ?每一次迭代都建立在稳定的质量基础上,并作为下一轮迭代的基线,整个系统的功能随着迭代稳定地增长和不断完善。每次迭代要邀请用户代表(外部或内部)验收,提供需求是否满足的反馈。 ?迭代型的方法就是将整个软件生命周期分成多个小的迭代,每一次迭代都由需求分析、设计、实现和测试在内的多个活动组成,每一次迭代都可以生成一个稳定和被验证过的软件版本。 ?迭代建议采用固定的周期(1-4)周,可以每个迭代周期不一定要相同,但迭代内工作不能完成,应该缩减交付范围而不是延长周期。 1.1敏捷流程详解图-敏捷流程图 1.2敏捷流程三种角色及其职责

1.3敏捷开发流程详解 1.3.1流程图详解步骤 1.制定产品需求列表 ?PO收集来自客户、市场、领导等渠道的信息,从业务角度和市场价值编制一份按优先级排序的、明确的、可度量的、合理的产品需求列表; 2.召开计划会议 ?PO召集TM和SM(也可邀请其他利益相关者参加)召开计划会议(发布计划会议和冲刺会议一块开),发布计划主要是说明产品完整交付给客户的计划时间和交付物, ?冲刺计划就是确定该冲刺阶的长度(建议冲刺长度1-4周)、目标和冲刺任务单及其工作量估算

(以理想人天manday=7.5h估算,单位为小时计算),会议时间建议不要超过6h时间; ?在计划会议上就需要进行确认,是否需要使用持续集成;若使用持续集成,团队需要每天下班前至少提交一次私有构建成功的代码到服务器,并且要求写详细的日志信息;若不使用持续集 成,团队每天有完成任务单的情况,都需要在svn上以增量形式发包并通知到相关人员; ?项目计划会议上可以确定每天站立会时间及其规则要求(建议会议时间在15-20分钟左右),每个人回答3个问题:昨天做了什么,遇到什么问题,今天要做什么。具体问题讨论及其解决, 在私下进行沟通,不要在会议上讨论。站立会上只有TM人员有发言权,其他人员不要干预,SM 主要是维护秩序、规则及其引导作用。 3.需求分析、设计、编码和测试: ?计划会议结束后,TM获取各自的冲刺任务单进行后面的需求分析、设计、编码和测试; ?这里特别要说明的是,开发和测试是并行工作,必要的文档还是需要输出(如:讨论次数较多的功能点、备选方案很多但最后确认一种、重要功能、业务逻辑复杂的等等)。具体情况,需要 项目组根据实际情况决定,但客户要求交付的文档必须要输出; 4.冲刺任务单和燃尽图更新 每天SM需要根据每日站立会上TM反馈的情况,进行更新冲刺任务单和燃尽图或SM和TM之间达成共识,TM各自完成后进行更改状态,这里涉及到的文档都会有相对应的模板供参考使用。 5.迭代周期结束点 ?已到迭代周期结束点,只有哪些经过测试通过的冲刺需求列表才能算是真正的完成,其他未经过测试或测试不通过的不能算是完成。 ?这里要特别注意,所谓的测试通过不是说要把所有的问题都解决才算是通过,这个要根据项目具体的要求和规定来定。还没有达到迭代结束点,该冲刺任务需求列表就完成,可以从产品需 求列表中挑选优先级高的进行开发。 6.冲刺评审会议 ?TM需要召开冲刺评审会议,邀请PO、客户或客户代表来参加,由这些客户或客户代表来表决是否满足需求和期望目标。一般会议时间建议不要超过2个小时,参加人员除PO及其相关利益 人来参加外,TM全体成员,也可以邀请其他相关人员参加。 7.冲刺回顾会议 ?迭代输出的增量交付可能会引起原产品需求列表的改变,可能需要更新原产品需求列表;最后TM需要开展本次迭代的好的实践和不足的改进机会,最终稿由SM整理汇总,作为下一次的迭 代的经验参考。回顾会议建议时间不用太长,一般15-30分钟即可,全体人员都需要参加,包括:

敏捷开发流程(自己总结)

敏捷开发的相关简介 敏捷定义 Scrum是一个轻量级的软件开发方法 Scrum是一个敏捷开发框架,是一个增量的、迭代的开发过程。在这个框架中,整个开发周期包括若干个小的迭代周期,每个小的迭代周期称为一个Sprint,每个Sprint的建议长度2到4周。 在Scrum中,使用产品Backlog来管理产品或项目的需求,产品backlog 是一个按照商业价值排序的需求列表,列表条目的体现形式通常为用户故事。Scrum的开发团队总是先开发的是对客户具有较高价值的需求。在每个Sprint 中,Scrum开发团队从产品Backlog中挑选最有价值的需求进行开发。 Sprint中挑选的需求经过Sprint计划会议上的分析、讨论和估算得到一个Sprint的任务列表,我们称它为Sprint backlog 。在每个迭代结束时,Scrum 团队将交付潜在可交付的产品增量。 敏捷的原则 个体与交互胜过过程与工具 可以工作的软件胜过面面俱到的文档 客户协作胜过合同谈判 响应变化胜过遵循计划 这四句价值观用语句表达就是: 自组织团队与客户紧密协作,通过高度迭代式、增量式的软件开发过程响应变化,并在每次迭代结束时交付经过编码与测试的有价值的软件。 胜过 与客户确定合同后在初期制定并遵循基于活动的完整计划,在重型过程和工具指导下,通过完成大量文档进行知识传递,最后交付需求。 《敏捷宣言》12条原则 1.最优先的目标是通过尽早地、持续地交付有价值的软件来满足客户。 2.欢迎需求变化,甚至在开发后期。敏捷过程控制、利用变化帮助客户取得竞争优势。 3.频繁交付可用的软件,间隔从两周到两个月,偏爱更短的时间尺度。 4.在整个项目中业务人员和开发人员必须每天在一起工作。 5.以积极主动的员工为核心建立项目,给予他们所需的环境和支持,信任他们能够完成工作。 6.在开发团队内外传递信息最有效率和效果的方法是面对面的交流。 7.可用的软件是进展的主要度量指标。 8.敏捷过程提倡可持续发展。发起人、开发者和用户应始终保持稳定的步调。 9.简化——使必要的工作最小化的艺术——是关键。

需求经理必修课:全文解说需求分析

我们应当怎样做需求分析 又到新年了,日历又要从2011年翻到2012年了,这使我有太多的感慨,进而勾起了对太多往事的回忆。过去的10年,毫无疑问是中国软件业发展最快的10年。当我们刚刚毕业的时候,还在使用VB、PB开发一些简单的数据库应用,而现在却几乎看不到它们的踪影,换来的是诸如J2EE和.NET这样的大型web应用。而这期间,RUP、XP、敏捷开发、持续集成??????一个接一个的新概念层出不穷,令人眼花缭乱。现在想来,恍如隔世。 但更令我印象深刻而难以忘怀的,是我亲自经历的、亲眼目睹的、道听途说的一个又一个的软件项目,它们有的获得了成功,但更多的是令人沮丧的失败。套用一下大文豪托尔斯泰体:幸福的家庭都是一样的,不幸的家庭却各有各的不幸;幸福的软件项目都是一样的,不幸的软件项目却各有各的不幸;或者说,成功的软件项目都是一样的,失败的项目却各有各的问题。我常常在想,我们的项目开发到底怎么了,进而把它们一个一个的剥开来深入分析,竟然触目惊心。它们有的是需求的问题,有的是客户关系的问题,还有设计的问题、技术的问题、时间管理的问题、人员培养的问题??????但归根到底更多的还是需求的问题。需求分析既是一份体力活儿,更是一份技术活儿,它既是人际交往的艺术,又是逻辑分析与严密思考的产物。正是我们在需求分析过程存在的巨大隐患,最终导致了那么多项目的失败。也许你认为我在危言耸听,好吧,我来举几个典型事例分析分析吧。 我的第一个故事来自大名鼎鼎的东软。我在2005年接一个项目的时候,听说这个项目之前是东软做的。当时东软在做这个项目的时候,整个过程经历了10多次结构性的大变更,局部性的调整更是不计其数。据说某天早上,客户对某个功能不满意,他们不得不对几百处程序进行修改。之后客户对修改的内容还是不满意,又不得不将几百处修改重新改回来。最后这个项目导致的结果是,整个这个项目组的所有成员都离开了东软,并似乎从此不愿涉足软件开发领域。多么惨痛的教训啊!我常常听到网友抱怨客户总是对需求改来改去,但客户对需求改来改去的真正原因是什么呢?当我们对客户的需求没有真正理解清楚时,我们做出来的东西客户必然不满意。客户只知道他不满意,但怎样才能使他满意呢?他不知道,于是就在一点儿一点儿试,于是这种反复变更就这样发生了。如果我们明白了这一点,深入地去理解客户的业务,进而想到客户的心坎儿上去,最后做出来的东西必然是客户满意的。记住,当客户提出业务变更的时候,我们一定不能被客户牵着走,客户说啥就是啥。我们要从业务角度深入的去分析,他为什么提出变更,提得合不合理,我有没有更合理的方案满足这个需求。当我们提出更加合理的方案时,客户是乐于接受的,变更也变得可控了。 第二个故事来自我自己的项目,一个早期的项目。在这个项目中,客户扔给了我们很多他们目前正在使用的统计报表,要我们按照报表的格式做出来。这些报表都是手工报表,许多格式既不规范,又很难于被计算机实现。这些报表令我耗费了不少脑细胞,直到最终项目

敏捷开发在项目开发和管理中的实践和应用

敏捷开发在项目开发和管理中的实践和应用 摘要敏捷开发已深入互联网产品的研发和团队管理过程,当前互联网+时代要求软件研发企业在面对市场需求是要能够做到快速响应,传统的瀑布开发模式已经不能满足互联网企业一系列的需求。敏捷开发提倡拥抱变化、高效沟通、持续交付、紧密协作,强调团队的自组织,本文根据实际应用情景,谈一谈在敏捷开发过程中,通过简化工作流,提升团队协作和沟通,来提高项目管理的效率,降低成本、实现产品的快速交付。 关键词敏捷开发;信息系统;项目管理;软件开发 敏捷开发(Agile Development)是一种以人为核心、迭代、循序渐进的开发方式,目前主要有Scrum、XP和看板模式。敏捷采用的是迭代式开发,主要驱动核心是人。目前许多敏捷开发在实际应用还处于摸索阶段,只注重“形”,为不注重“神”,通过多个敏捷项目的实践,在采用一种新的模式的时候,最好结合实际进行本地化的适配。 1 敏捷项目的需求确认与任务分解 敏捷项目是欢迎用户需求变化的,项目开始阶段不需要完整的需求,但也要能准确获取客户的需求,系统原型设计是使用最普遍的方法。给客户演示原型并不断修改原型直至客户确认,可以有效地与用户针对系统的功能与可用性进行验证,节省开发前研发资源的投入,确保构建系统的正确性,开发初期原型设计的开支远低于开发实际系统的开支。常用的原型设计工具:Axure RP、Microsoft Visio、网页制作工具。 在管理用户需求时,产品负责人(Product Owner,简称PO)要将需求整理成用户故事,用户故事通过product-backlog(产品backlog)进行记录。在每个迭代开始之初,由团队负责人(Scrum Master,简称SM)召开sprint计划会议,PO负责需求的讲解,开发团队通过需求的理解,一起进行用户故事的估算。在计划会议中需要确认需求优先级、分析和评估产品Backlog,确定迭代的目标,分解工作内容,形成迭代任务(Sprint backlog),然后为本次迭代任务做估算;团队成员从产品Backlog中挑选他们承诺完成的用户故事。 2 敏捷项目的系统分析与设计 敏捷开发可以根据项目的规模对设计工作进行取舍,一般在项目开始阶段先引入一个sprint0,进行系统的分析和设计工作,敏捷开发不提倡刚开始就进行完整的系统设计,主张先做出一个大粒度的框架性设计,然后在迭代开发中逐步深入细化,当然传统的一些设计方法也可以融入敏捷开发过程。 2.1 整体架构和逻辑架构设计

敏捷开发模式中如何需求规划

敏捷开发模式中如何需求规划 摘要: (2) 一、敏捷开发模式中的需求规划 (2) 1.1需求收集 (2) 1.2需求记录 (3) 1.3需求优先级 (4) 1.4需求变更 (5) 二、敏捷开发模式中的需求实现 (5) 2.1计划会议如何分解Backlog (5) 2.2每日站会确保需求实现的进度 (7) 2.3敏捷测试保证需求实现的准确率 (8) 三、分析复杂需求 (9) 四、结论 (9)

摘要:敏捷开发对需求规划的要求是很高的,首先需求是打散的,一个大的项目需求会拆分成很多小的功能完整的需求,以便排定优先级去逐个实现;其次打散的需求全部实现之后,组合起来的要是一个整体,而不是散碎的个体,这样就要求需求规划非常完整,需求拆分非常精确。所以个人感觉敏捷开发提升了开发效率,但是对需求规划的要求更高了。如果是产品经理来担当PO的话,就是对产品经理的需求规划能力提出了更高的要求,必须有清晰的思路,很强的需求规划能力才行,这样才能保证敏捷开发可以按照既定的设想去一步一步实现产品的设计。 很多人认为既然敏捷开发了,那就应该不用写文档了,其实不然,最基本的PRD 还是要有的,哪怕是本来要一口气写一份完整的PRD,采用敏捷开发之后,拆分成好几个部分去写,最后才合在一起。PRD除了讲解需求的作用,还是产品历史功能追溯、记录的作用,用来保证需求设计、开发实现、测试验证的过程是在同一个基准的理解基础上的,避免出现各自的想法不一致导致的产品形态走样。要保证整个产品的过程流畅的走下去,首先就得保证需求规划的过程是完备且正确的。 一、敏捷开发模式中的需求规划 1.1需求收集 敏捷开发模式下照样有需求收集的过程,不然开发个什么劲呢,不管是产品经理自己的想法,还是用户的需求,总有一个收集验证的过程。那么如何进行需求收集呢?除了老三样的问卷调查、意见反馈、竞品分析外,还可以有数据分析、同事反馈、用户观察等。 意见反馈:现在做任何互联网的产品,一般都会在产品上预留一个给用户反馈使用意见的口子,这就是我们经常在各个产品中见到的“意见反馈”链接页面或者是按钮弹窗,用以收集用户在使用过程当中反馈过来的信息,进而把这些信息收拢起来做统一分析,以得出相应的分析结果,看是否可以转换为产品需求。具体的处理过程可以参见意见反馈—小功能大设计。

产品敏捷开发流程说明

1概述 本文档主要阐述了基于Scrum敏捷方法的产品开发过程,以及每个过程相关的产出物。2产品开发流程 产品开发 开发 ?编码 ?测试 日常会议 需求整理会议 ?维护产品待开发事项 ?确定下次迭代的任务 3角色及职责 3.1产品负责人 这里特指PM,PM主要决定每个迭代要开发的功能,并在每个迭代结束评审交付项是否符合要求。在产品开发流程中,产品负责人的工作具体为: 开发计划会议:会议前,准备好产品待办列表,清晰描述需求,确定优先级;整理好本次迭代的功能的交互原型、UI原图、数据项描述等文档;会议上对待办事项进行答疑。 产品开发:主要参与需求整理会议,会议前,准备好产品待办列表,清晰描述需求,确定优先级;会后,安排下次迭代的原型交互设计、UI设计工作。 评审会议:负责对当次迭代的功能进行验收,根据当前功能对产品待办列表进行调整。

3.2开发团队 指参与到产品开发的所有人,包含但不限于交互设计、UI设计、编码、测试等岗位人员。开发团队需参与整个过程的会议。在各流程中,具体的工作为:开发计划会议:参与分析、分割任务,理解需求,根据自己的能力挑选任务。 产品开发:在日常会议上,向其他成员陈述三个问题:昨天我做了哪些任务?今天我准备做哪些任务?我遇到了什么困难? 3.3Scrum Master Scrum Master需主持产品开发过程中的各个会议,控制项目进度,协助产品负责人与开发团队工作开展。 4流程及文档说明 4.1开发计划会议 此阶段为迭代开始阶段,主要描述产品功能的用户使用场景。PM需为会议准备产品待办列表、交互原型、UI原图、数据项描述文档。 产品待办列表的表现形式可以多种,主要的方式有:用户故事板、特性描述等。产品待办列表参考示例:

敏捷过程如何做需求分析

敏捷过程如何做需求分析 在很多人的印象中,敏捷软件开发是种类似黑客行为的过程,是程序员最爱的勾当。不写文档,不作需求分析,没有项目经理,做什么东西完全是程序员自己的行为。所以他们认为这样的过程无法满足真正大型项目和复杂项目的需要,因此在经过考虑后,放弃了敏捷方法。真的是这样吗?敏捷过程到底是如何做需求分析?用户故事和用例有什么区别?敏捷过程如何去管理需求的?这些是一些想要实践敏捷的人一直在困惑的事情。我们常常看到书中讲,程序员拿到一个用户故事后,怎么计划,怎么分解,怎么写单元测试,怎么小步前进,怎么持续集成。这是典型的程序员视角。事实上,敏捷方法分为三部分,敏捷项目管理,敏捷需求分析,敏捷软件开发。上述书中提到的完全是敏捷开发中的实践,很多人了解到的敏捷,只是敏捷的三分之一。在敏捷的团队中,作一个敏捷程序员确实是非常舒服的事情。从程序员的角度来看,只需要选择一张他感兴趣的故事卡片,了解清楚该卡片的需求,开始从功能测试写代码,等通过了所有测试就完工。基本上不需要考虑太多的事情,非常轻松愉快。但程序员向谁去问清楚需求?故事卡片是怎样写出来的呢?让我们来关注开发前发生的事情。了解敏捷过程的人都知道,KentBeck在XP过程中提到了现场客户,如果一个敏捷团队能够有现场客户,这当然是最棒的事情。但多数情况下,客户都是很忙碌的,很难全力投入到软件开发过程中。这时候,我们就需要商务分析师这个角色,来充当客户的角色。我在ThoughtWorks的团队中担任的就是商务分析师这个角色。商务分析师最重要的职责就是与客户交谈,了解和分析需求,将其制作成用户故事并将需求转述给程序员。同时,商务分析师也要代替客户负责功能验收测试。敏捷思想的核心是人与交流。需求问题实际上是一个交流问题。商

敏捷开发基本概念大全

敏捷开发概念大全 Iteration 迭代开发。可以工作的软件胜过面面俱到的文档。因此,敏捷开发提倡将一个完整的软件版本划分为多个迭代,每个迭代实现不同的特性。重大的、优先级高的特性优先实现,风险高的特性优先实现。在项目的早期就将软件的原型开发出来,并基于这个原型在后续的迭代不断晚上。迭代开发的好处是:尽早编码,尽早暴露项目的技术风险。尽早使客户见到可运行的软件,并提出优化意见。可以分阶段提早向不同的客户交付可用的版本。IterationPlanningMeeting 迭代计划会议。每个迭代启动时,召集整个开发团队,召开迭代计划会议,所有的团队成员畅所欲言,明确迭代的开发任务,解答疑惑。 Story Card/Story Wall/Feature List 在每个迭代中,架构师负责将所有的特性分解成多个Story Card。每个Story可以视为一个独立的特性。每个Story应该可以在最多1个星期内完成开发,交付提前测试 (Pre-Test)。当一个迭代中的所有Story开发完毕以后,测试组再进行完整的测试。在整个测试过程中(pre-test,test),基于Daily build,测试组永远都是每天从配臵库上取下最新编译的版本进行测试,开发人员也随时修改测试人员提交的问题单,并合入配臵库。敏捷开发的一个特点是开放式办公,充分沟通,包括测试人员也和开发人员一起办公。基于Story Card的开发方式,团队会在开放式办公区域放臵一块白板,上面粘贴着所有的Story Card,按当前的开发状态贴在4个区域中,分别是:未开发,开发中,预测试中,测试中。Story Card的开发人员和测试人员根据开发进度在Story Wall上移动Story Card,更新Story Card的状态。这种方式可以对项目开发进度有一个非常直观的了解。 在开发人员开始开发一个Story时,ta需要找来对应的测试人员讲解Story功能,以便测试人员有一致的理解,同时开始自动化系统测试脚本的开发。 Standup Meeting 站立会议。每天早上,所有的团队成员围在Story Wall周围,开一个高效率的会议,

敏捷数据分析方法论

敏捷数据分析方法论革命来袭 想必大家都听说过敏捷开发,敏捷开发是以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。随着敏捷概念的深入人心,数据分析方法论也发生了革新,敏捷数据分析逐渐进入主流视野。本文将简要介绍到底何为敏捷数据分析。 传统VS敏捷 我们先来看一下传统的数据分析流程: 解读业务战略目标–>确定目标分解的量化KPI–>确定KPI的计算公式和所需字段–>确定所需字段来自于哪些数据库的哪些表–>数据建模–>预先汇总成二次表和Cube–>结果展示。由于需要建模和打CUBE,这一流程通常需数月才能完成。 现在,取代传统数据分析流程的,是快速迭代式分析。敏捷数据分析不必在开始时花很长的时间构思大而全的分析指标体系,而是低成本快速迭代,几分钟就做好一个当前想要分析的结果,通过敏捷数据分析工具实现动态切换视角,灵活展示数据,日积月累,指标自然越来越丰富,计算公式也越来越符合业务逻辑,这时再体系化。下面的演示视频将帮助大家了解如何通过敏捷数据分析工具在几分钟时间内实现自己的分析需求。 为什么传统数据分析无法实现快速迭代分析的高效?因为在过去这么多年以来,我们对于大数据海量数据的计算能力达不到比较理想的要求,所以我们才需要IT人员用通过建模等方式提前把数据计算汇总好,随着现在大数据的技术相对来讲都日趋成熟和完善,分布式计算,内存计算、列存储等比较成熟的技术架构,采用这种新的办法去处理数据的性能,已经比以前提升了几十倍甚至更高。 符合迭代思维 快速迭代式的敏捷数据分析有什么好处?首先,这种分析方法十分符合互联网思维中的迭代思维。企业的分析指标不可能一开始想得非常全面,本身就是迭代逐步形成的。以电商行业为例,电子商务的数据可分为两类:前端行为数据和后端商业数据。前端行为数据指访问量、浏览量、点击流及站内搜索等反应用户行为的数据;而后端数据更侧重商业数据,比如交易量、投资回报率,以及全生命周期管理等。 在最初期,电商行业最关注的是那些核心指标:UV、转化率、客单价、毛利率、推广ROI、

敏捷开发规程详解

敏捷开发流程详解byyangdl 1敏捷开发流程 ?敏捷软件开发核心是迭代式开发,增量交付。 ?每一次迭代都建立在稳定的质量基础上,并作为下一轮迭代的基线,整个系统的功能随着迭代稳定地增长和不断完善。每次迭代要邀请用户代表(外部或内部)验收,提供需求是否满足的反馈。 ?迭代型的方法就是将整个软件生命周期分成多个小的迭代,每一次迭代都由需求分析、设计、实现和测试在内的多个活动组成,每一次迭代都可以生成一个稳定和被验证过的软件版本。 ?迭代建议采用固定的周期(1-4)周,可以每个迭代周期不一定要相同,但迭代内工作不能完成,应该缩减交付范围而不是延长周期。 1.1敏捷流程详解图-敏捷流程图 1.2敏捷流程三种角色及其职责 1.3敏捷开发流程详解

1.3.1流程图详解步骤 1.制定产品需求列表 ?PO收集来自客户、市场、领导等渠道的信息,从业务角度和市场价值编制一份按优先级排序的、明确的、可度量的、合理的产品需求列表; 2.召开计划会议 ?PO召集TM和SM(也可邀请其他利益相关者参加)召开计划会议(发布计划会议和冲刺会议一块开),发布计划主要是说明产品完整交付给客户的计划时间和交付物, ?冲刺计划就是确定该冲刺阶的长度(建议冲刺长度1-4周)、目标和冲刺任务单及其工作量估算(以理想人天manday=7.5h 估算,单位为小时计算),会议时间建议不要超过6h时间; ?在计划会议上就需要进行确认,是否需要使用持续集成;若使用持续集成,团队需要每天下班前至少提交一次私有构建成功的代码到服务器,并且要求写详细的日志信息;若不使用持续集成,团队每天有完成任务单的情况,都需要在svn 上以增量形式发包并通知到相关人员; ?项目计划会议上可以确定每天站立会时间及其规则要求(建议会议时间在15-20分钟左右),每个人回答3个问题:昨天做了什么,遇到什么问题,今天要做什么。具体问题讨论及其解决,在私下进行沟通,不要在会议上讨论。站立会上只有TM人员有发言权,其他人员不要干预,SM主要是维护秩序、规则及其引导作用。 3.需求分析、设计、编码和测试: ?计划会议结束后,TM获取各自的冲刺任务单进行后面的需求分析、设计、编码和测试; ?这里特别要说明的是,开发和测试是并行工作,必要的文档还是需要输出(如:讨论次数较多的功能点、备选方案很多但最后确认一种、重要功能、业务逻辑复杂的等等)。具体情况,需要项目组根据实际情况决定,但客户要求交付的文档必须要输出; 4.冲刺任务单和燃尽图更新 每天SM需要根据每日站立会上TM反馈的情况,进行更新冲刺任务单和燃尽图或SM和TM之间达成共识,TM各自完成后进行更改状态,这里涉及到的文档都会有相对应的模板供参考使用。 5.迭代周期结束点 ?已到迭代周期结束点,只有哪些经过测试通过的冲刺需求列表才能算是真正的完成,其他未经过测试或测试不通过的不能算是完成。 ?这里要特别注意,所谓的测试通过不是说要把所有的问题都解决才算是通过,这个要根据项目具体的要求和规定来定。 还没有达到迭代结束点,该冲刺任务需求列表就完成,可以从产品需求列表中挑选优先级高的进行开发。 6.冲刺评审会议 ?TM需要召开冲刺评审会议,邀请PO、客户或客户代表来参加,由这些客户或客户代表来表决是否满足需求和期望目标。 一般会议时间建议不要超过2个小时,参加人员除PO及其相关利益人来参加外,TM全体成员,也可以邀请其他相关人员参加。

敏捷开发的宣言和原则

敏捷开发的宣言和原则 宣言: 个体和交互胜过过程和工具 可以工作的软件胜过面面俱到的文档 客户合作胜过合同谈判 响应变化胜过遵循计划 原则: 1.我们最优先做的是通过尽早、持续的交付有价值的软件来使客户满意。 2.即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势。 3.经常性地交付可以工作的软件,交付的间隔可以从几周到几个月,交付的时间间隔越短越好。 4.在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。 5.围绕被激励起来的个人来构建项目。给他们提供所需要的环境和支持,并且相信他们能够完成工作。 6.在团队内部,最具有效果并且富有效率的传递信息的方法,就是面对面的交谈。 7.工作的软件是首要的进度度量标准。 8.敏捷过程提倡可持续的开发速度。责任人、开发者和用户应该能够保持一个长期的、恒定的开发速度。 9.不断地关注优秀的技能和好的设计会增强敏捷能力。 10.简单----使未完成的工作最大化的艺术------是根本的。 11.最好的构架、需求和设计出自于自组织的团队。 12.每隔一定时间,团队会在如何才能更有效地工作方面反省,然后相

应地对自己的行为进行调整。 (一)敏捷开发思想之简单最好 极限编程中有一条著名的懒汉原则,称之为KISS原则,KISS是Keep it simple and stupid的缩写。简略地说,就是设计尽量保证简单。极限编程坚持只为今天的需求设计以及编码,而不用考虑明天。这颇有一些“做一天和尚撞一天钟”的意味。 这个原则带来一个问题,那就是我们还需要设计吗? 我们强调设计,其目的就在于设计出合理、优雅的结构,以提供具有良好复用性与可扩展性的系统,这是一种未雨绸缪,为未来考虑。而现在,我们若要遵循KISS原则,就是不再考虑明天的需求。显然,这两者的观点是相悖的。于是,矛盾出现:一方面我们需要保持设计简单,不做无谓的功能预测;另一方面,我们又需要拥抱变化,在尽可能少的改变结构与代码的情况之下,满足未来的需求。 如何解决这个矛盾。让我们先看看提出简单原则的初衷。在《敏捷开发思想之拥抱变化》一篇中,我提到需求的变化是不可避免的。即使是最优秀的需求分析师和架构设计师都不可能在项目之初穷尽所有客户要求的功能,作出最完美的分析与设计,即做到“增之一分则太多,减之一分则太少”。我们需要把握分析和设计的“度”。但事实却是,我们总喜欢越俎代庖,利用自己的经验帮助客户提出需求,而事后证明这些需求往往是多余的。我们总是在重复做着“吃力不讨好”的事情,与其如此,还不如在事先偷懒取巧。因为需求的变化总是不可控的,根据“利益趋避原则”,自然应选择对自己更有利的一个趋向。

敏捷开发模式下的质量管理

敏捷开发模式下的质量管理 前几天,笔者与一位在大型互联网公司从事质量保证的朋友交谈,作为互联网产品质量和测试的负责人,他最近负责的质量管理方面遇到了很多困难。主要有: 1)测试团队在敏捷开发模式下的价值非常有限; 2)开发人员只顾自已写代码,没有任何文档,测试人员无从下手, 3)由于进度的原因,测试人员测试的时间非常有限,上线后出现很多问题; 4)由于测试人员得不到开发团队的认可,离职率非常高; 5)质量部门无法收集到数据,不能进行质量度量; 6)测试团队也有一批自动化测试专家,但派不上用场…。 这些问题可能很多开发团队都会遇到,总结一下,大致是这几个方面: 1、越来越多的企业希望采用,但没有把握 2、习惯于传统的瀑布式产品开发流程已不满足快速发展需要,但大规模改动不现实 3、缺少敏捷软件开发专家和人才 4、技术人员需要观念的转变和方法培训 5、缺乏相应的质量控制方法 6、需要经常的和及时的质量度量、测试、决策 7、自动化测试不能落到实处,每日构建仍是纸上谈兵 在现在行业中,需求变化太快,不管我们怎么努力去做,发现还是不能满足客户的需要,不管需求搞得多么细,到交付产品给客户的事情,总是有这样那样的问题,这个时候就不得不去修改我们的软件,这是目前很多企业尤其是互联网公司面临的一个挑战,如何解决这个问题? 笔者先后在华为、阿里巴巴软件质量部门任职,最近也深入研究了腾讯敏捷开发平台TAPD(腾讯敏捷产品开发)和IGD(集成游戏开发)一些资料,对国内敏捷项目的质量管理有很多独到的见解,结合汉捷咨询公司多年的项目经验,总结如下:

1)QA角色的转变 QA要从警察的角色转变到一个教练的角色。在以前,团队实施CMM的时候,QA更多的是一个警察的角色,他整天拿着一个checklist、报告什么的到处去团队里面看,你是否ok,不ok就要怎么怎么样,整天就干这个活,但是引入敏捷之后,QA就觉得有点失落,都敏捷了,我都不知道该怎么下手了,在著名的通信企业华为的做法是将QA转变了一下,将QA更多的充当教练的角色,充当SCRUMMaster的角色,他去指导项目团队该如何去开这个站立式会议,该怎么去做迭代的计划等等指导性的工作,这样QA 也觉得挺好,这样他能参与到在不同的团队中去,QA的角色更多的偏向于全过程的敏捷活动指导,以提高产品开发效率和质量。QA在这个过程中也能得到一些数据,如代码缺陷率,版本的不良率,上线遗留问题数,团队成员配合度等等。 2)要使敏捷团队整体参与 QA和测试人员也是敏捷团队的一部分,作为敏捷教练,要向他提供支持和训练,以使作们适应开发的快节奏。比如,如果你是敏捷团队中的测试人员,并且计划会议和设计讨论没有邀请你,或者业务用户正在独立定义故事和需求,那你应该主动站出来和团队的其他成员交流,并偿试“三方协作”,即测试人员、开发人员和业务专家。腾讯公司把业务专家称为BA,即BussinessAnalyst,BA和开发人员DE、测试人员TE组成了敏捷开发团队,这些成员不仅仅把都在忙着最终的交付而努力,他们还乐于收集和分享信息,与客户或者产品负责人协作以帮助他们充分展示自已的需求,从而得到他们的需要的功能,同时向所有人提供项目进展的反馈。 3)自动化回归测试 敏捷团队没有自动化会成功吗?可能也会成功,但我们所知道的成功团队都依赖于自动化回归测试,如腾讯和支付宝公司的Selenium框架,阿里巴巴和淘宝网的QTP框架。汉捷咨询认为,敏捷开发利用测试来指导开发,为了编写的代码使测试通过,需要快速而简单地运行测试,没有短期反馈周期和安全的回归测试,团队将很快陷入技术债务,缺陷不断增加,速度越来越慢。 4)提供并获取反馈 反馈是敏捷的核心价值,敏捷的短期迭代可以提供持续的反馈以帮助团队正常运转,测试人员则通过自动化测试结果、探索性测试的发现和系统实际用户的观察结果的形式帮助提供支馈。如你怎么知道客户手里拿到了预期行为的正确示例?你怎么知道编写的测试用例正确地反映了这些示例?开发人员通过查看测试用例能够理解应该编写什么代码吗?QA和测试人员应该询问开发人员是否得到了足够的信息以理解需求并是否能够指导编码,询问客户是否理解质量标准,应花时间参与迭代计划会议和回顾会议以讨论这些问题并提出改进方案。

敏捷开发描述

敏捷开发过程描述 1.敏捷开发的原则 原则一:个体及交互比流程与工具更具价值 原则二:可用的软件比冗长的文档更有价值 原则三:与客户的协作比合同谈判更有价值 原则四:对变化的响应比遵循计划更有价值 由此可见敏捷开发更注重人的作用,更注重人交流,团队协作。 2.敏捷开发-Scrum Scrum是一种迭代式增量软件开发过程,通常用于敏捷软件开发。Scrum在英语的意思是橄榄球里的争球。Scrum的开发过程如下图所示: 一个项目包含很多用户需求,可以把这些需求都划分成多个sprint(冲刺/快跑)来完成,每一个sprint就是一个迭代过程,也就是一个项目由多个迭代sprint组成。每个sprint包含需求-》分解功能-》细化-》开发-》测试-》演示等工程,这样保证了每一次sprint开发出来的版本都是“可用的软件”。 Scrum使用的软件: (1)Jira + greenHopper :项目实施和BUG跟踪 (2)Bamboo:持续化集成 (3)Confluence:wiki共享 (4)Selenium:自动化UI测试 (5)Jmeter:压力测试 3.敏捷开发-Scrum实施过程 (1)需求分析 需求主要是由需求部门完成,见如下表格:

Scrum要求需求方以ProductOwner的角色参与到项目中,直到开发结束。在需求阶段需要ProductOwner提供一份ProductBackLog来简述产品的需求列表,并且根据这些需求的重要程度给出需求的权重值,以便在计划中优先处理高级别的需求,ProductOwner可以根 在需求形成的过程中,可以在jira中新建一个项目,添加各种模块以及策略。并且把ProductBackLog录入jira系统中,jira中针对ProductBackLog的类型为Epic即大块的需求。 (2)计划会议 计划会议的参与人员包括ProductOwner,ScrumMaster,Team,大约4-6个小时的时间进行。进行的顺序如下: ①ProductOwner在jira中逐条介绍产品backLog;(30-60分钟) ②一起把backLog拆分成story,每一个sotry都必须估算时间;(180分钟) ③本次sprint的目标,起止时间以及演示时间(30分钟) ④确定哪些在本次sprint中开发(30分钟) ⑤确定sprint的立会的时间地点(5分钟) 计划会议中,把产品BackLog细化成Story,并录入jira中的Story类型中,每一个story 要尽量的细化,最好工作量是在2个小时以内(包括UI的设计),在sprint初期阶段工作量的估算主要是靠人的经验。 在确定了此次sprint的起止时间以后,就可以知道开发大体的时间是多少,然后确定哪些story可以放到此次sprint中,尽量选择权重高的story首先完成。 在确定了sprint要完成的story同时可以确定哪些story属于哪个team即分配story。 在估算每个team的工作量的时候一定要考虑实际情况,估算中每人6时/天为通用值。 (3)迭代开发 计划完毕以后就可以进入开发了,每个teamer都有了自己的任务列表,队员应该根据情况由易到难,由简到繁的顺序快速开发。 开发中要尽量使用快速开发工具Tenace。

相关文档
最新文档