redmine @ huihoo · 15/06/2012  ·...

18
Redmine @ Huihoo 基于 Redmine 的敏捷开发和持续交付 Allen Long 新浪微博 @huihoo

Upload: others

Post on 31-May-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Redmine @ Huihoo · 15/06/2012  · 灰狐是一个开发者社区,一个开源开放的协作平台,一个企业sns。我们将最大程度地 释放开源软件、开放平台的社会效益和商业价值。我们正在努力搭建一个强大的数据存储、

Redmine @ Huihoo

基于 Redmine 的敏捷开发和持续交付

Allen Long

新浪微博 @huihoo

Page 2: Redmine @ Huihoo · 15/06/2012  · 灰狐是一个开发者社区,一个开源开放的协作平台,一个企业sns。我们将最大程度地 释放开源软件、开放平台的社会效益和商业价值。我们正在努力搭建一个强大的数据存储、

灰狐是一个开发者社区,一个开源开放的协作平台,一个企业SNS 。我们将最大程度地

释放开源软件、开放平台的社会效益和商业价值。我们正在努力搭建一个强大的数据存储、

数据挖掘、信息整合和流量分析的云计算和运营支撑平台。技术是驱动灰狐创新和腾飞的核

心动力。

灰狐最大特点就是:有点酷

对了,灰狐今年将迎来它 12 岁生日。

灰狐简介

基于 Redmine 的敏捷开发和持续交付

Page 3: Redmine @ Huihoo · 15/06/2012  · 灰狐是一个开发者社区,一个开源开放的协作平台,一个企业sns。我们将最大程度地 释放开源软件、开放平台的社会效益和商业价值。我们正在努力搭建一个强大的数据存储、

基于 Redmine 的敏捷开发和持续交付

灰狐做什么

Page 4: Redmine @ Huihoo · 15/06/2012  · 灰狐是一个开发者社区,一个开源开放的协作平台,一个企业sns。我们将最大程度地 释放开源软件、开放平台的社会效益和商业价值。我们正在努力搭建一个强大的数据存储、

Redmine 是一个开源 (GPL) 的项目管理软件,使用 Ruby 开发。

为什么选择 Redmine ?

其它的一些解决方案:

Python - based on Trac 、 Launchpad

Java - based on EmForge and Jenkins CI

PHP - based on 禅道、 GForge

Redmine 用户:

Redmine

基于 Redmine 的敏捷开发和持续交付

Page 5: Redmine @ Huihoo · 15/06/2012  · 灰狐是一个开发者社区,一个开源开放的协作平台,一个企业sns。我们将最大程度地 释放开源软件、开放平台的社会效益和商业价值。我们正在努力搭建一个强大的数据存储、

Redmine产品特色

多项目管理,每个项目有独立的文档跟踪、文档、 Wiki 、版本库等。

权限管理严格,项目可设置为非公开,便于商业和私有软件的协作、交付。

支持 Git, Subversion, Darcs, Mercurial, Bazaar, CVS 众多版本控制系统;

支持多种验证方式,支持 OpenID 、 LDAP 等;

甘特图、日历功能;

多语言、多数据库支持;

支持 iOS 、 Android 等移动平台。

基于 Redmine 的敏捷开发和持续交付

Page 6: Redmine @ Huihoo · 15/06/2012  · 灰狐是一个开发者社区,一个开源开放的协作平台,一个企业sns。我们将最大程度地 释放开源软件、开放平台的社会效益和商业价值。我们正在努力搭建一个强大的数据存储、

Redmine Mobile

基于 Redmine 的敏捷开发和持续交付

Page 7: Redmine @ Huihoo · 15/06/2012  · 灰狐是一个开发者社区,一个开源开放的协作平台,一个企业sns。我们将最大程度地 释放开源软件、开放平台的社会效益和商业价值。我们正在努力搭建一个强大的数据存储、

基于 Redmine 的敏捷开发和持续交付

敏捷

更快速度的交付产品、更高质量的交付价值。

我们的关注点在于迭代和增量交付,以及跨功能职责角色之间的协作,多角色。

敏捷过程依赖于透明性、协作性、纪律性和持续改进。

