云栖社区发布的《2017中国开发者调查报告》显示,37.3%的开发者表示,协作工具主要来自企业内部自研的协作工具,有21%的调查者正在使用禅道项目管理软件作为项目开发协作工具,Jira以17%尾随其后。禅道以其开源、专业赢得了国内众多开发者用户的青睐。
自给自足的开发者特性
从调查报告可以看到,高达37.3%的开发者团队在工作中采用企业自己研发的协作软件。由于其自身的开发者属性,企业自研软件首先具备了技术基础,开发者们完全可以实现自给自足;其次,采用自研软件可以省去一部分软件购买费用,为企业节省开支;三,自研软件按照企业需求定制,跟企业的契合度高。
专业软件使用者占四成
除了自研软件,专业的协作软件同样拥有众多青睐者。禅道和Jira的开发者用户占到了38%,跟自研软件的使用者数量基本持平。
跟自研软件相比,专业软件拥有稳定的研发团队和技术支持团队,既能保证软件的快速更新,也能随时提供专业的技术支持和指导服务。而且专业软件有着多年的市场和用户基础,极其贴合用户需求,适合大多数公司的需要。
开发者使用人数最多的禅道是青岛易软天创公司出品的项目研发类管理工具,它集产品管理、项目管理、质量管理、文档管理、组织管理和事务管理于一体,是一款专业的研发项目管理软件,完整覆盖了研发项目管理的核心流程。
紧随其后的Jira是Atlassian公司出品的项目与事务跟踪工具,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。
二者作为中国开发者最喜欢的协作管理软件,不同点在于,Jira是商用软件,禅道是开源软件。相同的地方是,禅道和Jira都有着配置灵活、功能全面、部署简单、扩展丰富的优点,被广泛的应用在项目管理,任务、bug跟踪,需求管理等方面。而且,禅道和Jira还拥有最大的一个共性是,都是基于Scrum的敏捷开发模式。也就是说,Scrum已成为最受中国开发者欢迎的开发模式。
什么是Scrum开发模式?
Scrum的英文意思是橄榄球运动的一个专业术语,表示“争球”的动作;把一个开发流程的名字取名为Scrum,可以想象开发团队在开发一个项目时,大家像打橄榄球一样迅速、富有战斗激情、人人你争我抢地完成它是怎样一种高效的工作状态。
没错,Scrum正是这样的一个开发流程,每个环节都有一套完整的过程和严格的时间控制。也就是说,Scrum是围绕流程控制展开的。
Scrum开发模式是怎样运作的?
1.首先要明确Scrum里的角色
Scrum由product owner(产品经理)、Scrum master和team(研发团队)组成。
其中product owner负责整理user story(用户故事),定义其商业价值,对其进行排序,制定发布计划,对产品负责。
Scrum master 负责召开各种会议,协调项目,为研发团队服务。
研发团队则由不同技能的成员组成,通过紧密协同,完成每一次迭代的目标,交付产品。
2.快速迭代开发是Scrum的基本特征
与瀑布不同,Scrum将产品的开发分解为若干个小sprint(迭代),其周期从1周到4周不等,但不会超过4周。参与的团队成员一般是5到9人。每期迭代要完成的user story是固定的。每次迭代会产生一定的交付。
3.Scrum的基本流程
Scrum的基本流程如上图所示:
l 产品负责人负责整理user story,形成左侧的product backlog。
l 发布计划会议:product owner负责讲解user story,对其进行估算和排序,发布计划会议的产出就是制定出这一期迭代要完成的story列表,sprint backlog。
l 迭代计划会议:项目团队对每一个story进行任务分解,分解的标准是完成该story的所有任务,终每个任务都有明确的负责人,并完成工时的初估计。
l 每日例会:每天Scrum master召集站立会议,团队成员回答昨天做了什么今天计划做什么,有什么问题。
l 演示会议:迭代结束之后,召开演示会议,相关人员都受邀参加,团队负责向大家展示本次迭代取得的成果。期间大家的反馈记录下来,由po整理,形成新的story。
l 回顾会议:项目团队对本期迭代进行总结,发现不足,制定改进计划,下一次迭代继续改进,已达到持续改进的效果。
团队协作过程中最主要的问题是沟通不顺畅,成员各自为战,而协作软件的作用正是打破彼此之间的隔阂,消除孤岛,让工作内容和流程透明化,成员在团队master指挥下齐头并进,合力推进项目进展。
协作软件的Scrum如何体现?
1.明确角色定位,成员各司其职
我们上面提到Scrum是由不同角色构成,也就是一个项目团队由不同角色的成员组成,而每个角色定位代表不同工作职责,分管任务不同。以禅道管理软件为例,就设置了多种角色定位,核心的三种角色是产品经理、研发团队和测试团队,这三者之间通过需求进行协作,实现了研发管理中的三权分立。其中产品经理整理需求,研发团队实现任务,测试团队则保障质量,其三者的关系如下图:
基本流程如下:
l 产品经理创建产品
l 产品经理创建需求
l 项目经理创建项目
l 项目经理确定项目要做的需求
l 项目经理分解任务,指派到人
l 测试人员测试,提交bug
2.分解任务,责任到人
项目开始之初,项目经理负责任务分解,工时估算,并在协作软件中设置起止时间、可用工时、项目目标及团队成员等要素。
接下来成员领取任务,并随时更新已用和剩余工时。已经做了多少工作,还剩多少工作一目了然。
3.开发和检测并存的过程
项目经理一般充当着开发过程中Scrum master的角色,燃尽图、甘特图、看板、工作日志等多种方式为项目经理提供了随时掌控项目进度和成员工作情况的可能。如出现偏差,可随时指导和调动资源,始终将项目各要素掌控在手中。
禅道的任务看板以任务的状态(未开始、进行中、已完成、已取消、已关闭)显示,项目任务完成了哪些,还剩哪些,正在进行中的有哪些可以直观的看到。
燃尽图是在项目完成之前,对需要完成的任务工时的一种可视化显示。
燃尽图有一个Y轴(任务)和X轴(时间)。
理想情况下,该图表是一个向下的曲线,随着剩余任务的完成,“烧尽”至零。
禅道中会根据项目中所有任务预计剩余的时间累加起来,绘制成燃尽图。
项目开发工作完成后交由测试团队测试,测试完成后交由产品经理发布。这其中的每个过程都是一个透明化,可检视和不断调整适应的过程,产品在这个过程中不断迭代更新,功能愈发符合用户需求,成员更加高效默契的工作。也正因为如此,Scrum已经成为全球非常流行的开发模式。
Scrum的概念最早提出是在1990年代初,经过几十年的运用和优化,Scrum呈现出了更加贴合开发流程的诸多特色,已经成为非常成熟的开发模式。实践证明,Scrum也确实是提升新产品开发速度和灵活性的有效方法。
很多人说Scrum的模式并不适合中国。其实,从《2017中国开发者调查报告》的数据中,Scrum开发模式的高占比已经说明一切。