禅道的使用说明-Scrum的项目之道主要内容•关于Scrum•关于禅道•组织管理•产品管理•项目管理•质量管理•我的地盘•其他相关关于禅道我们是不是这样的呢?•大部分项目都还是采用瀑布式管理。•开发周期比较长,对市场的变化响应不灵活。•产品经常延期发布。•产品的质量总是不能满足预期。•团队长期加班,工作没有成就感。有没有更好的项目管理方法呢?——敏捷是一个不错的选择敏捷宣言•个体与交互重于过程和工具•可用的软件重于完备的文档•客户协作重于合同谈判•响应变化重于遵循计划敏捷背后的十二个规则•我们的最高目标是,通过尽早和持续地交付有价值的软件来满足客户。•欢迎对需求提出变更——即使是在项目开发后期。要善于利用需求变更,帮助客户获得竞争优势。•要不断交付可用的软件,周期从几周到几个月不等,且越短越好。•项目过程中,业务人员与开发人员必须在一起工作。•要善于激励项目人员,给他们以所需要的环境和支持,并相信他们能够完成任务。•无论是团队内还是团队间,最有效的沟通方法是面对面的交谈。•可用的软件是衡量进度的主要指标。•敏捷过程提倡可持续的开发。项目方、开发人员和用户应该能够保持恒久稳定的进展速度。•对技术的精益求精以及对设计的不断完善将提升敏捷性。•要做到简洁,即尽最大可能减少不必要的工作。这是一门艺术。•最佳的架构、需求和设计出自于自组织的团队。•团队要定期反省如何能够做到更有效,并相应地调整团队的行为。和瀑布式开发相比较•敏捷的开发周期更短,最长不超过一个月•持续的交付可以工作的软件。•客户的充分参与。•坐在一起的团队,面对面的沟通和交流。•团队的自组织和管理。敏捷开发的两种流行方式•极限编程–极限编程,偏重于开发实践。采用一系列的开发实践了保证代码的质量和按期交付。–单元测试,持续集成,TDD,结对编程,重构……•scrum–偏重于宏观的项目管理,并没有规定具体的开发实践。•scrum+xp让我们来快速了解下scrum•它是一种应对快速变化的需求的一种软件开发能力。•它更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重做为软件开发中人的作用。关于ScrumScrum核心要素Scrum流程借助于工具借助于禅道:)关于禅道禅道概述•禅道项目管理系统是什么?•为什么选择禅道系统?•禅道系统理论基础。•禅道系统功能列表。•禅道系统用户角色。•禅道系统基本概念。•禅道系统项目管理的基本流程。•禅道系统和scrum的对应关系。禅道项目管理系统是什么?•禅道项目管理系统(ZenTaoPMS)是一款国产的,基于LGPL协议,开源免费的项目管理软件,它集产品管理、项目管理、测试管理于一体,同时还包含了事务管理、组织管理等诸多功能,是中小型企业项目管理的首选。•禅道项目管理软件使用PHP+MySQL开发,基于自主的PHP开发框架──ZenTaoPHP而成。第三方开发者或者企业可以非常方便的开发插件或者进行定制。•禅道是一款scrum管理工具,并针对国内的实际情况做了扩展,完整的覆盖从产品到项目到测试的核心流程。为什么选择禅道系统?•完整覆盖项目管理的核心流程•包括产品管理,任务管理和质量管理•基于国际流行的敏捷管理方式scrum。•B/S架构,方便部署、使用。•概念简单,容易上手。•开源的项目管理软件,可自由进行定制,修改。•免费的项目管理软件,降低企业的投入成本。禅道系统的理论基础禅道系统的功能列表•组织管理–部门管理、用户管理、分组管理、分组管理、权限管理•产品管理–产品管理、需求管理、计划管理、发布管理、路线图•项目管理–项目管理、任务管理、项目需求管理、团队管理、工时管理、build管理、燃烧图。•质量管理–Bug管理、测试用例管理、测试任务管理。•我的地盘–TODO管理、我的需求、我的bug、我的任务……用户角色•系统管理员(Admin)–系统管理员主要负责添加用户,分配权限。•产品人员(productowner)–产品人员主要负责产品管理。•开发人员(developer)–开发人员负责产品的研发。•测试人员(QA)–测试人员保证产品的质量。•项目经理(ProjectManagerorscrummaster)–通过项目,协调产品人员,开发人员,测试人员完成产品。scrum里面,该角色称为scrummaster。基本概念•组织视图:–部门结构、用户和分组•产品视图:–产品、需求、计划、发布和路线图•项目视图:–项目、任务、产品、需求、bug、build、燃烧图、团队•QA视图:–Bug、测试用例和测试任务•我的地盘:–todo、任务、项目、需求、bug禅道项目管理的基本流程•首先产品人员维护需求列表,需求有优先级和预计工时。•召开产品计划会议,与会人员有产品、研发和测试,大家就当前项目(固定的时间和人)所需要完成的需求达成一致,形成项目的需求列表。•项目团队对需求进行WBS任务分解,开始开发。•测试人员根据需求创建自己的测试用例。当有版本提交以后,建立相应的测试任务,记录缺陷。研发人员修复bug。•项目结束之后,大家召开演示会议,团队向相关人员(产品人员及所有感兴趣的人)展示该项目所取得的成果。大家提出的反馈由产品人员整理成为需求。•开始下一轮的循环。禅道和scrum的对应组织管理组织管理•建立部门结构•添加用户•设置分组•分组成员维护•分组权限维护建立部门结构合理的部门结构是项目成功的组织保障,也是公司健康发展的基石。提示添加用户禅道中,所有的添加操作都在页面的最右面。提示设置分组分组的目的主要是用来分配权限。提示分组成员维护一个用户可以属于多个分组。提示分组权限维护设置权限的时候,根据自己团队实际的情况进行组合。一般来讲,删除权限需要慎重。还有就是以”接口“开头的方法所有人都应该分派。在实际使用过程中,如果提示访问受限,可以由管理员分配权限之后,重新登录即可。提示小结•组织管理主要完成用户和分组管理,用户通过所属的分组获得自己应用的权限。•禅道系统会根据当前登录的每一个用户的权限来进行相应的操作,允许还是禁止。第四章产品管理•产品管理是至关重要的一环•添加产品•维护产品模块•添加需求•需求详情•需求处理流程•计划•发布•路线图产品管理至关重要•很多项目管理软件中只有单纯的任务管理,没有产品管理。乃至很多的软件将产品和项目混为一谈。•在禅道中,项目是一个动态实施的过程,项目的产出是可以交付的产品。•在禅道中,所有的一切都是围绕产品展开的。•产品管理的核心是需求。在scrum里面,简化为story(用户故事)。即像讲故事一样来描述一个需求。添加产品维护产品模块产品模块就像一棵树,用来组织需求。提示添加需求(1)添加需求(2)•添加需求的时候,应该选择对应的模块。•如果有产品计划,可以选择相应的计划。•默认刚刚添加的需求为草稿,需要进行评审。如果团队中不需要走评审流程,可以将“不需要评审”选上。•需求可以上传附件。需求详情通过需求详情页面可以看到需求的所有信息,以及历次的修改记录。提示需求处理流程(1)•需求有一个状态(status)字段,总共有四种状态,分别是草稿(draft)、激活(active)、已变更(changed)和已关闭(closed)。•对应为需求的流程操作共有:创建、变更、审核、关闭、激活。•需求还有一个阶段(stage)字段,用来描述激活的需求在研发过程中所处的阶段。目前总共有等待、已计划、已立项、开发中、开发完毕、测试中、测试完毕、已验收、已发布。需求的处理流程(2)变更需求审核关闭通过撤销否?新增需求审核立项开发测试验收发布通过拒绝否?拒绝,给出拒绝原因,关闭有待明确项目团队确认变更任务、用例关闭继续原来的研发过程有待明确验收发布需求所经历的各个阶段未通过未通过添加计划(plan)凡事预则立。计划可以帮助产品人员宏观把握产品,做到心中有数。提示为计划关联需求发布(release)路线图计划、发布、build和路线图•计划主要是给产品人员规划需求使用。它和实际的项目没有直接的对应关系。一个项目中做的需求可能和计划完全一样,也有可能涉及多个计划。•build是在项目过程中产生的,主要用来测试使用。build是对内的。•经过若干项目之后,产品人员可以选择发布一个版本,发布是对外的。而且发布肯定和一个build对应。•已经发布的版本加上未来的plan,构成产品的路线图。项目管理项目管理•添加项目•组建团队•关联产品、需求•分解任务•工时管理•燃烧图•build添加项目项目代号和团队名称应用团队自由设置,体现自主管理。提示组建团队每个人在项目中的角色可以自由设定,工时一般都应小于8,因为基本上每个人每天都需要处理一些其他事情。提示关联产品一个项目可以关联多个产品,禅道系统中,支持项目和产品之间的矩阵关系。提示关联需求关联需求的过程,是对产品中的需求列表进行排序的过程,也是项目团队达成契约的过程。项目中的需求列表是产品视图中的需求列表的子集。提示分解任务分解任务时,可以设置任务的类型,比如是设计,还是开发。任务也可以不用关联需求。任务需要给一个估计值。提示工时管理项目中每一个成员每天都应该更新自己负责的任务的预计剩余时间。提示燃尽图(burndown)系统通过定时任务,自动计算项目中所有未完任务预计剩余时间之和,画出曲线图。燃烧图可以告诉我们很多东西。提示Buildbuild管理对于开发来讲是很重要的,它属于scrum的范畴。在禅道中,暂时将其简化。在项目开发过程中,如果有若干功能已经开发完毕,需要提交测试,这是应当创建一个build,然后提交给QA进行测试。后续的bug管理和测试任务管理都应当基于一个build展开的。源代码地址可以给出svn的存储路径或者其他版本控制系统的路径。如果没有源代码地址,需要给出build包的存储地址。提示质量管理质量管理•测试用例管理–测试用例模块–添加测试用例–测试用例详情•测试任务管理–创建测试任务–管理用例–执行用例–查看结果–创建Bug•Bug管理–Bug处理流程–创建bug–解决bug–关闭bug–激活bug–编辑bug测试用例模块•测试用例有自己单独的模块划分,独立于产品视图中的模块划分。•为什么独立开,是因为使用角度不同,产品视图中的模块是给产品人员使用的,而测试用例模块是为了维护用例使用的。测试用例管理(1)•当项目关联需求之后,QA人员应当针对当前项目所要开发的需求创建测试用例。•虽然可以不写测试用例,直接进入bug测试环节,但这样会有缺漏。•在禅道系统中,测试用例是分步骤的。测试用例管理(2)测试用例详情创建测试任务关联测试用例执行测试用例(1)执行测试用例(2)用例执行结果创建Bug•如果某一次用例执行失败,可以根据这个结果创建Bug,系统会自动生成bug的重现步骤。Bug管理•Bug管理的流程同BugFree我的地盘我的地盘•前面所有的一切最终体现在每一个人每天的行动上面。•我的地盘中列出了需要自己处理的任务、需求、bug等。•还可以通过todo来管理自己每天的日程。•todo类型分为三种,一种是和项目任务管理,一种是和bug关联,还有一种是自定义。•这样可以将项目中的任务或者bug转换为每天的todo。我的地盘我的todo其他相关其他相关•搜索功能–需求、bug、用例都是可以进行搜索的。支持全文检索(like查询,大数据量会有速度问题。)•邮件功能–需求相关的操作和bug相关的操作都会email通知相关的人员。•排序功能–列表页面点击标题都是可以进行排序的。总结•Scrum•禅道需求项目计划需求WBS需求任务开发任务测试Build测试任务测试用例BUG总结我的地盘燃尽图Thanks!