咨询、持续设计、敏捷 ALM 、持续交付软件价值。

注意:这里的设计也一定是持续设计,客户的需求在不断变化,你的设计也应随需而变。

Page 8: Redmine @ Huihoo · 15/06/2012  · 灰狐是一个开发者社区,一个开源开放的协作平台,一个企业sns。我们将最大程度地 释放开源软件、开放平台的社会效益和商业价值。我们正在努力搭建一个强大的数据存储、

基于 Redmine 的敏捷开发和持续交付

Scrum

Scrum 是一种灵活的敏捷软件开发管理过程。

Scrum 角色: Product Owner 、 Scrum Master 和 Scrum Team

Scrum 一些概念: Sprint 、 Product Backlog 、 Sprint Backlog 、 Story 、 Task

Product Backlog 是产品所要具备的所有功能的总纲。

Page 9: Redmine @ Huihoo · 15/06/2012  · 灰狐是一个开发者社区,一个开源开放的协作平台,一个企业sns。我们将最大程度地 释放开源软件、开放平台的社会效益和商业价值。我们正在努力搭建一个强大的数据存储、

基于 Redmine 的敏捷开发和持续交付

Scrum

Page 10: Redmine @ Huihoo · 15/06/2012  · 灰狐是一个开发者社区,一个开源开放的协作平台,一个企业sns。我们将最大程度地 释放开源软件、开放平台的社会效益和商业价值。我们正在努力搭建一个强大的数据存储、

Redmine BacklogsBacklogs 是 Redmine 的一个重要插件,它带来对 Scrum/Agile 的支持。

产品 Backlog指根据初始需求分解出的任务列表,包括功能性和非功能性的所有功能,由 Product Owner 为

Product Backlog中的任务确定优先级别,当开发团队开始某个任务的时候,再精确定义和分解这个任务。

我们通常用 User Story 来描述 Backlog 里的各个 Backlog 项, User Story 是从用户的角度对系统的某个功能

模块所作的简短描述。 User Story要由 Stakeholder(利益相关者)来编写。

我们通常把 User Story写在一张小卡片上,同时在卡片上标明它的优先级和预计完成时间,以便开发人员根

据任务的优先级来制定 Sprint Backlog 。

User Story 有一个通用的公式格式,作为 < 某个角色 >,我可以 < 做什么 >,以完成 <什么目的 >。 例如:

作为一个病人,我可以预约一个医生,让他给我看病。

为了能及时、高效地完成每个 Story , Scrum团队会把每个 Story 分解成若干个 Task 。

Redmine Backlogs 官网: http://www.redminebacklogs.net

基于 Redmine 的敏捷开发和持续交付

Page 11: Redmine @ Huihoo · 15/06/2012  · 灰狐是一个开发者社区,一个开源开放的协作平台,一个企业sns。我们将最大程度地 释放开源软件、开放平台的社会效益和商业价值。我们正在努力搭建一个强大的数据存储、

Backlogs

基于 Redmine 的敏捷开发和持续交付

Page 12: Redmine @ Huihoo · 15/06/2012  · 灰狐是一个开发者社区,一个开源开放的协作平台,一个企业sns。我们将最大程度地 释放开源软件、开放平台的社会效益和商业价值。我们正在努力搭建一个强大的数据存储、

ThoughtWorks

说到敏捷开发,大家多少都可能会想到 ThoughtWorks

1 、定制化软件专家:

Martin Fowler :敏捷、重构、 DSL领域的专家和领导者。

ThoughtWorks 也在积极推广敏捷开发在软件服务中应用。

ThoughtWorks 的开源软件: CruiseControl 、 Selenium http://opensource.thoughtworks.com/。

2 、 ThoughtWorks Studios :

Mingle 项目管理工具、 Twist自动化测试工具、持续集成和交付工具: Go 。

我们准备通过 Redmine 、 Watir/Cucumber/RSpec 、 Travis-CI 来构建敏捷基础设施

基于 Redmine 的敏捷开发和持续交付

Page 13: Redmine @ Huihoo · 15/06/2012  · 灰狐是一个开发者社区,一个开源开放的协作平台,一个企业sns。我们将最大程度地 释放开源软件、开放平台的社会效益和商业价值。我们正在努力搭建一个强大的数据存储、

测试驱动.. 驱动: 1 、 Behaviour-Driven Development (BDD)

2 、 Test-Driven Development (TDD)

3 、 Acceptance-Test Driven Developement (ATDD)

BDD框架工具: Cucumber/RSpec/Concordion/jbehave

http://cukes.info/

http://rspec.info/

http://concordion.org/ http://ruby-concordion.rubyforge.org/

http://jbehave.org/

比如: Cucumber 是一个能够理解用普通语言 描述的测试用例的支持行为驱动开发( BDD)的自动化

测试工具,用 Ruby编写,支持 Java 和 .Net 等多种开发语言。

基于 Redmine 的敏捷开发和持续交付

Page 14: Redmine @ Huihoo · 15/06/2012  · 灰狐是一个开发者社区,一个开源开放的协作平台,一个企业sns。我们将最大程度地 释放开源软件、开放平台的社会效益和商业价值。我们正在努力搭建一个强大的数据存储、

持续集成

基于 Redmine 的敏捷开发和持续交付

只维护一个源码仓库

自动化 build

让你的 build自行测试

每人每天都要向mainline提交代码

每次提交都应在集成计算机上重新构建 mainline

保持快速 build

在模拟生产环境中进行测试

让每个人都能轻易获得最新的可执行文件

每个人都能看到进度

自动化部署

持续集成(第二版) http://article.yeeyan.org/view/2251/94882

Page 15: Redmine @ Huihoo · 15/06/2012  · 灰狐是一个开发者社区,一个开源开放的协作平台,一个企业sns。我们将最大程度地 释放开源软件、开放平台的社会效益和商业价值。我们正在努力搭建一个强大的数据存储、

Travis-CItravis-ci :一个面向 Ruby 社区的开源分布式构建系统。

环境:

Ruby

PostgreSQL

RabbitMQ

VirtualBox

支持语言: Ruby, Java, PHP, Python, Scala, JavaScript, Erlang, Clojure, Groovy, Perl

官网: http://travis-ci.org/

基于 Redmine 的敏捷开发和持续交付

Page 16: Redmine @ Huihoo · 15/06/2012  · 灰狐是一个开发者社区,一个开源开放的协作平台,一个企业sns。我们将最大程度地 释放开源软件、开放平台的社会效益和商业价值。我们正在努力搭建一个强大的数据存储、

DevOpsDevOps ,一场更深入的敏捷文化变革

DevOps 是软件开发、运维和质量保证三个部门之间的沟通、协作和集成所采用的流程、方法和体系的一

个集合。 它是人们为了及时生产软件产品或服务,以满足某个业务目标,对开发与运维之间相互依存关

系的一种新的理解。 DevOps并不仅仅关注软件部署,它是部门间沟通协作的一组流程和方法。

建设 DevOps 能力,实现业务敏捷

DevOps人才: SRE( Site Reliability Engineer),是云计算时代紧缺的开发 + 运维类复合型人

才。 SRE负责云计算平台的搭建、部署、维护和日常运营,需要候选人有扎实的编程能力、系统运维经

验和大型平台管理能力。

基于 Redmine 的敏捷开发和持续交付

Page 17: Redmine @ Huihoo · 15/06/2012  · 灰狐是一个开发者社区,一个开源开放的协作平台,一个企业sns。我们将最大程度地 释放开源软件、开放平台的社会效益和商业价值。我们正在努力搭建一个强大的数据存储、

持续交付测试自动化和持续交付

DevOps ,让持续交付成为可能

使用云计算和虚拟化技术实现持续交付

...

基于 Redmine 的敏捷开发和持续交付

Page 18: Redmine @ Huihoo · 15/06/2012  · 灰狐是一个开发者社区,一个开源开放的协作平台,一个企业sns。我们将最大程度地 释放开源软件、开放平台的社会效益和商业价值。我们正在努力搭建一个强大的数据存储、

感谢您关注灰狐

协作@灰狐

forge.huihoo.com