基于禅道 zentaopms 的敏捷 Scurm 实践

基于禅道 zentaopms 的敏捷 Scurm 实践

禅道项目管理软件是『王春生』大神的作品,国产开源项目管理软件的佼佼者。笔者是一枚曾长期在美资公司工作的码农,使用更多的是 JIRA 这样的工具,但是从 2015 年开始关注禅道,并且在最近的两三年的项目中持续使用,确实是一个不错的软件工具,基于 Agile Scrum 方法论进行的实践,当然禅道官网也有更多的关于禅道的使用方法视频和帮助文档,本篇就主要从项目实践的角度来探讨禅道的使用。

[TOC]

0. 目录

  1. 禅道的部署
  2. 完整项目流程
  3. 敏捷实践
  4. 禅道的升级

1. 禅道的部署

不得不说,更多的禅道的使用者是软件测试人员,理由其实很“历史”,开发人员有自己的管理系统,并且该系统不支持测试管理。是的,中国的不长的软件开发历史上,确实是以“开发”为重的,等到越来越多的公司和团队意识到软件测试的重要性的时候,其实已经不用往“开发的管理系统”上再开发添加测试功能了,因为有了专门管理测试的软件,例如:禅道。当然也有 Bugfree,QC/ALM,JIRA,Mantis 等,国产管理系统中,禅道算是比较完整的方案,当然还有一些其他的方案,名气最大的应该是腾讯公司的 TAPD,以及 Testin 的 BugOut,还有今天刚刚看到的飞蛾(http://feie.work),这里我们还是专门聊禅道。

还是要说一句的是,希望技术团队的开发人员也尽早能够用上禅道,如果测试人员在用禅道的话。

首先,要用禅道,我们要做的事情是需要安装部署。禅道是一个 PHP 开发的 Web 系统,需要一个支持 PHP 的 Web 服务器,建议用 Apache 或者 Nginx,迫不得已用 IIS 也可以。

1.1 选择 xampp 进行源码安装

安装步骤如下:

  1. 安装 xampp
  2. 官网下载禅道源码包,最新的源码包为 zentaopms.10.4.stable.zip(http://dl.cnezsoft.com/zentao/10.4/ZenTaoPMS.10.4.stable.zip
  3. 复制源码包到 xampp/htdocs 目录中,并解压出来,形成 xampp/htdocs/zentaopms 文件目录
  4. 启动 apache 和 MySQL
  5. 访问 http://localhost/zentaopms/www 按照提示,完成安装。
  6. 也可以不使用 xampp,例如在 Linux 中安装,或者用 WampServer、宝塔、PhpStudy、UPUPW 等都可以完成禅道的部署。当然与可以部署在 阿里云服务器、腾讯云服务器、天翼云服务器等。具体的安装步骤截图等就不再这里赘述了。
  7. 安装好以后,登录系统,进入主页。
snipaste_20181009_161856.png

1.2 选择禅道一键安装包直接安装

禅道官网也提供了一键安装包,实际上是该安装包集成了基于 PHP 的 Web 服务器环境,需要注意的是,一键安装后会自动安装一个 apache 和 MySQL,千万注意与原本存在的 apache 和 MySQL 冲突。

1.3 常见故障处理

  • 浏览器白屏
    MySQL 数据库没有启动,启动失败
    MySQL 数据库端口不匹配(3306)
    MySQL 用户密码不匹配
  • 浏览器报 404
    • object not found 活该你单身
    • 检查端口和路径
  • 重置密码
    • 点击忘记密码
    • 按照指引,在 zentaopms/www 创建一个 xxxx.txt 的文件
    • 点击指引的刷新按钮
    • 转到重置用户密码的页面,输入用户名,如果用户名忘记了,需要打开数据库管理工具,选择 zentao 数据库的 zt_user 表,查看用户名
    • 重置之后,在浏览器重新输入 http://[host][:port]/zentaopms/www

2. 完整项目流程

禅道其中一个很重要的特点就是订制能力比较强,可以订制流程,也可以订制工作模块。这里主要讨论的是完整的研发管理流程。

2.1 敏捷 Scrum 基础背景

Scrum 的使用有一些需要了解的基础知识背景,主要是角色和构件的介绍。

接下来主要介绍3个角色

敏捷三大角色.jpg
  1. PO,Product Owner,产品负责人

    产品负责人是整个产品的负责人,主要做的事情是负责产品的进度、计划、需求和发布。对应禅道的“产品”功能。

  2. SM,Scrum Master,敏捷教练

    这个是敏捷团队特有的角色,并不是项目经理,而是独立的个体,任务和职责是保证团队足够“敏捷”。这一点是禅道与Scrum 不一致的地方。禅道这里对应的是“迭代”或者“项目”。

  3. TM,Team Member,团队成员

    敏捷团队中,包括项目经理,开发与测试。对应禅道的是:项目经理负责“迭代”里面的任务,任务是分配给开发和测试。同时禅道又单独区分了测试。提出了测试模块。

2.2 系统使用流程

敏捷的主要流程如下:

1030887-20161022224425123-1825836340.png
  1. 用管理员登录系统,找到【组织】页面,维护公司信息,创建部门,再创建用户。用户至少需要包括:

    • 产品经理
    • 项目经理
    • 研发主管
    • 测试主管
    • 研发人员(若干)
    • 测试人员(若干)
    Capture.PNG
    角色 主要工作 备注说明
    管理员 维护公司信息和模块,管理用户和权限
    产品经理Product Owner 给产品提需求
    项目经理Scrum Master 给当前迭代SPRINT挑选需求,并分解需求为任务
    开发人员Developer 完成项目经理分解的任务
    测试人员Tester 对当前挑选的需求建立用例,执行用例并提交缺陷
  2. 禅道由三大模块组成:产品、项目和测试。

    img
  3. 产品经理登录系统,创建一个新的产品:

    • 产品的负责人、测试的负责人(测试主管)、发布的负责人(项目经理或者研发主管

    • 产品的类型:正常、多分支(基础版旗舰版开源版……)、多平台(Windows PCAndroidiOS(iPhone,iPad)BlackBerryMacWindows PhoneSymbian……)

    • 维护产品的平台和模块(注意功能整合和重复性)

    • 创建产品的计划,按照产品的发布进度进行划分

    • 产品经理提需求(单独和批量),需求的计划需要选择;然后需求的描述“作为XXX,我希望可以XXX,实现XXX”-- 用户故事(User Story),需求要写的笼统一些。验收标准需要量化或者清晰。验收标准是测试标准。

      注意的点

      • 产品模块需要产品经理登录
      • 产品有多分支和多平台之分。在写模块的时候,需要注意区分
      • 产品的模块,是拆分产品的功能的重要依据
      • 产品的需求,就是用户故事(User Story),也就是一句话需求
        • As a <type of user>, I want <some goal> so that <some reason>.
        • 作为一名<*某种类型的用户*>,我希望<*达成某些目的*>,这样可以<*开发的价值*>。
      • 产品的需求中,对验收标准的描述,需要确定和详细
      • 添加需求的时候,注意需求是否需要评审
      • 添加需求的时候,注意产品的预估时间
      • 需求的变更 vs 需求的编辑
        1. 需求变更可以改变需求的描述验收标准
        2. 需求编辑只能改变需求的基本信息备注
  4. 项目经理登录系统,创建一个项目,该项目务必关联刚刚创建的产品,如果这个产品是多分支的或者多平台的,需要关联具体的平台或者分支。

    • 创建项目,关联产品
    • 创建团队:需要选择研发主管(可选)测试主管(可选)研发人员测试人员,并需要统计各位的可用人时
    • 关联需求,选中之前产品经理创建的需求。
  5. 项目经理开计划会,准备Kanban(看板),(未开始的 | 进行中的 | 已完成的 ),全部人参加,包括产品经理

    • 计划会需要制定的内容
      • 迭代周期(sprint),一般是一周或者两周,定下来以后,所有的迭代都用这个周期
      • 安排每日立会的时间,每日开会时间都固定:
        1. “昨天做了什么”
        2. “今天要做什么”
        3. “有无问题”
      • 挑选本次迭代需要完成的需求,标准是必要的,而且可发布,并且可以构成一个可用的版本。
      • 产品经理讲解需求
      • 项目经理拆分需求为任务(分解任务)、需要开发团队的支持
  6. 测试主管登录系统,分解用例。把需求分解成用例。进行用例设计

  7. 指定的开发工程师登录系统,对指派过的任务进行开始、完成、关闭的操作

  8. 指定的测试工程师登录系统,对用例进行编写,注意前置条件、步骤(每一步都有期望结果)、优先级

  9. 项目经理登录系统,创建(构建build)版本,注意SVN等信息

    • 包括版本的具体信息、文件下载信息、源代码位置等
    • 关联需求,关联已经完成开发,并在本版本中包含的需求
    • 到测试页面 | 版本,提交测试(提测 | 转测)
  10. 测试主管登录系统,到测试 | 版本 页面。

  • 关联用例
  • 指派测试人员
  • 开始测试
  1. 测试人员登录,到指派给我的用例,进行执行。执行若出现问题,就转bug.

  2. 测试主管登录系统,到测试 | 版本 | 概况 页面,关闭测试

  3. 开发人员登录系统,修改bug

  4. 项目经理登录系统,重新创建(构建build)版本,注意SVN等信息

  • 包括版本的具体信息、文件下载信息、源代码位置等
  • 关联需求,关联已经完成开发,并在本版本中包含的需求
  • 关联上一个版本的已经修复的bug
  • 到测试页面 | 版本,提交测试(提测 | 转测),填写版本更新的清单
  1. 测试主管登录系统,到测试 | 版本 页面。
  • 关联用例
  • 指派测试人员
  • 开始测试
  1. 测试人员登录系统,进行测试

  2. 测试主管登录系统,到测试 | 版本 | 概况 页面,关闭测试

  3. 产品经理登录系统,产品 | 发布 | 创建发布,注意关联需求。本次版本完成。

整体项目流程图

禅道敏捷流程图.png

3. 敏捷实践

禅道与敏捷的对应,主要体现在“产品”和“迭代”这两块。

  • 产品模块
    • 需求列表:对应 Product Backlog
    • 需求(用户故事):对应 User Story
    • 发布计划:对应 Product Sprint 优先级
  • 迭代(项目)模块
    • 需求列表:对应 Sprint Backlog
    • 需求细分任务:
      • 开发
      • 测试
      • UI
      • ……
    • 需求分解用例:
      • 测试
    • 版本:Sprint 发布

4. 禅道的升级

升级安装

  1. 备份旧的版本,cp -r zentaopms zentaopms_bak
  2. 覆盖旧的版本
  3. zentaopms/www 创建 ok.txt (注意是否显示已知文件的扩展名)
  4. 备份数据库 mysqldump -u root -p zentao > c:\zentao_20161111.bak
  5. 确认升级的版本
  6. 升级完成
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,449评论 25 707
  • 南枝登喜鹊,挚友又添郎, 苗植春风里,明朝一栋梁。 好友今天来电说又生了一大胖儿子,故涂鸦几句,贺之!
    梦之旅_926e阅读 232评论 11 10
  • 【前言】 很久以来就有想法,把大家喜欢的各种俄罗斯糖果、威化、小零食整理一下。有的时候是因为时间太忙,又有些懒惰,...
    崔崔道来阅读 791评论 0 1