基于禅道 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. 安装好以后,登录系统,进入主页。
基于禅道 zentaopms 的敏捷 Scurm 实践_第1张图片
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 , I want so that .
        • 作为一名<*某种类型的用户*>,我希望<*达成某些目的*>,这样可以<*开发的价值*>。
      • 产品的需求中,对验收标准的描述,需要确定和详细
      • 添加需求的时候,注意需求是否需要评审
      • 添加需求的时候,注意产品的预估时间
      • 需求的变更 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. 升级完成

你可能感兴趣的:(基于禅道 zentaopms 的敏捷 Scurm 实践)