您的位置:首页 > 其它

使用trac系统进行项目管理

2011-08-27 14:13 363 查看
Trac是Edgewall公司开发并维护的开放源码网页界面专案管理、缺陷追踪软件。Trac的灵感来自于CVSTrac,因为能够与Subversion接口,所以最初叫做svntrac。

Trac使用Python编程语言开发。在2005年中以前,Trac以GPL发行;直到 0.9 版开始使用修改过的BSD许可证释出[1]。基本上都是属于自由软件的许可证。

主要功能

Trac使用超链接方式把软件缺陷数据库、版本控制系统和wiki内容结合起来,并作为版本控制系统的web接口,支持的版本控制系统包括Subversion, Git, Mercurial, Bazaar, Perforce, Darcs. 在0.11版本之前,Trac的web展示前端由ClearSilver web模板系统提供,自0.11开始,由其自行开发的Genshi模板系统提供,但保持了对ClearSilver及其插件的兼容。

其他功能:

项目管理 (Roadmap, Milestones, 等)

追踪系统 (缺陷追踪、任务 等)

细粒度权限支持 (自 0.11版本开始)

最近活动的时间轴

Wiki

可定制的报告

版本控制系统的web接口

RSS Feeds

多项目支持

环境扩展(通过Python 插件支持)

iCal 输出

1) 基本概念

Trac 中的单元:

Milestone(里程碑) :这个好理解,不做解释。
Version(版本) :项目的版本。
Component(组件):项目中的组件。
Ticket : 这个有人翻译为传票,有人翻译为任务单,我都觉得不妥,因此不做翻译。
Ticket type :Ticket 的类型,默认有 defect(缺陷)、enhancement(改进)、task(任务)。
Priority(优先级) :Ticket 的优先级。
Resolutions(解决方式) :Ticket 的解决方式,当要关闭 Ticket 时的选择。
Severity(严重程度):Ticket 的严重程度。

关系图如下:



由于 Trac 的灵活性,我们使用 Trac 来进行项目管理时,有很高的自由度,上述单元皆是可自定义的,比如 Ticket 默认有如下类型:

Defect
Enhancement
Task

偷懒的人一般就默认使用这三个类型,如果是项目要求高一些,可以定义一些扩展的 Ticket 类型,如 PatchTranslateTest,当然这只是举例说明,还是需要根据项目的具体需求来进行定制。

大多使用 Trac 进行项目管理都有一个中心,某些团队以 Milestone 为中心,有些以 Version 为中心,有些以 Component 为中心,最后就是以 Ticket 为中心的,其松散程度是逐步增加的。

Ticket 是 Trac 中最核心的单元,整个 Trac 都是围绕 Ticket 进行的,在应用 Trac 时,Ticket 可以让团队中的人分工更为明确,比如市场调查可以只负责 Create Ticket、Edit wiki,开发人员、测试人员根据自己的能力各自完成自己所属的 Ticket,最后以完成某个中心为终结;通过里程碑,管理者也可以更快,更直接的了解到项目进度从而制定相应计划;通过 Wiki ,新进成员也可以更快速的融入项目。

不过这些都是以真正的应用 Trac 到项目的开发、管理、测试为前提。

很多应用 Trac 进行管理的人都说:现在最兴奋的事,不是完成一个一个的功能,是关闭一个又一个的 Ticket,看着里程碑逐渐接近 100%,工作热情也特别高涨。

2) 权限管理

Trac 中的权限划分的很为细致,并且有用户组的概念,但是 Trac 并不包含用户信息,通常都是与 Apache 集成权限认证来获得用户信息。

当创建了一个 Trac 环境时,默认权限分布如下:

User Action

------------------------------

anonymous BROWSER_VIEW

anonymous CHANGESET_VIEW

anonymous FILE_VIEW

anonymous LOG_VIEW

anonymous MILESTONE_VIEW

anonymous REPORT_SQL_VIEW

anonymous REPORT_VIEW

anonymous ROADMAP_VIEW

anonymous SEARCH_VIEW

anonymous TICKET_VIEW

anonymous TIMELINE_VIEW

anonymous WIKI_VIEW

authenticated TICKET_CREATE

authenticated TICKET_MODIFY

authenticated WIKI_CREATE

authenticated WIKI_MODIFY

anonymous 代表匿名用户的权限,authenticated 代表登录用户所拥有的权限,权限信息都很易懂,就不做解释;默认配置下,这是较为安全的,但是这样我们无法管理这个任务仓库,必须先分配一个管理员。

D:\Python\Scripts\trac-admin D:\ALM\Trac\MyProject permission add zealic TRAC_ADMIN
TRAC_ADMIN 是最高级别权限,有了这个权限,登录名为 zealic 的用户就可以管理这个项目的所有信息了。

登录 Trac 以后,在管理页面中 Trac 提供了 Permissions 选项,可以以可视化的方式更改权限信息。

3) 集成

有了趁手的工具,我们当然愿意这个工具与旧有工具完美结合,以产生更高的价值。

好比 .Net 下的 TDD 拥有了 TestDriven.Net,提高的生产力可不是几句话就能够形容的,我也极度期盼 .Net 能够提供与 Trac 集成的插件。

相比之下,我极羡慕 eclipse 3.3 中集成的
Mylyn,可以很方便的与 Bugzilla,JIRA,Trac 集成;好吧,我承认,我希望有“逸士”能够造一个 NMylyn 或者 Mylyn.Net 供我们使用。

Trac 通过 xml-rpc 提供交互接口,也许某天,我会来做这个“逸士”;不过,似乎很难。

4) 推荐资料

这里 是台湾某教师为学生制作的 Trac PPT 教程,较浅显易懂,各位可以参考一下。

这里 是台湾的某人写的一系列关于 Trac 的文章,可以参考一下。

5) 结束语

如果您所在的公司仍然处于项目管理混乱,失败率高的情况,我极力推荐您使用 Trac、Bugzilla 等 ITS 进行管理。

主页:http://trac.edgewall.org/

参考:http://www.cnblogs.com/zealic/archive/2008/01/13/1037414.html

参考:http://www.cnblogs.com/HanN1984/archive/2007/08/09/840575.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: