V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
shijingshijing
V2EX  ›  程序员

单人作坊,有什么好的 Issue Tracking 工具或者工具套装辅助单人干活儿?

  •  
  •   shijingshijing · 2017-11-21 15:55:55 +08:00 · 2501 次点击
    这是一个创建于 2555 天前的主题,其中的信息可能已经有所发展或是发生改变。

    写完了发现标题可能取错了,应该是《单人作坊,有什么比较好的项目管理工具套装》

    场景是这样的:one-man workshop,手上有很多项目,不仅有自己做的小工具,还有从客户那边接的活儿,想把这些项目统一用工具管理起来。工具主要用于三个方面:需求捕获,代码管理,bug 追踪

    具体需求是这样的:
    1,需求捕获:我自己的小工具有非常明确的需求,少量文字+截图即可搞定;客户需求比较模糊,一般是丢过来一个 word 文档,也是少量文字+截图,需要我对其进行细化,形成无歧义可操作的详细需求,最后反馈给客户的时候也需要给他看这个详细需求,以免后续因需求定义模糊而撕逼,有的正式项目签合同会打印输出作为附件。

    需要一个需求编辑 /管理工具,该工具需要具有以下功能:
    a)能够做到图文混排,有很多客户过来的需求是直接截图的。
    b)能够进行版本管理,只需要做到文本内容的版本管理(和 git 对代码进行管理一样),图片不需要管理
    c)能够进行批量处理,两种方式:1,本身自带编程功能(比如 Word 支持 VBA,更复杂的能通过 Visual Studio 的 office interop ) 2,本身不带编程功能,但能够导出为普通编码进行处理(比如 xml )
    d)能够导出电子文档,打印输出。
    此外,最好具有以下补充功能:
    e)最好能够具有搜索功能,不是单个文档内搜索,而是在多个文档内进行搜索。
    f)最好用户能够访问,只能看不能编辑,能够写 comments,方便与用户讨论。

    2,代码管理:这一块很成熟了,首选 git,其次 SVN ( SVN 在某些场景有 git 不可替代的功能),可以不用讨论。

    3,Issue Tracking / Bug 追踪:分成两部分主要是这样的,对于自己的只需要做到 Bug 追踪,发现问题,直接定位处理;对于客户的项目,需要与客户有个交互,比较正式,要做到 Issue Tracking,整个过程如下:

    • 客户发现问题(可能是程序本身 Bug,可能是客户新的需求,可能是某部分客户需要改进)
    • 客户提交 Ticket,对问题进行描述
    • 我接到 Ticket 后分析,给客户初步反馈(能不能处理,不能处理的话寻求其他方案,能处理的话要多长时间,需要给我多少钱,etc.)
    • 客户同意后再次回复,给出正式结果
    • 我开始干活儿,从需求开始改起,然后改代码,最后提交测试后的结果,某些场景需要截图
    • 客户确认后,付款,交付代码或者 Patch, 关闭 Ticket。

    需要一个 Issue Tracking 工具,该工具需要具有以下功能:
    a)具有简单的流程管理功能,开 Ticket,提交报告,关 Ticket,确认等
    b)能够提交图文并茂的文本内容,方便描述问题以及反馈意见
    c)具有提醒功能,每天打开之后提示今天有几个 ticket 马上要到期了。
    d)具有统计功能,今天有几个新增的 tickect,有几个待完成的 ticket,有几个正在进行的 ticket,做到心里有数,督促自己干活儿,激发成就感。
    e)最好能够与 git/svn 进行交互整合,能够直接看到变更的上下文以及前后对比。

    上面整个系统有几个共性的约束:
    1,所有工具要么是独立应用程序,在 windwos 下面跑;要么简单 BS 系统,能在虚拟机 Debian 上跑,我需要拖着笔记本到处跑,我本身也不喜欢那些重量级的东西。
    2,不考虑 office 365,github 等所有云端或者在线的方案,接入网络必须在可控制情况下进行,因为客户明确要求资料不可以放出去。
    3,考虑到后续二次开发以及扩展为小型团队的可能性,优先使用开源方案,其次考虑一次性付费方案,不考虑购买按人头 /使用时间买 Licence 的方案。
    4,如果是在虚拟机上跑的 BS 系统,最好是 PHP+MySQL 实现,或者 Python 也行,Ruby 和 Java 感觉有点重,数据库最好也是 MySQL,SQLite 也能接受,不想再装个数据库。

    --------------------------------------------
    接着来说说可选方案吧。

    首先看一下我所在公司的方案,公司不缺钱,所有用的东西都是花钱买的,最上面有集团级别的 PLM 系统,有专门的开发团队维护。下面简单描述下:
    1,需求部分,重量级跨部门的使用的是 Rational DOORS,简单的使用的是 Word 配合 Sharepoint。DOORS 的优点很多,比如上面 1 部分的 a-f 项都能满足,缺点是启动慢,用户体验不如写 Word 文档来的酣畅淋漓。
    2,代码管理,SVN 和 git 都有用,SVN 主要是历史项目,git 新项目用的多。
    3,Issue Tracking,这个没得选,以前用的某国产定制 MIS 系统,好在也不复杂,现在全部转 JIRA 了,定制好了流程之后,老项目导入 JIRA 很顺利。JIRA 也很好用。
    公司还有很多其他神器,不缺钱真的是可以随便玩。

    其次来分析一下单人干活儿场景的选项:
    公司级的那几个,我个人使用体验后的结果是,除了 SVN 和 git 之外,全部不采用。
    1,需求管理,其实总结下来分为两大类,一类是以 Word,Typora, LaTex 为代表的以文档为中心的模式;一类是以 DOORS,wiki 系统,wordpress 等以数据库为中心的模式。
    word 能满足绝大部分要求,和客户沟通起来客户接受度也比较高。但是有几个问题:
    a) 跨文档搜索困难,虽然可以用 sharepoint 或者 vs interop 来进行某种变通,但其实我期望的是类似 wiki 或者 wordpress 那种搜索。
    b) 版本管理困难(我指的是像 git 管理代码那样逐行管理,尝试过将 word 导出为 xml 格式,太乱,而且变更起来不是按照正文的逐行管理)。
    Typora 和 LaTex 用户无法接受,而且图片无法直接嵌入到文档中(我不是深度用户,了解不多,但 Word 导出的 xml 是能够将图片嵌入到文档本身的。)

    DOORS 功能倒是强大,全部可以满足,但太重,替代产品有个 ReqView,没用过,而且按人头 /时间收费,299 刀一年。
    wiki 系统,wordpress 也有很多应用案例,比如 Chromium Project 就是用这种在线文档方式管理的,但有一个问题我不知道如何解决:每次产生变更之后,如何追踪这些变更。

    2,代码管理,git 无疑,但 SVN 有一个优势就是 TortoiseSVN 不知道用的什么方法是可以将 Word 文档按行进行处理的,diff 功能能够按行识别。此外,公司用的 GitLab 功能强大,但太重,用的是 Ruby,数据库默认是 PostgreSQL,虚拟机感觉会跪。好在 git 的 bare repository 能够满足当前需求。

    3,Issue Tracking / Bug 追踪:JIRA 是不可能的。
    主要考虑 Redmine,受这篇文章影响: http://www.stackprinter.com/export?service=stackoverflow&question=1130466&printer=false&linktohome=true
    但是现在才看到这货也是 Ruby 写的啊(不好意思,Ruby 给我感觉就是慢,耗资源) BugZilla 看起来也很不错的样子,但是没有用过,有使用过的能介绍一下么?

    以上,请大家自由发挥,有好的 idea 或者 case 分享的,我会点赞感谢回复。

    一定要轻量,一定要轻量,一定要轻量。重要的事情说三遍。

    第 1 条附言  ·  2019-07-21 23:13:26 +08:00
    今天继续 Update 一下,这个月试过了 TortoiseGit,这个工具自己定制了一个 windows shell 脚本,对 word 文档进行 diff 操作的时候,自动启动 word 内置的比较文档功能。真是一个神奇的小乌龟~

    TortoiseGit 本身也是 C++写的,完全开源,体积非常小,相比之下 SourceTree 太过厚重,决定弃 SourceTree 养小乌龟。

    此外,以前团队对 TortoiseSVN 都非常熟悉,切换到 TortoiseGit 相当平滑,然后再推 Git Workflow 难度也大为降低。赞一波。
    15 条回复    2018-01-21 15:29:18 +08:00
    GooMS
        1
    GooMS  
       2017-11-21 16:09:52 +08:00 via Android
    轻量啊,我用 github 就可以完成所有工作
    Rheinmetal
        2
    Rheinmetal  
       2017-11-21 20:50:40 +08:00
    http://iissnan.com/progit/html/zh/ch7_2.html
    git diff word 好办 在 gitarribute 里面配置一下就行了
    需要一个额外的 word 转换成文本的工具


    其他需求看看有没有合适的 github 插件
    Zenhub 之类的?
    shijingshijing
        3
    shijingshijing  
    OP
       2017-11-21 21:57:39 +08:00
    @Rheinmetal
    @GooMS

    感谢回复,正文里面说明了,不考虑 office 365,github 等云端或者在线的模式,只能自己搭建,不接入互联网(确切的说是对网络访问有控制,通过 VPN 或者 ZeroTier 等方式)
    GooMS
        4
    GooMS  
       2017-11-21 22:18:50 +08:00 via Android
    @shijingshijing bug 要求客户提供?你全内网怎么办?
    GooMS
        5
    GooMS  
       2017-11-21 22:20:26 +08:00 via Android
    Leanote, gitlab
    mlyy
        6
    mlyy  
       2017-11-21 22:28:29 +08:00 via iPhone
    trello
    forestyuan
        7
    forestyuan  
       2017-11-21 22:32:15 +08:00
    单人用的话,我觉得拿个小本子记下来就行了
    shijingshijing
        8
    shijingshijing  
    OP
       2017-11-21 22:43:33 +08:00
    @GooMS 客户通过 vpn 或者 ZeroTier 接入,按局域网客户端操作,这个我已经试过了,没问题。
    shijingshijing
        9
    shijingshijing  
    OP
       2017-11-21 22:48:23 +08:00
    @GooMS 控制接入的实现方案分两种情形:
    1,放在我电脑的虚拟机里,我到客户那边 on-site,接入他们内网,该虚拟机作为服务器,同时我在我自己笔记本上也能干活儿。此时不需要 ZeroTier 等第三方。
    2,我在家,提前跟客户商定好某个时间,在这个时间点,我开启虚拟机,启动 ZeroTier,我笔记本也启动 ZeroTier,客户那边也启动 ZeroTier,我们组成一个虚拟的局域网,速度慢点,但是传资料什么的没有问题。事情处理完毕之后,我们断开网络,虚拟机关闭,断开与互联网连接。
    mol310
        10
    mol310  
       2017-11-21 22:57:07 +08:00
    禅道
    Rheinmetal
        11
    Rheinmetal  
       2017-11-29 11:04:33 +08:00   ❤️ 1
    gogs
    shijingshijing
        12
    shijingshijing  
    OP
       2017-11-29 17:58:01 +08:00
    @Rheinmetal 谢谢,目测是个神器,好多 star。。。。
    shijingshijing
        13
    shijingshijing  
    OP
       2017-12-06 09:06:02 +08:00
    @Rheinmetal 专程再次前来感谢,真是个神器,而且是中国人开发的。除了没有 wiki 系统(或者是我还没学会或者找到),对 MySQL 版本有要求,要 5.7 以上,其他几乎完美。太感谢了。
    Rheinmetal
        14
    Rheinmetal  
       2017-12-07 18:12:32 +08:00
    shijingshijing
        15
    shijingshijing  
    OP
       2018-01-21 15:29:18 +08:00
    @shijingshijing
    @Rheinmetal

    挖坟 mark 一下,前几天也有人说了,gogs 有个 fork 叫 Gitea,也是很好用的。
    https://gitea.io/en-us/
    https://github.com/go-gitea/gitea
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1341 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 17:52 · PVG 01:52 · LAX 09:52 · JFK 12:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.