Development Process Management/zh cn
Languages: |
English | zh cn | Translate this article... |
Contents |
介绍
下面几点是从管理角度阐明了Openbravo的开发过程。是关注于开发过程的目标。
- 尽可能有效的可以从我们的资源中获取最好的资料
- 使我们的社区与大家沟通更方便
- 透明的管理你对我们工作的期望
- 从大家这里获取提升过程的反馈
Openbravo有一个不断成长的由非常优秀的人员组成的团队,但每个团队都会有某方面的不足。然而我们有一个非常完美的路线图。同时我们知道ERP产品的关键是质量,所以故障的报告和修复是一项艰巨的任务。归结为一条简单的管理准则:我们还有比我们现在能做的更多的事情要做,所以我们必须区分优先级。我们必须组织和按排好我们的工作,使得我们交付的东西是对产品最有价值的。我们相信“社区驱动”是最理想的方式,所以我们建立了一系列的工具来从社区的开发者和用户获取反馈。这些工具也提供了我们的活动的信息:我们的开发人员分派在哪里?接下来我们要做什么?我们正计划解决某一个特定的问题,等等。我们也希望能够不断的优化我们的开发过程,所以我们期待你的反馈。
迭代开发
Openbravo的团队并不严格遵守敏捷方法(如XP或Scrum),但是使用了它的许多准则。从管理角度而言在一个短的周期中迭代开发是最相关的准则。每一次迭代开始于我们计划增加哪些特性、解决哪些BUG。然后完成开发和测试。最终按照“release early and often”准则打包和发布软件。最后一步是总结未解决的任务和从中学习到的东西。这个总结通常会和下一次迭代的计划过程重合在一起。
跟踪开发任务
Openbravo项目驻留在SourceForge.net上,并且使用SourceForge.net提供的一系列很棒的工具来管理我们的开发过程。这一节将介绍如何使用Trackers来创建、监视和查询开发任务。一个开发任务是原子的不可分割的活动通常由一个开发人员来完成。开发任务有三种:
- 1.Bug:使Openbravo ERP不能完成预期功能的错误(如税额的计算错误,不能导航到用户界面,等)
- 2.Feature Requests:请求新的功能,或者是改进、修改现有的功能(工资管理,改进税额计算等)
- 3.Other Tasks:其他一些与源代码非直接相关的活动,如维护的任务、文档等。为了适当的安排工作,管理这些任务是很关键的。
每一种开发任务都有一个Tracker: Bug Tracker(跟踪缺陷),Feature Request Tracker(跟踪请求的功能)和To Do Tracker(跟踪其他任务)。按照开发任务的生命周期,Tracker的动作有如下几种:
创建
任务的创建由Openbravo社区发起,包括Openbravo的开发团队,当然需求是发现了一个新的bug或是一个清晰描述的新功能,等。尽管开发任务的生命周期很相似但是对于不同类型的开发任务的描述是不同的。对于bug我们有一份故障报告指南详细的介绍了如何报告故障。当然描述要尽量清晰(像水一样:))。
使用"分类”,“总结”,“详细描述”和“附件”来清晰的描述开发任务的各组成部份。我们不使用“私有”的任务,所以不要选中“私有”复选框。“分配”、“分组”和“优先级”用于在任务的生命周期中进行管理,这些操作会在以下章节中详细说明。如果使用默认值创建一个任务,除了“分组”字段其他字段会设置为“计划中”。
优先级
任务一旦被创建将会被负责监视跟踪和区分优先级的跟踪管理员分析。对于故障我们在故障报告指南中说明了一个关于优先级的公共准则。对于请求新功能我们计划建立投票机制使我们更好的理解社区的需求。对于其他任务一般不设置优先级。我们使用这样的优先级来安排我们的迭代开发周期。
更新
有些时候某创建子任务的人不同意跟踪管理人分配的优先级。通常,这时需要更完整的信息使我们理解这个任务。任何情况下,能看到任务的人都能增加新的信息以帮助我们下一步的工作。
计划
正如前面提及的Openbravo是以迭代的方式开发的,计划工作也是迭代的。每年通常有8到12次的迭代。当迭代开始前我们会决定哪些工作要完成(当然会区分优先级),并且谁来做这些工作。我们用“分组”来定义迭代的过程。每一个迭代周期会建立2个分组:第一个是开发者组(开发什么),第二个是QA(测试什么)。例如,R2.30 beta版有2个分组:“R2.30 beta"和"R2.30 beta-tested"。这些工作会分配给属于这些组的开发人员。
许多SourceForge.net中的项目以不同的方式使用"Group"字段。这些项目中可能会把这个字段做为存放发现bug的代码的版本号。我们倾向于将描述整个环境(版本号,操作系统,数据库,浏览器)的信息存放到“Detail description“字段中,而把“Group”字段用于计划。“Assigned To”字段用于设置负责完成这个任务的开发人员。
在开发周期中Openbravo的开发人员按照任务的优先级完成工作。当然我们会在开发周期中尽力处理报告的严重故障。但有时我们可能会心有余而力不足。这时,如果这些任务不影响这次开发周期,我们会把这些未完成的任务分配到“None”组,并在下一个开发周期中被安排。
关闭
一旦开发者完成了任务包括设计、开发、单远测试并提交到SVN后,开发人员会关闭这个任务,使“Status“字段变为“Closed”和"Resolution"字段设为如下一种内容:
- Fixed:故障已修复或新的功能已增加。可以在备注字段中添加本次修改的注释。
- Duplicate:这个任务已存在或是另一个任务的子任务。在备注中注时这个情况。
对于故障而言,开发者不能重现这个故障时,会在提交到SVN时在备注中写上“在开发环境中可能运行”。
- Rejected:请求的任务被拒绝。在备注中清楚的说时被拒绝的原因。
测试
当开发人员关闭这个任务后,QA团队会马上再次确认任务被正确的完成了。如果没有测试没有通过,他们会将"Status"设置为Open并在备注中清楚的说明为什么该任务被再次打开。如果测试通过,他们会将"Group"字段设为测试。
监视
任何人在任何时候可以监视任务。当你临视一个任务时,每当该任务的状态发生变化时会收到一封email关于这次修改的解释和任务的管理表单。通常所有的提交者应该临视这个任务。同样开发人员也会监视分配给他们的任务,所以他们会关注这个问题的变化。我们的QA团队会监视没有通过测试并返回给开发者的任务。
总结
SourceForge是Openbravo采用的管理开发任务的工具。所以无论何人想报告给开发团队他们的任务前都应该确认一下这个任务是否被其他人提交过。如果没有,就应该清楚的报告这个问题。
通过这种方式可以使社区知道我们当前在做什么,已经完成了哪些工作,和我们下一步的计划。