ISSUE TRACKING 问题追踪
Issue Tracking 為何也要導入? 只要是超過兩人以上的開發,必然會有溝通(其實,一個人也會有溝通的問題,與內心自己的溝通),也必然會有問題的紀錄與回應。
簡單的說,版本控管是設計產中的一種共享;Issue Tracking 則是大量溝通的機制。
应该对错误进行修改
一旦发现了问题,就要解决它。所有的设计小组都有一些非正式的系统来追踪这些问题并
解决它们,但是这些非正式系统的性能和可扩展性还有待改进。
哪些是值得解决的问题
在讨论追踪问题的各种方法之前,首先要明确哪些问题是值得追踪的,这在很大程度上取
决于使用的追踪系统。追踪某个问题的代价不应该高过这个问题本身带来的价值。另外,是否
需要追踪系统判断问题的类别?或者是否应该先判断什么构成了一个值得追踪的问题,然后再
运行合适的追踪系统?后一个问题才是与最终目标紧密联系的:保证设计功能的正确性。
有待解决的问题是指任何能影响设计功能的因素:
1. 在测试平台运行过程中发现的错误显然是值得追踪的问题。
2. 规范文件中出现的模棱两可的情况或不完善的地方也是值得追踪的问题,但是拼写错
误不属于此类。
3. 结构上的考虑和折中也属于待解决的问题。
4. 在设计的各个阶段发现的错误,无论是设计本身还是验证环境都应该予以追踪。
5. 如果有新的相关测试方案,也应该归为值得考虑的问题。
要对所有值得追踪的问题列出清单是不可能的。当问题出现时,判断它是否值得追踪的惟
一标准就是它是否会影响最终设计的正确性。
如果某个问题不解决就会导致失败的设计,那么
它就必须被追踪。当然,并非所有的问题都是平等的,其中一些会直接影响设计的功能,另外
一些只是有一些小的负面影响。所以应该对问题的优先级进行分类并依次解决。
一些不太重要的问题,可以不去解决。
设计人员可以决定某些特定的问题或缺点在该项目
里是可以接受的,可以将其留至产品的下一个版本再改进和解决。这种判断最主要的难点是必
须保证放弃这些修改是有意义和有充分理由的。
最简单也是最普遍的问题追踪方法是讨论。在发现问题以后,你可以到硬件设计师工作室
中讨论这个问题(假设你不是硬件设计师)。其他感兴趣的设计者也可以加入到讨论中来,一
些简单的问题往往可以在这里解决。对于一些较大的问题,可能还需要更多设计者进一步讨
论,那么问题的解决实际上就取决于你是否会坚持与硬件设计者进行深入的讨论和交流。
讨论法只在小型的集中式设计组中才能有效地工作,设计人员必须非常接近。如果设计组
里有临时或兼职的工程师,或者设计人员在不同的地理位置工作,这个方法就会出问题,因为
即时的口头交流并不十分可靠。
虽然问题达成了口头的解决方案,但没有人能保证会如期去
执行。
这个方法也不能为问题的解决过程保留历史记录。
虽然某个问题解决了,但是没有办法将
解决问题的过程追溯记录下来。如果解决方案的实施严重推迟,还可能导致同样问题的反复出
现。如果提议的解决方案被证明是不恰当的,设计组可能会重头再来,不断重复以前的解决方
案。没有历史记录,就不得不频繁地重复以前的操作,设计组将无法从错误中吸取教训。对个
人来说,从失败中吸取教训的能力是有限的。
问题可以通过小组会议来追踪解决
对问题追踪的方法的进一步改进就是
程序法。在这种方法里,
问题通常由电子邮件信息
之类的自由格式文件正式报告出来,一些重点问题可以在小组会议时讨论和解决。
只有最大的问题才被追踪
由于在该方法中涉及到整个设计组的人员,并且会议的细节问题往往都被记录下来,所以
它对设计组的交流学习是很有帮助的。但这种方法也会占用小组会议的宝贵时间和精力,因此
通常只用于那些特别重要或有争议的问题。那些为数众多的细小问题一般就采用讨论法或张
贴法。
问题可以通过数据库来追踪解决
对问题追踪系统的再进一步改进就是基于计算机处理的方法。在这种方法里,首先对问
题进行深入的分析,未解决问题被重点、多次重复报告。解决问题的任务被正式地分配给某
个或某几个相关的设计者,计算机系统可以自动地将每天或每周的工作报告发送给相关的责
任人。
各种不同的解决方案和效果、问题的最终解决方法和过程都被记录下来,这样同样的问题
就不会再次发生,而且任何人都可以参照以前的方案来解决或避免发生类似问题。
即使有上述明显的优点,计算机化的方法仍不是很有成效,它最主要的缺点就是不方便使
用。讨论法和张贴法在任何情况下都能轻易地使用,设计工程师们面对着紧张的工作日程,如
果有以下几项可以选择,你会选哪一个相对简便的方法?
1. 直接面对负责解决问题的人并口头向他报告问题。
2. 在方便贴纸上描述该问题,然后交给上述责任人(如果他不在,则将该纸条贴到他的电
脑显示器上)。
3. 将关于该问题的描述输入数据库,然后在计算机上密切关注进展情况。
提交问题所用的时间应该比解决问题所用的时间短
当然你会选择一种最节约时间和精力的方法。如果希望设计小组有效地使用计算机化的
问题追踪方法,那么就应该选择一种对设计人员的正常工作影响程度最小的方式,最好是他们
的日常工作方式或已在使用的工具的简单扩展。
使用最广的是基于电子邮件的系统
最成功的计算机化问题追踪系统一般都采用电子邮件界面的方式,通常还带有网页界面来
管理任务和报告问题。因为每个设计者都会使用电子邮件,所以电子邮件界面成为了首选,它
可以使位于不同地理位置,不同时区的设计者方便地讨论同一个问题。只需要对这些电子邮件
信息进行分析、分类,随时跟踪问题的状态和解决方案(通常是对电子邮件正文或标题的特定
区域进行简单的设置),就可以有效地实现问题追踪系统。
以下參考 http://kenming.blog.ithome.com.tw/post/296/10052
在Survey 了一下 Open Source 的 Solution讓我比較感興趣的是這一套: 螳螂(Mantis)!
官網 www.mantisbt.org
wiki : http://en.wikipedia.org/wiki/Mantis_Bug_Tracker
它可以整合 dokuwik 與 subversion 。這挺重要的,尤其是 wiki 功能,使得 Issue Tracking 工具又同時可兼任 Portal,具有文件分享與基本留言討論的功能,讓溝通的機制更加地順暢。 蠻適合於中小專案的團隊,中的規模多大呢? 4,50 人以內吧,我的直覺是使用這套工具是綽綽有餘,沒有什麼問題的。
幾個比較有意思的功能:
- 容易安裝(這可重要)。
- 多國語言支援,當然包括繁體中文介面。
- 全文檢索與報表功能。
- 版本控管(CVS and Subversiion) 與 wiki(dokuwiki) 的整合。
- 權限驗證的支援(Defatlt, HTTP, LDAP, Active Directory service),不過,這塊可能要有相當的客製化技術能力才能整合得起來。
- 提供 WebService(SOAP) 的溝通介面。
這可真不錯,網站上還提供了 Eclipse, .Notifier, Ant Task 等 plug-in,當然,你也可以自行寫 .NET or Java 的 plug-in 外掛,彈性很大。