用JIRA、CVS、XPlanner、WIKI来进行项目管理

用JIRA、CVS、XPlanner、WIKI来进行项目管理

JIRA

  一个非常出色的Issue跟踪系统,这里的Issue不单单是指BUG, 很多时候也可以是TASK, IMPROVEMENT, NEW FEATURE, 甚至是一个QUESTION。

  在多年前, 我曾经尝试使用过那个经典的的Bugzilla,但是一个项目作下来,大家都反映那个东西的界面实在是太粗糙,简直无法忍受而且报表功能也是在太弱。最后大家就讨论自己作一个BUG的跟踪系统,就在大家已经完成了设计文档准备编码的时候, 我们发现JIRA原来就是我们要找的东西,而且比我们要的更多。它内置一个可以配置的工作流引擎(osworkflow),一个快捷的全文检索功能(基予Apache Lucene).和一个可以配置的Dashboard(portlet),以及一个和CVS连接的引擎,通过这个连接,在一个Issue中直接可以看到修改的文件名称,如果配置了viewcvs的话,还直接直接定位到行,根据一个问题可以跟踪到代码的行,这正式我们梦寐一求的功能。 也正是这种特性,才使我们能够把一个个Issue当作发布和版本管理的一个单元。

CVS

  这个应该大家都知道。在系统开发过程中,一切的源代码和设计文档都应该进入版本管理系统来进行管理, 有的时候可能资源库可能会膨胀的很大, 但这个代价是值得的。

XPlanner

  在整个管理体系中,进度管理一直是一个?比较薄弱的环节,我也曾试过dotproject这样的管理软件,但由于dotproject管理的太过详细,填报起来太复杂,大家渐渐都失去了填报的热情。这个 XPlanner软件可就简单多了。指定了迭代,story,然后就可以填写进度了。由于这个软件也是OpenSource的,所以如果觉得不满意,修改起来也很方便,现在老林就对这个系统作了些改进,可以直接和JIRA系统连接起来,JIRA中建立issue后,可以在XPlaner中反映出来,连填写 story的时间都省去了, 然后在下班之前可以生成一个详细的报告,列出每个人在这一天内在自己负责的Issue在上的处理时间和进度。

WIKI

  在项目管理中,我们一直把它当作文档管理和Portlet系统来使用,它现在已经变成我们的小组的工作台,在WIKI中我们制定了包括系统开发设计规范在内的一切设计文档,以及数十个经常的HOWTO项目,例如如何配额一个标准的开发环境,如何使用CVS客户端,如何使用JIRA,以及自己的 JavaDoc, JSDoc等。 我们也可以通过Wiki来简单的整合系统,在Wiki中我们列出了所有开发环境和开发工具的入口,例如上面就放了进入JIRA,XPlanner以及我们各个Project的连接,甚至到 Apache中常用的Project的JavaDoc的连接,现在再也没有人去记录这些URL了,只要打开Wiki所有的资源都在面前了,并且由于wiki本身的开放性,所以每个团队的成员都是一个维护者,同时也是这个系统的受益者。在很多的团队中经常出现的情况是一个小子对某个技术特别在行,大家遇到这方面的问题都问他,在小的团队中, 面对面的交流通常是最快的交流方式,但是放到大的团队中,这个就不大可行了,那个小子迟早有一天会被问的烦到吐血为至,特别是他自己的工作也无法按时完工的时候。还是抽一个小时写出来,放到 wiki里面吧, 别问我, 自己去查Wiki。

基于ISSUE的发布管理

  从版本管理的角度来考虑,最理想的发布方法就是把CVS中的代码拿下来, 打上一个tag, 编译并且测试一直到发布。 这样的管理方式的确是很简单的,但事实上用户可不买帐的, 用户觉得在新的版本中某个新的功能他还不想要,这可能是他还没有整理好业务初始数据或者在实际的业务流程上或人员上没有做好准备, 上帝说了不要咱就不能把这个新功能发布。在这个情况下,基于Issue的发布管理是一个好的方案。

  这里讲的Issue就是前面JIRA系统中的一个issue。 通常每个Issue的完成都会伴随这一些代码的修改。 基于Issue的发布简单的来说就是把一组Issue变更的文件用patch的形式发布到正式的系统中。

  基于Issue发布的前提就是要在Issue和Source之间建立连接, 使发布人员清楚的知道每个Issue修改的源代码是什么。我们实践下来最简单的办法就是在提交source的时候必须加上JIRA编号, 没有JIRA编号代码是不能提交的。 这样有以下好处:

