# 一、禅道基础
禅道,专注研发项目管理!
受《编程之道》和《编程之禅》这两本书的启发。英文里面的禅为Zen,道为Tao。
禅道(12.5.3)使用文档说明 (opens new window)
# 1.1 禅道是什么
禅道(zentao)由 青岛易软天创网络科技有限公司 (opens new window)开发,国产开源的项目管理软件。
它集产品管理、项目管理、质量管理、文档管理、组织管理和事务管理于一体,是一款专业的研发项目管理软件,完整覆盖了研发项目管理的核心流程。
禅道管理思想注重实效,功能完备丰富,操作简洁高效,界面美观大方,搜索功能强大,统计报表丰富多样,软件架构合理,扩展灵活,有完善的API可以调用。
# 1.2 为什么选择禅道
- 禅道是专业的研发项目管理软件,非简单任务管理软件可比。
- 管理思想简洁实效,可以帮助企业实现快速敏捷开发。
- 功能完备,您无需再费心整合若干系统在一起使用。
- 源代码开源开放,有灵活的扩展机制,方便企业使用并二次开发。
- 国产软件,本地支持,操作习惯更符合国人。
- 自主开发的底层框架和前端UI框架,健壮稳定,界面美观,交互友好。
- 完善的社区机制,可以获得及时的技术支持和帮助。
- 零投入,相比动辄十几万的商业软件,您选择禅道没有任何风险。
- 禅道支持多种部署方式,可以私有部署,也可以选择云端服务。
- 一直专注企业管理,持续迭代更新,不断完善软件。
# 1.3 禅道的主要功能
- 产品管理:包括产品、需求、计划、发布、路线图等功能。
- 项目管理:包括项目、任务、团队、版本、燃尽图等功能。
- 质量管理:包括bug、测试用例、测试任务、测试结果等功能。
- 文档管理:包括产品文档库、项目文档库、自定义文档库等功能。
- 事务管理:包括todo管理,我的任务、我的Bug、我的需求、我的项目等个人事务管理功能。
- 组织管理:包括部门、用户、分组、权限等功能。
- 统计功能:丰富的统计表。
- 搜索功能:强大的搜索,帮助您找到相应的数据。
- 扩展机制,几乎可以对禅道的任何地方进行扩展。
- API机制,所见皆API,方便与其他系统集成。
# 1.4 禅道的角色
在禅道项目管理软件中,核心的角色有产品经理、项目经理、研发团队和测试团队四种角色。
明确的将产品、项目、测试三者概念区分开。产品人员、开发团队、测试人员,三者分立,互相配合,又互相制约,通过需求、任务、bug来进行交相互动,最终通过项目拿到合格的产品。
如果您现在的团队是采用敏捷开发的话,那么可以对应到product owner
, scrum master
和team
(dev and tester)。这几种角色之间紧紧围绕产品的需求展开协作,取得成果。
基本流程如下:
- 产品经理创建产品;
- 产品经理创建需求;
- 项目经理创建项目;
- 项目经理确定项目要做的需求;
- 项目经理分解任务,指派到人;
- 测试人员测试,提交bug。
# 1.5 禅道项目管理流程图
禅道核心的管理流程全图如下所示:
# 1.6 禅道的设计理念
禅道项目管理软件的主要管理思想基于国际流行的敏捷项目管理方法—Scrum
。
Scrum方法操作性强,非常适合软件研发项目的快速迭代开发。但它只规定了核心的管理框架,还有很多细节流程需要团队自行扩充。禅道在遵循其管理方式基础上,结合国内研发现状,整合了bug管理,测试用例管理,发布管理,文档管理等功能,完整的覆盖了软件研发项目的整个生命周期。
# 二、敏捷开发
在正式讲述禅道的基本使用流程之前,先让我们来了解下敏捷开发和scrum。因为禅道的设计理念基础是基于 Scrum的,因此了解scrum的基本概念有助于您了解和使用禅道。
# 2.1 瀑布开发
我们比较熟知的软件项目管理方法是瀑布开发:其基本流程是需求-> 设计->开发->测试。
基本假设只要把每一个环节都做正确,那么终得到的结果也是正确的。瀑布开发有非常成功的案例,比如微软。但从总体来讲,瀑布项目失败率比较高。
国外的软件先行者们针对瀑布开发中暴露出来的问题进行了一系列的探索、思考和总结,终提出了Agile
的概念,中文翻译为敏捷开发。
# 2.2 敏捷开发
Agile 敏捷开发
敏捷开发是一种以人为核心、迭代、循序渐进的项目管理方法。
敏捷开发是一种指导思想,在敏捷开发中,项目的构建被分隔为许多个子项目(产品-项目-模块)。
简单地说,敏捷开发不追求完美的设计,完美的代码;而是力求在很短的周期内,开发出产品的核心功能,尽快发布可用的版本,然后在后续的生产周期内,不断地迭代升级、完善产品。
# 敏捷宣言
- 个体和互动 高于 流程和工具;
- 工作的软件 高于 详尽文档;
- 客户合作 高于 客户谈判;
- 响应变化 高于 遵循计划
# 敏捷开发实现方式
敏捷开发有很多种方式,有scrum
、XP
(极限编程)等。其中scrum
是比较流行的一种,而通常我们是将两者结合使用。
# 2.3 scrum
scrum注重于过程,用于项目管理。scrum主要有三大角色、三个工件、四大会议。
# scrum三大角色
scrum三大角色:产品经理(product owner
)、项目经理(scrum master
)、研发团队(team
)。
产品经理(product owner)负责整理用户故事(user story),定义其商业价值,对其进行排序;制定发布计划,对产品负责。
项目经理(scrum master)负责召开各种会议,协调项目,为研发团队服务。
研发团队(team)则由不同技能的开发人员组成,通过紧密协同,完成每一次迭代的目标,交付产品。
# 迭代开发
与瀑布开发不同,scrum将产品的开发分解为若干个小sprint(迭代),其周期从1周到4周不等,但不会超过4周。
参与的团队成员一般是5到9人。每期迭代要完成的user story是固定的。每次迭代会产生一定的交付。
# scrum三个工件
产品清单(product backlog
)、冲刺清单(sprint backlog
)、燃尽图
# scrum四大会议
迭代计划会议、每日例会、评审会议、回顾会议。
# scrum的基本流程
scrum的基本流程:
产品经理负责整理用户故事user story,形成产品清单(product backlog)。
发布计划会议:制定冲刺清单
产品经理负责讲解user story,对其进行估算和排序,发布计划会议的产出就是制定出这一期迭代要完成的story列表,形成冲刺清单(sprint backlog)。
迭代计划会议:细化任务,分配任务。
项目团队对每一个story进行任务分解,分解的标准是完成该story的所有任务,最终每个任务都有明确的负责人,并完成工时的初估计。
每日例会:掌握任务进度。
每天项目经理召集站立会议,团队成员回答昨天做了什么,今天计划做什么,有什么问题。
团队成员及时更新任务状态,从而更新燃尽图。
评审会议:发布RELEASE版本
当一个周期的小目标全部完成,并经过测试后,进行评审会议,发布RELEASE版本。
演示会议:迭代结束之后,召开演示会议,相关人员都受邀参加,团队负责向大家展示本次迭代取得的成果。期间大家的反馈记录下来,由PO整理,形成新的story。
回顾会议:项目团队对本期迭代进行总结,发现不足,制定改进计划,下一次迭代继续改进,已达到持续改进的效果。
# 2.4 极限编程(XP)
极限编程注重于实践,用于实际开发。核心是沟通、简单、反馈、勇气、谦逊、TDD、持续集成、DevOps。实现小步快走、快速迭代。
# DevOps
DevOps是开发和运维的合成词。其目标是加强开发人员、测试人员、运维人员之间的沟通协调。
那么要实现DevOps,就需要我们项目能够做到持续集成、持续交付、持续部署。
# 三、禅道与scrum
禅道在设计的时候,基础框架是基于scrum的,同时又补充完善了测试,文档,发布,计划等功能。
肯定有人有疑问,是不是我使用禅道,就必须是用敏捷。答案当然是否定的,您完全可以使用禅道来进行瀑布式管理,也可以使用的很好。正是基于这一点考虑,在设计禅道的时候,都是采用了比较中性的概念,而不是scrum里面特有的概念。
下面让我们来看下禅道和scrum的对应关系。
# 3.1 概念的对应
scrum | 禅道 | 备注 |
---|---|---|
product | 产品 | 禅道里面使用了产品的概念。 |
user story | 需求 | 其实标准的翻译应该为用户故事,不过禅道还是采用了比较中性的概念。 |
sprint | 项目 | 很多朋友对产品和项目的概念不是很清楚,其实有了这个对应关系就很容易理解了。 |
task | 任务 | 这两个概念是一致的。 |
team | 团队 | |
burndown chart | 燃尽图 | |
潜在交付物 | 发布 |
# 3.2 角色的对应
scrum | 禅道 | 备注 |
---|---|---|
product owner | 产品经理 | 禅道使用的还是比较中性的产品经理的概念。 |
scrum master | 项目经理 | |
team | 团队成员 |
# 3.3 禅道新增的概念
除了scrum基本的概念外,禅道还补充完善了下面概念,以达到对软件生命周期的完整覆盖。
- 产品发布计划
- 产品路线图
- 项目版本
- bug
- 测试用例
- 测试单
- 测试结果
- 文档
- 待办
# 四、禅道安装
参考下面的链接,选择适合自己的安装方式:
# 4.1 Docker安装
# 1、下载docker_zentao压缩包
禅道开源版Docker安装包下载地址 (opens new window)
内置数据库
用户名: root
,默认密码: 123456
。
运行时,可以设置 MYSQL_ROOT_PASSWORD
变量来更改密码。
可挂载目录
/app/zentaopms
:该目录为禅道目录,里面包含禅道代码及附件上传目录。/var/lib/mysql
:该目录为数据库的数据目录。
# 2、上传并解压
将开源版zip下载上传至zentao目录
mkdir -p /usr/local/docker/zentao
cd /usr/local/docker/zentao
2
解压
unzip docker_zentao.zip
修改文件名
mv docker_zentao build
# 3、创建docker-compose.yml
version: '3.3'
services:
zentao:
restart: always
build: build
image: openzendao
container_name: zentao
environment:
MYSQL_ROOT_PASSWORD: 123456
ports:
- "8000:80"
volumes:
- ./app:/app/zentaopms
- ./data:/var/lib/mysql
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 4、构建镜像并运行
docker-compose build
docker-compose up -d
docker-compose logs -f
2
3
# 5、登录
登录http://ip地址:8000 (opens new window)
创建公司及管理员账户。