Upload
others
View
9
Download
0
Embed Size (px)
Citation preview
Redmine @ Huihoo
基于 Redmine 的敏捷开发和持续交付
Allen Long
新浪微博 @huihoo
灰狐是一个开发者社区,一个开源开放的协作平台,一个企业SNS 。我们将最大程度地
释放开源软件、开放平台的社会效益和商业价值。我们正在努力搭建一个强大的数据存储、
数据挖掘、信息整合和流量分析的云计算和运营支撑平台。技术是驱动灰狐创新和腾飞的核
心动力。
灰狐最大特点就是:有点酷
对了,灰狐今年将迎来它 12 岁生日。
灰狐简介
基于 Redmine 的敏捷开发和持续交付
基于 Redmine 的敏捷开发和持续交付
灰狐做什么
Redmine 是一个开源 (GPL) 的项目管理软件,使用 Ruby 开发。
为什么选择 Redmine ?
其它的一些解决方案:
Python - based on Trac 、 Launchpad
Java - based on EmForge and Jenkins CI
PHP - based on 禅道、 GForge
Redmine 用户:
Redmine
基于 Redmine 的敏捷开发和持续交付
Redmine产品特色
多项目管理,每个项目有独立的文档跟踪、文档、 Wiki 、版本库等。
权限管理严格,项目可设置为非公开,便于商业和私有软件的协作、交付。
支持 Git, Subversion, Darcs, Mercurial, Bazaar, CVS 众多版本控制系统;
支持多种验证方式,支持 OpenID 、 LDAP 等;
甘特图、日历功能;
多语言、多数据库支持;
支持 iOS 、 Android 等移动平台。
基于 Redmine 的敏捷开发和持续交付
Redmine Mobile
基于 Redmine 的敏捷开发和持续交付
基于 Redmine 的敏捷开发和持续交付
敏捷
更快速度的交付产品、更高质量的交付价值。
我们的关注点在于迭代和增量交付,以及跨功能职责角色之间的协作,多角色。
敏捷过程依赖于透明性、协作性、纪律性和持续改进。
咨询、持续设计、敏捷 ALM 、持续交付软件价值。
注意:这里的设计也一定是持续设计,客户的需求在不断变化,你的设计也应随需而变。
基于 Redmine 的敏捷开发和持续交付
Scrum
Scrum 是一种灵活的敏捷软件开发管理过程。
Scrum 角色: Product Owner 、 Scrum Master 和 Scrum Team
Scrum 一些概念: Sprint 、 Product Backlog 、 Sprint Backlog 、 Story 、 Task
Product Backlog 是产品所要具备的所有功能的总纲。
基于 Redmine 的敏捷开发和持续交付
Scrum
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 的敏捷开发和持续交付
Backlogs
基于 Redmine 的敏捷开发和持续交付
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 的敏捷开发和持续交付
测试驱动.. 驱动: 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 的敏捷开发和持续交付
持续集成
基于 Redmine 的敏捷开发和持续交付
只维护一个源码仓库
自动化 build
让你的 build自行测试
每人每天都要向mainline提交代码
每次提交都应在集成计算机上重新构建 mainline
保持快速 build
在模拟生产环境中进行测试
让每个人都能轻易获得最新的可执行文件
每个人都能看到进度
自动化部署
持续集成(第二版) http://article.yeeyan.org/view/2251/94882
Travis-CItravis-ci :一个面向 Ruby 社区的开源分布式构建系统。
环境:
Ruby
PostgreSQL
RabbitMQ
VirtualBox
支持语言: Ruby, Java, PHP, Python, Scala, JavaScript, Erlang, Clojure, Groovy, Perl
官网: http://travis-ci.org/
基于 Redmine 的敏捷开发和持续交付
DevOpsDevOps ,一场更深入的敏捷文化变革
DevOps 是软件开发、运维和质量保证三个部门之间的沟通、协作和集成所采用的流程、方法和体系的一
个集合。 它是人们为了及时生产软件产品或服务,以满足某个业务目标,对开发与运维之间相互依存关
系的一种新的理解。 DevOps并不仅仅关注软件部署,它是部门间沟通协作的一组流程和方法。
建设 DevOps 能力,实现业务敏捷
DevOps人才: SRE( Site Reliability Engineer),是云计算时代紧缺的开发 + 运维类复合型人
才。 SRE负责云计算平台的搭建、部署、维护和日常运营,需要候选人有扎实的编程能力、系统运维经
验和大型平台管理能力。
基于 Redmine 的敏捷开发和持续交付
持续交付测试自动化和持续交付
DevOps ,让持续交付成为可能
使用云计算和虚拟化技术实现持续交付
...
基于 Redmine 的敏捷开发和持续交付
感谢您关注灰狐
协作@灰狐
forge.huihoo.com