1)防止一些没有经验的程序员无意义的提交, 比如一个小子今天提交了一个java文件,明天发现这个变量命名有点不爽, 修改后就要提交,在这种情况下, 这个提交是没有意义的,如果测试组已经测试这个Issue, 是否测试组要重新测试? 为一个变量名称化这样的时间和冒险是可嫩的。小伙子还是在第一次提交的时候就把变量名想好了再提交。

2)程序员偷偷的修改代码,一个小伙子发现自己的已经Closed的Issue中有一个Bug, 便偷偷的修改代码。 这个当然也是不可能的,凡是提交到CVS中的代码就不是自己的了,那是大家的, 没有足够的理由想改当然没有那么容易。 先自己建立建立个Issue, 向Team leader报告, 然后再去修改代码.。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100519.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux export添加环境变量_查看环境变量linux

    linux export添加环境变量_查看环境变量linux环境变量定义:Itsanamedobjectthatcanbeusedbymultipleapplicationsasitcontainssomevaluableinformationrequiredbytheseapplications环境变量时一个具有特定名字的对象,包含了一个或多个应用程序要用到的信息.可通俗理解为,假如一个工厂里有一大堆的工具

    2025年8月31日
    7
  • 一遍过的刷四史脚本教程「建议收藏」

    一遍过的刷四史脚本教程「建议收藏」首先你得有台电脑和一部手机手机进行抓包提前打开四史的界面,切换至后台,然后打开手机中的抓包软件开始抓包!进入带四史答题界面后,切换后台,打开抓包软件,一个一个打开去找抓包内容请求中Bearer后面的字符串电脑运行文件四史脚本加抓包软件传送门->>>…

    2022年6月26日
    29
  • Socket 非阻塞模式下connect 返回EINPROGRESS(115)错误[通俗易懂]

    Socket 非阻塞模式下connect 返回EINPROGRESS(115)错误[通俗易懂]今天再测试socket的时候,发现一个很奇怪的问题,就是客户端再connect的时候第一次connect总是会返回-1,errno是115,往往第二次连接就可以成功了。但是对于服务端来说,第一次连接已经成功返回了。后来想想可能跟自己的设置socket是非阻塞的有关系,后来吧socket设置成阻塞的,问题确实就没有了。后来有反复尝试了非阻塞的。我先把服务器关闭,让客户端连接,可以发现从打出来的e…

    2022年7月17日
    17
  • 到底是谁?BCH近期出现大量未知算力

    到底是谁?BCH近期出现大量未知算力到底是谁?BCH近期出现大量未知算力

    2022年4月22日
    45
  • keyvaluepair_C# KeyValuePair<TKey,TValue>的用法【转】 .

    keyvaluepair_C# KeyValuePair<TKey,TValue>的用法【转】 .KeyValuePair可以这样实例化KeyValuePairmcmillan=newKeyValuePair(“McMillan”,99);取值Console.Write(mcmillan.Key);Console.Write(“”+mcmillan.Value);以下是一个把对象放到数组中usingSystem;usingSystem.Collections.Generic…

    2022年7月13日
    19
  • Flutter一步实现Toast 弹窗(fluttertoast 库)

    Flutter一步实现Toast 弹窗(fluttertoast 库)Flutter一步实现Toast弹窗(fluttertoast库)在Flutter中,想要实现一个Toast弹窗效果,最简单、最直接的方法就是使用fluttertoast库来实现。官网地址:https://pub.flutter-io.cn/packages/fluttertoast如何使用?导入依赖#addthislinetoyourdependenciesfluttertoast:^7.1.6在使用的地方,导入类import’package:f

    2022年9月24日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号