敏捷开发 项目质量_项目经理在敏捷开发中的作用敏捷开发 - CSDN
  • 敏捷开发中QA如何做质量管理? 经常有人会问我,敏捷模式下,QA的职责是什么?QA有什么价值?我们还需要QA吗?敏捷转型中遇到的问题,QA能帮助解决吗?这些问题以前也思考过,笔者就是QA出身的,曾经在中兴通讯做过...

    

    敏捷开发中QA如何做质量管理?

    经常有人会问我,敏捷模式下,QA的职责是什么?QA有什么价值?我们还需要QA吗?敏捷转型中遇到的问题,QA能帮助解决吗?这些问题以前也思考过,笔者就是QA出身的,曾经在中兴通讯做过两年多的PQA,在中兴通讯的敏捷转型中也遇到过这些问题。

    先总结一下敏捷转型中遇到的问题吧,QA的工作也是要围绕这些问题展开的:

    1. 很多公司希望采用敏捷,但是又没有把握

    2. 传统的瀑布式开发流程在公司已根深蒂固,虽无法满足快速发展的需要,但大规模改动又不现实,老板也不愿意花太多的成本

    3. 缺少敏捷软件开发专家和人才

    4. 研发人员需要观念的转变和方法培训

    5. 缺乏相应的质量控制方法

    6. 需要经常的和及时的质量度量

    7. 自动化测试不能落到实处,持续集成发挥不出作用

    8. 人员水平参差不齐,有人支持有人反对

    笔者也先后参加过多次华为、腾讯、平安科技等公司的敏捷推行者的分享活动,也参加过Thoughtwork、康仕诚、ScrumCN等专业机构的培训,对国内敏捷项目的质量管理有一些想法,结合笔者这几年的质量管理经验,总结一下:

    1)QA角色的转变

    QA以往主要还是作为警察的角色,从事各种审核活动,要从警察转变成教练。传统项目里,QA习惯拿着事先准备好的检查单,对项目一条条做审核,发现问题开不符合报告,给团队的感觉就是一个监工。虽然笔者自己也不喜欢人家这么说我,但确实我们给项目成员你的印象就是监督。

    中兴通讯从2014年开始,各研究院都大力推行敏捷转型,刚开始觉得有点失落,都敏捷了,都不知道该怎么下手了,审核不能叫审核,要叫观察,审核报告也要叫观察记录。经过几个月基本上适应了,QA、项目管理员都往敏捷教练的方向上转,在外界专业教练的指导下,引导项目开展各类敏捷活动。

    比如该如何开站立会议,该怎么去做迭代的计划等等指导性的工作,不过以前的项目团队划分成十多个特性团队,一个人要跟十几个PO、SM打交道,对于QA的沟通能力增加很多,每天奔赴各个团队。

    2)QA参与各项活动,如需求梳理会、计划会、早会、持续集成看板、演示、回顾会等,各项持续集成结果也都推送到QA,这样便于及时获取团队的信息,也便于QA输出各类观察记录、报告。

    3)自动化回归测试。敏捷团队没有自动化会成功吗?可能也会成功,但我们所知道的成功团队都依赖于自动化回归测试,如腾讯和支付宝公司的Selenium框架,阿里巴巴和淘宝网的QTP框架。笔者咨询认为,敏捷开发利用测试来指导开发,为了编写的代码使测试通过,需要快速而简单地运行测试,没有短期反馈周期和安全的回归测试,团队将很快陷入技术债务,缺陷不断增加,速度越来越慢。

    4)提供并获取反馈

    反馈是敏捷的核心价值,敏捷的短期迭代可以提供持续的反馈以帮助团队正常运转,测试人员则通过自动化测试结果、探索性测试的发现和系统实际用户的观察结果的形式帮助提供支馈。如你怎么知道客户手里拿到了预期行为的正确示例?你怎么知道编写的测试用例正确地反映了这些示例?开发人员通过查看测试用例能够理解应该编写什么代码吗?QA和测试人员应该询问开发人员是否得到了足够的信息以理解需求并是否能够指导编码,询问客户是否理解质量标准,应花时间参与迭代计划会议和回顾会议以讨论这些问题并提出改进方案。

    5)构造核心的敏捷实践活动

    软件行业有一句老话是:软件质量是设计出来的。对于敏捷开发也是如此,笔者认为没有一些基础的实践活动,无法产生出高质量的软件。

    1. 持续集成:持续集成(CI)是一项软件开发实践,其中团队的成员经常集成他们的工作,通常每人每天至少集成一次,每次集成通过自动化构建完成。利用持续集成可以让缺陷在引入的当天就被发现并解决,降低缺陷修改成本;将集成工作分散在平时,通过每天生成可部署的软件;避免产品最终集成时爆发大量问题。QA可以关注这些持续集成发现的问题分布情况、解决情况、构建周期,及时度量出相关数据。

    2. 看板:最便宜的敏捷工具,可实现价值流、可视化、拉动、限制在制品、找出瓶颈等多个作用。用户故事可以用看板,QA自己的任务同样可以用看板管起来,便于QA之间互相沟通、对齐信息。

    3. 自动化测试:持续集成的前提是有自动化测试用例,以及代码静态检查、代码行覆盖率、代码复杂度等各种工具,如果这些没做起来,只是持续构建,并没有太大意义。自动化测试属于防御性测试,把所有的质量风险用穷举法列出测试用例,然后测试用例提前写好,然后写代码帮你执行,预防缺陷的泄露。但是成本同样非常大,是否能推行起来,就看领导的魄力了。

    4. 每日晨会:每个团队每天大概花15-30分钟,回顾昨天做了什么、昨天有些什么问题、同时也会介绍每个人今天计划做些什么工作(特点:是站着开会)。一般主持人由敏捷团队的成员轮流担任,这个时候可以了解每天发生的问题。QA可以参加晨会,根据自己的观察提出问题。

    5. 结对编程:两位程序员在一台电脑前工作,一个负责敲入代码,而另外一个实时检视每一行敲入的代码;操作键盘和鼠标的程序员被称为“驾驶员”,负责实时评审和协助的程序员被称为“领航员”;领航员检视的同时还必须负责考虑下一步的工作方向,比如可能出现的问题以及改进等。有助于提升代码设计质量;研究表明结对生产率比两个单人总和低15%,但缺陷数少15%,考虑修改缺陷工作量和时间都比初始编程大几倍,所以结对编程总体效率更高,同时结对编程能够大幅促进团队能力提升和知识传播。不过这个实践也是最难推行的,往往只有进度不紧的时候才会尝试。

    6. 用户故事:用户故事是站在用户角度描述需求的一种方式;每个用户故事须有对应的验收测试用例;用户故事是分层分级的,在使用过程中逐步分解细化;典型的描述句式为:作为一个XXX客户角色,我需要XXX功能,带来XXX好处。用户故事的好处是:用户故事站在用户视角便于和客户交流,准确描述客户需求;用户故事可独立交付单元、规模小,适于迭代开发,以获得用户快速反馈;用户故事强调编写验收测试用例作为验收标准,能促使需求分析人员准确把握需求,牵引开发人员避免过度设计。QA可以引导项目团队如何编写用户故事、验收标准。

    7. 迭代回顾会议:在每轮迭代结束后举行的会议,目的是分享好的经验和发现改进点,促进团队不断进步。会议需要Team全员参加,气氛宽松自由,畅所欲言,头脑风暴发现问题,共同分析根因;会议关注重点是Team共同讨论优先级,将精力放在最需要的地方(关注几个改进就够了);会议结论要跟踪闭环。QA同样可以参加回顾会议,引导团队如何召开,并跟踪改进事项。

    总之,笔者认为,质量是整个敏捷团队的职责,团队中的每一个人都应该关注手边的一个任务或者故事,敏捷模式下的质量管理更具有挑战性,但与传统瀑布模式相比,其在应对需求变化、提升产品质量、加快需求响应、缩短交付周期、提前暴露风险、及时激励员工以及平滑人力资源的使用等方面具有明显优势。敏捷的焦点在于交付有价值的软件,一直到客户满意为止。在这个“快鱼吃慢鱼”时代,要想交付好而快的产品,不防用敏捷模式试试。

    (为偷懒,本文有些内容为网上抄袭)

    

    展开全文
  • 主要有:1)测试团队在敏捷开发模式下的价值非常有限;2)开发人员只顾自已写代码,没有任何文档,测试人员无从下手,3)由于进度的原因,测试人员测试的时间非常有限,上线后出现很多问题;4)由于测试人员得不到...

      前几天,笔者与一位在大型互联网公司从事质量保证的朋友交谈,作为互联网产品质量和测试的负责人,他最近负责的质量管理方面遇到了很多困难。主要有:1)测试团队在敏捷开发模式下的价值非常有限;2)开发人员只顾自已写代码,没有任何文档,测试人员无从下手,3)由于进度的原因,测试人员测试的时间非常有限,上线后出现很多问题;4)由于测试人员得不到开发团队的认可,离职率非常高;5)质量部门无法收集到数据,不能进行质量度量;6)测试团队也有一批自动化测试专家,但派不上用场…..这些问题可能很多开发团队都会遇到,总结一下,大致是这几个方面:

        

    }        越来越多的企业希望采用,但没有把握

    }        习惯于传统的瀑布式产品开发流程已不满足快速发展需要,但大规模改动不现实

    }        缺少敏捷软件开发专家和人才

    }        技术人员需要观念的转变和方法培训

    }        缺乏相应的质量控制方法

    }        需要经常的和及时的质量度量、测试、决策

    }        自动化测试不能落到实处,每日构建仍是纸上谈兵

    在现在行业中,需求变化太快,不管我们怎么努力去做,发现还是不能满足客户的需要,不管需求搞得多么细,到交付产品给客户的事情,总是有这样那样的问题,这个时候就不得不去修改我们的软件,这是目前很多企业尤其是互联网公司面临的一个挑战,如何解决这个问题?

    笔者先后在华为、阿里巴巴软件质量部门任职,最近也深入研究了腾讯敏捷开发平台TAPD(腾讯敏捷产品开发)和IGD(集成游戏开发)一些资料,对国内敏捷项目的质量管理有很多独到的见解,结合共创力咨询公司多年的项目经验,总结如下:

    1)QA角色的转变

    QA要从警察的角色转变到一个教练的角色。在以前,团队实施CMM的时候,QA更多的是一个警察的角色,他整天拿着一个checklist、报告什么的到处去团队里面看,你是否ok,不ok就要怎么怎么样,整天就干这个活,但是引入敏捷之后,QA就觉得有点失落,都敏捷了,我都不知道该怎么下手了,在著名的通信企业华为的做法是将QA转变了一下,将QA更多的充当教练的角色,充当SCRUM Master的角色,他去指导项目团队该如何去开这个站立式会议,该怎么去做迭代的计划等等指导性的工作,这样QA也觉得挺好,这样他能参与到在不同的团队中去,QA的角色更多的偏向于全过程的敏捷活动指导,以提高产品开发效率和质量。QA在这个过程中也能得到一些数据,如代码缺陷率,版本的不良率,上线遗留问题数,团队成员配合度等等。

          2)要使敏捷团队整体参与

       QA和测试人员也是敏捷团队的一部分,作为敏捷教练,要向他提供支持和训练,以使作们适应开发的快节奏。比如,如果你是敏捷团队中的测试人员,并且计划会议和设计讨论没有邀请你,或者业务用户正在独立定义故事和需求,那你应该主动站出来和团队的其他成员交流,并偿试“三方协作”,即测试人员、开发人员和业务专家。腾讯公司把业务专家称为BA,即

       Bussiness Analyst, BA和开发人员DE、测试人员TE组成了敏捷开发团队,这些成员不仅仅把都在忙着最终的交付而努力,他们还乐于收集和分享信息,与客户或者产品负责人协作以帮助他们充分展示自已的需求,从而得到他们的需要的功能,同时向所有人提供项目进展的反馈。

    3)              自动化回归测试。敏捷团队没有自动化会成功吗?可能也会成功,但我们所知道的成功团队都依赖于自动化回归测试,如腾讯和支付宝公司的Selenium框架,阿里巴巴和淘宝网的QTP框架。汉捷咨询认为,敏捷开发利用测试来指导开发,为了编写的代码使测试通过,需要快速而简单地运行测试,没有短期反馈周期和安全的回归测试,团队将很快陷入技术债务,缺陷不断增加,速度越来越慢。

    4)            提供并获取反馈

     反馈是敏捷的核心价值,敏捷的短期迭代可以提供持续的反馈以帮助团队正常运转,测试人员则通过自动化测试结果、探索性测试的发现和系统实际用户的观察结果的形式帮助提供支馈。如你怎么知道客户手里拿到了预期行为的正确示例?你怎么知道编写的测试用例正确地反映了这些示例?开发人员通过查看测试用例能够理解应该编写什么代码吗?QA和测试人员应该询问开发人员是否得到了足够的信息以理解需求并是否能够指导编码,询问客户是否理解质量标准,应花时间参与迭代计划会议和回顾会议以讨论这些问题并提出改进方案。把反馈的结构可表示为如下:

     

     

    5)            构造核心的敏捷实践活动

    软件行业有一名老话是:软件质量是设计出来的。对于敏捷开发也是如此,汉捷咨询认为没有一些基础的实践活动,无法产生出高质量的软件。

    持续集成。持续集成(CI)是一项软件开发实践,其中团队的成员经常集成他们的工作,通常每人每天至少集成一次,每次集成通过自动化构建完成。利用持续集成可以让缺陷在引入的当天就被发现并解决,降低缺陷修改成本;将集成工作分散在平时,通过每天生成可部署的软件;避免产品最终集成时爆发大量问题。

    灰度发布。这是互联网产品的一个特点,说白了,就是对用户一个逐步放量的一个过程,而且不要求团队要尽早 的将产品包发布出来,也就是不要求马上发布给所有用户,而是会分批的去发布,比如按号段发布,比如在公司内部先体验。发布的时候也有策略,比如发布时如何放量,对用户有些什么样的实验,技术上怎样做一些后台开关,运营上怎样跟进,怎样保证4小时人员的留守,发布完后怎样收集用户反馈等等都会有一些统一的规则。比方实验室某WEB产品的发布,可以同时有多个版本,1.1版可能会有100%的用户在用,1.2版可能只有1%的用户在用,它们是一个交叉升级的过程,目前腾讯采用了该活动。

    每日晨会:每个团队每天大概花15-30分钟,回顾昨天做了什么、昨天有些什么问题、同时也会介绍每个人今天计划做些什么工作(特点:是站着开会)。笔者在阿里巴巴工作时,就经历过每日晨会,一般主持人由敏捷团队的成员轮流担任,这个时候可以了解每天发生的问题。

    结对编程:两位程序员在一台电脑前工作,一个负责敲入代码,而另外一个实时检视每一行敲入的代码;操作键盘和鼠标的程序员被称为“驾驶员”,负责实时评审和协助的程序员被称为“领航员”;领航员检视的同时还必须负责考虑下一步的工作方向,比如可能出现的问题以及改进等。有助于提升代码设计质量;研究表明结对生产率比两个单人总和低15%,但缺陷数少15%,考虑修改缺陷工作量和时间都比初始编程大几倍,所以结对编程总体效率更高,同时结对编程能够大幅促进团队能力提升和知识传播。

    用户故事。用户故事是站在用户角度描述需求的一种方式;每个用户故事须有对应的验收测试用例;用户故事是分层分级的,在使用过程中逐步分解细化;典型的描述句式为:作为一个XXX客户角色,我需要XXX功能,带来XXX好处。用户故事的好处是:用户故事站在用户视角便于和客户交流,准确描述客户需求;用户故事可独立交付单元、规模小,适于迭代开发,以获得用户快速反馈;用户故事强调编写验收测试用例作为验收标准,能促使需求分析人员准确把握需求,牵引开发人员避免过度设计。

    迭代回顾会议。在每轮迭代结束后举行的会议,目的是分享好的经验和发现改进点,促进团队不断进步;围绕如下三个问题:本次迭代有哪些做得好?本次迭代我们哪些方面还能做得更好?我们在下次迭代准备在哪些方面改进?会议需要Team全员参加,气氛宽松自由,畅所欲言,头脑风暴发现问题,共同分析根因;会议关注重点是Team共同讨论优先级,将精力放在最需要的地方(关注几个改进就够了);会议结论要跟踪闭环。

     

    总之,共创力咨询认为,测试和质量是整个敏捷团队的职责,团队中的每一个人都应该关注手边的一个任务或者故事,敏捷模式下的质量管理更具有挑战性,但与传统瀑布模式相比,其在应对需求变化、提升产品质量、加快需求响应、缩短交付周期、提前暴露风险、及时激励员工以及平滑人力资源的使用等方面具有明显优势。敏捷的焦点在于持交付有价值的软件让一直到客户满意为止。在这个“快鱼吃慢鱼”时代,要想交付好而快的产品,不防用敏捷模式试试。

    展开全文
  • 前段时间给大家整理了敏捷开发的流程,最近在整理敏捷开发项目的流程和管理制度,其整理的项目管理规程如下,这份规程也不完全算是敏捷专属的项目管理规程,主要是在结合我们公司实际的情况下编写出来的,大家在实际...


    前段时间给大家整理了敏捷开发的流程,最近在整理敏捷开发项目的流程和管理制度,其整理的项目管理规程如下,这份规程也不完全算是敏捷专属的项目管理规程,主要是在结合我们公司实际的情况下编写出来的,大家在实际嵌入到公司的过程中可以参考下,不能照搬。

    1.  目的

    规范互联网软件产品开发项目管理过程,指导开展项目研发、管理等活动。

    2.  适用范围

    本章程的作用范围为互联网软件产品开发立项至结项管理过程。

    1.对项目经理开展产品规划及设计活动以及项目管理手段和应遵循的开发流程提供了指导;

    2.对项目团队的日常管理活动及内容进行了指导;

    3.  角色及职责定义

    项目经理:

    进行产品开发过程中的业务目标、进度、成本、质量控制。

    挑选项目团队并进行团队建设,激发、鼓舞和改进团队的生产效率。

    识别项目干系人,定期向干系人汇报,并作为团队和外部的接口,屏蔽外界对团队的干扰。

    确保项目中流程被遵循,组织、监督、培训项目各实践活动。

       

    产品策划

    确定产品的功能,拆分用户故事。

    需求功能确定优先级。

    接受或拒绝开发团队的工作成果。

    参与产品开发过程中的有关会议。

    UI

    根据用户故事,负责产品的功能交互及界面设计

    组织开展人机交互及用户体验,不断跟踪改进,提高产品表现力。

    参与产品开发过程中的有关会议。

    开发

    根据用户故事,负责产品的技术架构设计及功能开发

    评估、设计及维护产品相应模块,确保模块的稳定性、易用性、高效性。

    参加产品开发过程中的有关会议。

    测试

    根据用户故事,设计产品测试标准,确保产品品质满足市场需求。

    合理分配测试资源,组织产品测试并优化测试流程及测试标准,提高测试效率。

    编写产品测试用例,提交测试问题,编写测试总结报告,以测试角度来确定产品版本是否发布。

     

    4. 项目管理过程

    按照互联网软件产品项目开发过程,可将整个项目管理过程分为立项过程、规划过程、执行与监控过程、结项过程。下面分别阐述在每个阶段过程中该如何进行项目管理。

     

    4.1 立项过程

        互联网软件产品开发项目的立项过程,通常是指从准备项目启动会到召开会议这个阶段,在立项过程中,需要完成项目目标,需求范围的初步确认,项目团队成员,其他资源的安排。

         确定项目的初步目标并达成共识

         对于项目目标,需要和干系人在以下几点上达成共识:

         项目的背景、目标用户、核心人员及产品定位是什么

         项目的资源投入预算是多少

         项目的资源投入是多少

         各人员在项目中扮演的角色和对项目的作用是什么

         准备启动会议文档

         文档内容包括:

           用户画像

           产品定位

           市场策略

           业务目标

           技术可行性

           研发成本预算

           路标规划

        召开项目启动会 

         参加人员包括:

           管理层代表

           项目经理及项目团队

           其他干系人代表

         主要议题包括:

           申明项目目标范围及对组织目标的贡献。

           管理层正式任命PM,设定期望,统一思想

           文档内容的宣讲。  

         与PM小组确定项目管理要求

           项目启动会完成后,需要与PM小组成员确定项目立项机制以及公司项目管理要求。

     

    4.2  规划阶段

    在规划阶段,团队需要共同完成产品的版本规划,迭代计划

    版本规划

    从产品的关键特性列表中按照优先级规划产品每个版本需要完成哪些特性,在规划完成后需要在项目干系人内达成共识。具体可参考《版本规划样例》

    迭代如何划分

    迭代划分是指将特性列表拆分形成用户故事列表,并将其对应的主要任务划分到各个迭代中去,形成粗粒度的项目迭代计划。这个过程主要考虑以下几个因素:

        有些任务间是有依赖关系,某个任务的开始或结束是以另一个任务的开始或结束为前提,在划分时必须考虑这种前后依赖关系。

        在安排每个迭代的任务时,需要对各种因素进行综合考虑,如平衡每个迭代中任务的技术难度和价值差异。

        除了进行初步的迭代任务划分,还需要确定项目过程中迭代任务调整的规则,如迭代任务未完成时是将剩余任务延至下一迭代还是延长迭代周期。

    确定人员分工

    项目经理需要根据每个人员的能力和特点,初步拟定大致分工。在进行任务分工时需考虑以下因素:

        任务难度与人员能力相匹配,对于明显超出能力范围或过于简单的任务容易造成负面影响。

        耦合度高的尽量分配给同一个人,避免不必要的沟通消耗。

        鼓励团队内部“任务认领”,提高人员的工作积极性和主动性。

    确定迭代运行模式

            如一周迭代、两周迭代,每个迭代包含的工作内容等。

           具体的迭代计划可参考《迭代计划样例》

    制定其他辅助计划

        制定沟通计划、风险计划和质量计划是必要的,沟通计划主要包含以下几个方面:沟通对象、沟通方式、沟通频率即可,如:


        风险计划包括风险项、负责人、重要性、应对措施,如下:


     

    质量计划包括:bug分布满足何种条件可以发布,有几个致命bug必须停止开发新特性等。。

       搭建基础技术架构

        如果是一个全新的项目,需要重新开发系统框架,则这个工作应该在迭代0完成,否则会影响后期的工作开展。系统框架的每次改动必然会导致大量的重复工作量,从而给稳定的团队节奏带来很大的毛刺。

    3.3    项目执行和监控过程

    迭代N的执行

    A、迭代N的需求细化

    考虑每个迭代需要完成的用户故事;

        用户故事需包含几个部分,工作量评估、功能性需求、非功能性需求。具体的可参考《用户故事模板及样例及拆分说明》

        用户故事编写完成后需要在团队内部进行需求评审,一方面是为了向团队成员解读该需求,另一方面团队成员也可在评审时给出指导性意见。

    B、测试用例评审

        测试人员根据用户故事要求编写对应的测试用例,并组织项目团队进行测试用例评审。根据评审意见修改测试用例

    C、开发

        将用户故事的需求开发的过程。

    D、开发自测

        在开发过程中,每完成一个功能点,都需要及时的进行开发自测并通知产品策划人员进行验收体验。

    E、验收

        开发完成后,产品策划需要对开发完成的成果进行验收,验证其是否符合用户故事的要求,验证通过后方可流到测试环节,否则需与开发详细讨论其不符合性,其验收的checklist可以参考《产品验收checklist及模板》

    F、测试和回归

            提交测试时,必须要有正确的版本。测试人员根据测试用例进行测试,在IT平台中提交测试bug,并根据测试的角度给出产品是否发布的意见,输出《测试报告》

    G、bug修改

        在IT平台中获取分配给自己的bug进行修改。

    H、showCase

        阶段性必须有可体验版本进行showCase.需要

    确定showCase时间:某个迭代开发、自测完成,准备提交测试前

    会议前1-2天发出体验版给到参与人员

    会议期间,由项目经理组织大家体验、反馈问题、记录问题。

    项目经理根据问题情况,与开发或产品确定问题的解决时间并发出会议纪要。

     I、灰度发布

           迭代一定版本后,由项目经理与团队共同决定是否需要进行灰度发布。

     

    监控方式 

    每日站立会

        主持人轮流担任,负责控制节奏,记录问题,以备会后跟踪。

        每人讲自己昨天做了什么,有什么问题,今天的计划是什么;

        其他人了解别人的工作情况,并发现指出可能存在的问题。

        对于发现的问题,鼓励认领,其余由项目经理指定责任人。

        时间通常控制在15分钟内。

        会议期间,更新任务墙,任务墙样式如下:

     

    周报

        反馈项目计划的执行情况,强调本周工作要达成的目标

        暴露出项目的问题,特别是需要领导或其他团队需要协助的问题。

        周报可在IT平台中输出。

    月报

        反馈项目当月的执行情况,包括进度、人力及质量。

        反映项目存在的问题和风险。

    迭代回顾

        每人讲述本次迭代做的好的地方和不好的地方

        回顾上个迭代不好的地方,看看改进情况。

        让每个人发言。

        每次迭代回顾会议完成后,可更新燃尽图

    3.4    结项阶段

    项目经理指导产品策划收集总结项目的产品运营数据,同时指导团队成员从自身角色进行总结,包括测试、开发、UI等。

    项目经理与项目团队成员给出项目总结报告,内容可参考《项目经验教训总结-项目团队》,《项目经验教训总结-项目经理》

    召开结项会议,各成员进行结项汇报。

    PM小组将过程文档和经验教训总结进行归档。

    展开全文
  • 工欲善其事,必先利其器,那我给大家介绍一款敏捷开发项目管理工具-Leangoo。 它是由国内最早推广敏捷 也是最权威的 Scrum中文网 研发打造,完美支持Scrum敏捷开发中的所有元素,我们一起来具体看看吧! ...

    只要是在IT互联网行业工作的人肯定对 Scrum敏捷开发 都多多少少有一些了解。工欲善其事,必先利其器,那我给大家介绍一款敏捷开发项目管理工具-Leangoo

    它是由国内最早推广敏捷 也是最权威的 Scrum中文网 研发打造,完美支持Scrum敏捷开发中的所有元素,我们一起来具体看看吧!

    Leangoo是什么?

    Leangoo是一款基于看板的项目管理工具,用它可以进行项目需求、任务、问题和文档的管理和协作。而团队工作体现为卡片,卡片的内容可以是需求、任务、缺陷等等。

    leangoo主要元素包括列表和泳道,列表管理工作的不同阶段或状态。泳道实现任务的分组对应,从两个纬度让团队的工作高度可视化。

    Leangoo提供 永久免费版(无任何限制) 在线企业版(收费:99/人/年) 私有部署版(699/人永久授权)

    具体区别可以看这里:https://www.leangoo.com/price.html

    团队为什么选择Leangoo?

        1)简洁轻量,上手快

             多多少少用过一些类似的工具,要么太繁重,太繁重学习起来很累,我们使用工具是为了提高工作效率,如果还要花时间去学习的话,那就是在加大工作量! 

    要么太大而全,太大而全的工具就是什么都有,比如说连点赞这种操作都有,从而失去产品本身初创的意义,协作不为提高效率而生了,反倒成为项目进展的的阻力!

     Leangoo基本不需要花学习成本,5分钟内就可以上手, 而它的功能方面,并不是简单的将任务罗列出来,它有完整的项目展现视图,聚焦的目标展现以及项目中的需求,缺陷的统计,可以一目了然的了解项目进展!而选择一个好的项目管理软件可以让团队更有效率,且事半功倍!

       2)永久免费(也有收费版)

         当然 永久免费 并不是噱头,在Leangoo永久免费版里,是没有任何成员或者项目数限制的,并且关于看板的统计以及项目的统计都有!

    具体几个版本的功能区别可以看这里:https://www.leangoo.com/product.html

      3)完美支持Scrum敏捷开发和看板方法

       如果恰好你们公司也是在做敏捷开发的,那么这个工具正好是你的选择。它支持所有的敏捷元素,燃尽图,工作量估算,泳道等,那如果你们没有用敏捷,但是研发团队只是在迭代,那么它也可以帮咱们更好的管理团队,并且利用电子看板,数据也可以更好的沉淀!

       Leangoo敏捷实践

    1)基于scrum创新和管理

    Scrum是用于开发和维护复杂产品的一个框架。上世纪90年代,Scrum在全球已得到广泛应用,Scrum最初用于产品研发,目前已广泛用于软硬件开发、互联网、人工智能、学校、政府、市场、管理组织运营等诸多领域。

    随着技术、市场和环境的复杂度和不确定性持续增长,Scrum在处理复杂性方面的效用日益得到证实。Leangoo可以完美实现Scrum实践落地。

    2)产品线路图

    产品路线图是重要的产品管理工具。Leangoo可以帮助我们创建价值和目标驱动的敏捷产品路线图。(横向为泳道)

    3)管理产品Backlog

    产品Backlog是Scrum框架的3个工件之一,它是一个按照价值排序的需求清单。在敏捷中需求是条目化的,通常使用用户故事来表达。通过Leangoo可以使用看板对产品Backlog条目进行可视化管理,让整个团队非常直观的了解需求的优先级和规划安排。

    4)管理Sprint Backlog

    Sprint Backlog同样是Scrum框架的3个工件之一,它包括了本次迭代需要完成的产品Backlog条目(通常是用户故事-User Story),以及基于故事拆分出来的任务。故事和任务通常都放在一个可视化的任务板上,任务板通常包括了Story,Todo,Doing,Done这4个列表,拖拽移动任务卡片以体现工作进展。

    5)故事地图

    故事地图是一个非常实用的组织和管理用户故事的实践。通过故事地图我们可以看到整个系统的全景图,基于这个全景图对产品需求进行有效的规划。

    6)验收测试

    验收测试是对软件产品行为的正式描述,通常表示为示例或使用场景。

    通常验收测试使用Given,When,Then的三段式格式来进行表达。在Leangoo中,我们通过为卡片的检查项来实现用户故事的验收测试。

    7)故事点估算

    通过故事点来进行工作量估算是一个非常普遍的敏捷实践。故事点是一个度量单位,用于表示完成一个产品待办项或者其他任何某项工作所需的所有工作量的估算结果。敏捷估算通常使用相对估算法,即设定一个基准为一个单位(一个故事点),用待估算的故事和这个基准进行比较,得到的倍数就是估算值。估算值使用类似于斐波那契数列的数字(1,2,3,4,5,8,13…)来进行表示。Leangoo更支持故事点估算

    基于Scrum敏捷的度量和统计

    1)缺陷分布

    Leangoo的缺陷管理和统计功能,可以对缺陷进行全方位记录与跟踪。使用缺陷分布对BUG进行分析,能够及时跟踪问题,提高团队的开发质量。

    2)燃尽图

    燃尽图是Scrum中的一个简单实用的团队进展跟踪的工具,能形象地展示当前迭代中的剩余工作量和剩余工作时间的变化趋势。Leangoo工具可以基于看板的变化自动生成燃尽图。

    3)团队速率

    4)任务分布

    Leangoo持续集成、持续交付、DevOps

    DevOps通过自动化的构建、部署、发布及监控实现需求的更高频的发布和反馈,是企业敏捷的重要实践。Leangoo工具深度整合集成了主流的DevOps工具链,通过Leangoo看板可以非常方便的实现持续交付流水线,做到一键构建和部署。

    关注leangoo微信公众号,实时微信接收与自己相关的任务提醒。

     

     

     

    展开全文
  • 1.目的规范互联网软件产品开发项目管理过程,指导开展项目研发、管理等活动。2.适用范围本章程的作用范围为互联网软件产品开发立项至结项管理过程。1.对项目经理开展产品规划及设计活动以及项目管理手段和应遵循的...

    1.目的

    规范互联网软件产品开发项目管理过程,指导开展项目研发、管理等活动。

    2.适用范围

    本章程的作用范围为互联网软件产品开发立项至结项管理过程。

    1.对项目经理开展产品规划及设计活动以及项目管理手段和应遵循的开发流程提供了指导;

    2.对项目团队的日常管理活动及内容进行了指导;

    3.角色及职责定义

    项目经理:

    进行产品开发过程中的业务目标、进度、成本、质量控制。

    挑选项目团队并进行团队建设,激发、鼓舞和改进团队的生产效率。

    识别项目干系人,定期向干系人汇报,并作为团队和外部的接口,屏蔽外界对团队的干扰。

    确保项目中流程被遵循,组织、监督、培训项目各实践活动。

    产品策划

    确定产品的功能,拆分用户故事。

    需求功能确定优先级。

    接受或拒绝开发团队的工作成果。

    参与产品开发过程中的有关会议。

    UI

    根据用户故事,负责产品的功能交互及界面设计

    组织开展人机交互及用户体验,不断跟踪改进,提高产品表现力。

    参与产品开发过程中的有关会议。

    开发

    根据用户故事,负责产品的技术架构设计及功能开发

    评估、设计及维护产品相应模块,确保模块的稳定性、易用性、高效性。

    参加产品开发过程中的有关会议。

    测试

    根据用户故事,设计产品测试标准,确保产品品质满足市场需求。

    合理分配测试资源,组织产品测试并优化测试流程及测试标准,提高测试效率。

    编写产品测试用例,提交测试问题,编写测试总结报告,以测试角度来确定产品版本是否发布。

    4. 项目管理过程

    按照互联网软件产品项目开发过程,可将整个项目管理过程分为立项过程、规划过程、执行与监控过程、结项过程。下面分别阐述在每个阶段过程中该如何进行项目管理。

    4.1立项过程

    互联网软件产品开发项目的立项过程,通常是指从准备项目启动会到召开会议这个阶段,在立项过程中,需要完成项目目标,需求范围的初步确认,项目团队成员,其他资源的安排。

    确定项目的初步目标并达成共识

    对于项目目标,需要和干系人在以下几点上达成共识:

    项目的背景、目标用户、核心人员及产品定位是什么

    项目的资源投入预算是多少

    项目的资源投入是多少

    各人员在项目中扮演的角色和对项目的作用是什么

    准备启动会议文档

    文档内容包括:

    用户画像

    产品定位

    市场策略

    业务目标

    技术可行性

    研发成本预算

    路标规划

    召开项目启动会

    参加人员包括:

    管理层代表

    项目经理及项目团队

    其他干系人代表

    主要议题包括:

    申明项目目标范围及对组织目标的贡献。

    管理层正式任命PM,设定期望,统一思想

    文档内容的宣讲。

    与PM小组确定项目管理要求

    项目启动会完成后,需要与PM小组成员确定项目立项机制以及公司项目管理要求。

    4.2规划阶段

    在规划阶段,团队需要共同完成产品的版本规划,迭代计划

    版本规划

    从产品的关键特性列表中按照优先级规划产品每个版本需要完成哪些特性,在规划完成后需要在项目干系人内达成共识。具体可参考《版本规划样例》

    迭代如何划分

    迭代划分是指将特性列表拆分形成用户故事列表,并将其对应的主要任务划分到各个迭代中去,形成粗粒度的项目迭代计划。这个过程主要考虑以下几个因素:

    有些任务间是有依赖关系,某个任务的开始或结束是以另一个任务的开始或结束为前提,在划分时必须考虑这种前后依赖关系。

    在安排每个迭代的任务时,需要对各种因素进行综合考虑,如平衡每个迭代中任务的技术难度和价值差异。

    除了进行初步的迭代任务划分,还需要确定项目过程中迭代任务调整的规则,如迭代任务未完成时是将剩余任务延至下一迭代还是延长迭代周期。

    确定人员分工

    项目经理需要根据每个人员的能力和特点,初步拟定大致分工。在进行任务分工时需考虑以下因素:

    任务难度与人员能力相匹配,对于明显超出能力范围或过于简单的任务容易造成负面影响。

    耦合度高的尽量分配给同一个人,避免不必要的沟通消耗。

    鼓励团队内部“任务认领”,提高人员的工作积极性和主动性。

    确定迭代运行模式

    如一周迭代、两周迭代,每个迭代包含的工作内容等。

    具体的迭代计划可参考《迭代计划样例》

    制定其他辅助计划

    制定沟通计划、风险计划和质量计划是必要的,沟通计划主要包含以下几个方面:沟通对象、沟通方式、沟通频率即可,如:

    131031333864530.gif

    风险计划包括风险项、负责人、重要性、应对措施,如下:

    131032034951865.gif

    质量计划包括:bug分布满足何种条件可以发布,有几个致命bug必须停止开发新特性等。。

    搭建基础技术架构

    如果是一个全新的项目,需要重新开发系统框架,则这个工作应该在迭代0完成,否则会影响后期的工作开展。系统框架的每次改动必然会导致大量的重复工作量,从而给稳定的团队节奏带来很大的毛刺。

    3.3项目执行和监控过程

    迭代N的执行

    A、迭代N的需求细化

    考虑每个迭代需要完成的用户故事;

    用户故事需包含几个部分,工作量评估、功能性需求、非功能性需求。具体的可参考《用户故事模板及样例及拆分说明》

    用户故事编写完成后需要在团队内部进行需求评审,一方面是为了向团队成员解读该需求,另一方面团队成员也可在评审时给出指导性意见。

    B、测试用例评审

    测试人员根据用户故事要求编写对应的测试用例,并组织项目团队进行测试用例评审。根据评审意见修改测试用例

    C、开发

    将用户故事的需求开发的过程。

    D、开发自测

    在开发过程中,每完成一个功能点,都需要及时的进行开发自测并通知产品策划人员进行验收体验。

    E、验收

    开发完成后,产品策划需要对开发完成的成果进行验收,验证其是否符合用户故事的要求,验证通过后方可流到测试环节,否则需与开发详细讨论其不符合性,其验收的checklist可以参考《产品验收checklist及模板》

    F、测试和回归

    提交测试时,必须要有正确的版本。测试人员根据测试用例进行测试,在IT平台中提交测试bug,并根据测试的角度给出产品是否发布的意见,输出《测试报告》

    G、bug修改

    在IT平台中获取分配给自己的bug进行修改。

    H、showCase

    阶段性必须有可体验版本进行showCase.需要

    确定showCase时间:某个迭代开发、自测完成,准备提交测试前

    会议前1-2天发出体验版给到参与人员

    会议期间,由项目经理组织大家体验、反馈问题、记录问题。

    项目经理根据问题情况,与开发或产品确定问题的解决时间并发出会议纪要。

    I、灰度发布

    迭代一定版本后,由项目经理与团队共同决定是否需要进行灰度发布。

    监控方式

    每日站立会

    主持人轮流担任,负责控制节奏,记录问题,以备会后跟踪。

    每人讲自己昨天做了什么,有什么问题,今天的计划是什么;

    其他人了解别人的工作情况,并发现指出可能存在的问题。

    对于发现的问题,鼓励认领,其余由项目经理指定责任人。

    时间通常控制在15分钟内。

    会议期间,更新任务墙,任务墙样式如下:

    131033062616789.gif

    周报

    反馈项目计划的执行情况,强调本周工作要达成的目标

    暴露出项目的问题,特别是需要领导或其他团队需要协助的问题。

    周报可在IT平台中输出。

    月报

    反馈项目当月的执行情况,包括进度、人力及质量。

    反映项目存在的问题和风险。

    迭代回顾

    每人讲述本次迭代做的好的地方和不好的地方

    回顾上个迭代不好的地方,看看改进情况。

    让每个人发言。

    每次迭代回顾会议完成后,可更新燃尽图

    3.4结项阶段

    项目经理指导产品策划收集总结项目的产品运营数据,同时指导团队成员从自身角色进行总结,包括测试、开发、UI等。

    项目经理与项目团队成员给出项目总结报告,内容可参考《项目经验教训总结-项目团队》,《项目经验教训总结-项目经理》

    召开结项会议,各成员进行结项汇报。

    PM小组将过程文档和经验教训总结进行归档。

    展开全文
  • 敏捷开发也是顺应市场的对价值的诉求和日益复杂的业务而产生的方法论,敏捷开发是追求高质量软件的方法论和过程。 本文将和大家一起探讨软件质量的含义,以及敏捷开发中如何进行高质量软件的
  • [摘要] ...以下分享产品项目里的九个敏捷开发实战经验。  敏捷开发越来越火热,但在实际应用当中很多时候都是只有敏捷的“形”,却缺少敏捷的“神”,还只是在摸索中。  在《Scrum:兼顾计
  • 敏捷项目质量保证

    2008-11-05 13:49:00
    何谓敏捷敏捷在一定程度上是一种思维方式。它鼓励个人与团队的融合,崇尚快速响应变化,抛弃繁杂的文档。这些从敏捷的宣言可以看出:个体和交互比过程和工具更有价值;能工作的软件比全面的文档更有价值;顾客的...
  • 敏捷项目质量标准

    2019-08-05 10:08:22
    所有敏捷工作均有项目质量标准,在一项工作初期由团队协作地定义,并在整个工作期间协作地改进。项目质量标准有助于敏捷团队的凝聚力,同时尽管团队可随着项目发展作调整,但仍提供一个结构来营造一个自我约束的...
  • 本文将结合敏捷开发周期短,变化快等特点,介绍如何通过在开发过程中采取一系列步骤来保证和提高整个开发团队的代码质量,并阐述了每一步可以利用的工具和最佳实践,从而使开发过程更加规范化,成就高质量的代码,...
  • 敏捷是一个很流行的一个词语,但是在敏捷里面,包括很多团队也是刚开始用Scrum,怎么让质量成为敏捷的一个助力而不是拖累,这个是我主要想谈的。 关于质量的定义,我前不久接触到一个文章,里面有一个图讲到质量的五...
  • 为什么要进行敏捷开发? 现在是互联网的时代,互联网产品的更新速度可谓是日新月异。互联网的开发模式也是主要围绕“快速迭代”的主题来开发产品。 在飞速发展的互联网行业里,产品是以用户为导向在随时演进的。...
  • 参考1 https://www.sohu.com/a/128624542_177747 参考2 https://wenku.baidu.com/view/b9080553ed630b1c58eeb564.html 参考3 https://www.cnblogs.com/mikeyond/archive/2011/06/30/2094274.html ...
  • 敏捷开发流程总结

    2015-12-14 16:36:10
    Agile——敏捷开发,作为CMM神话崩溃后被引入的一套新的软件开发模式,这几年来被广泛引起关注,并被寄予厚望。敏捷开发在其他业界的应用是否理想不得而知,但以下总结了我所在公司的敏捷开发试验,希望可以达到...
  • 说一下你对敏捷开发的理解,为什么要使用敏捷开发? 》瀑布模型的典型问题就是周期长,发布烦,变更难。 》敏捷开发就是快速迭代,持续集成,拥抱变化。     所谓“敏捷”,顾名思义,可以通俗...
  •  不同与传统的软件开发模式,敏捷开发模式有着自己鲜明的价值和方法。  其中,敏捷测试部分也同以往的软件测试流程有所不同。这对测试人员提出了新的要求,带来了新的挑战。 第一部分:敏捷软件开发简介 敏捷...
  • 瀑布模型:简单说就是先定好需求和相关文档,然后构建框架,然后写代码,然后测试,最后发布个产品一旦文档需求确定,开发人员就按文档开发,直到产品开发完后,才会拿出来给客户。不过这种方式基本不适应现今快速...
  • 但是人们选择敏捷开发作为管理方法是有原因的:更高的交付保障,更高的生产率,更高的质量……这和人们选择C++(而不是C)的原因还是很接近的:都是为了更高的绩效。在下面的所有文章中,“敏捷开发绩效管理”都将...
  • 敏捷开发实战经验

    2018-05-30 18:22:35
    以下分享产品项目里的九个敏捷开发实战经验。 敏捷开发越来越火热,但在实际应用当中很多时候都是只有敏捷的“形”,却缺少敏捷的“神”,还只是在摸索中。 在《Scrum:兼顾计划与灵活的敏捷开发...
1 2 3 4 5 ... 20
收藏数 37,028
精华内容 14,811
关键字:

敏捷开发 项目质量