今年二月的时候,我发过一个段子:
「你是什么时候意识到自己可能需要休假了?」
「有一天我临睡前在家里的票务系统里给自己开了票,要求在家里的DNS域上添加 staging,preprod 等几个子域来符合最佳实践,然后在第二天醒来以后看到系统发出的今日待办事宜邮件的时候。」
段子归段子,我认为搭起票务系统是我在疫情期间干的最改善生活品质的一件事了。这里分享一下我的一些个人经验。
事务追踪系统,或者,由于其中的事务往往也被称作「票」(ticket),我个人也常戏称为票务系统, 在成规模的团队软件开发中是经常使用的一种工具。票务系统可以记录开发期间的各类任务, 将任务分解成多个可操作的子任务、为这些任务排列优先级,并将其分配给具体的人。 对任何工作而言,将工作拆解到较为具体的、可以由一个人完成,并且具有优先级和依赖关系属性的子任务, 都有助于帮助人们迅速、高效地完成工作。
在工作中我个人也很喜欢使用事务追踪系统来跟踪一些开发以外的事务性活动,并且将事务追踪系统作为一种类似笔记的工具使用, 在「票」中关联一系列相关文档,这有助于在事后总结经验或将重复性的事务性工作整理成更容易使用的形式(例如作弊条文档, 或是将常用的重复部分变成程序等等)。
这一系统的逻辑同样适用于生活中的琐事管理,例如旅行安排、家庭计划等。
以旅行计划为例,通常可能会涉及预订酒店、机票,获得签证,和当地人提前联络, 在特定日期之前设置邮局暂停投递、通知银行,乃至在出门之前关闭水闸和煤气总闸等等一系列事务。 如果将此类活动当作一个产品或里程碑,则事务追踪系统可以提供相当多的价值:
我认为票务系统适用于所有人,特别是有工程师背景的人。
尽管票务系统的使用是一件比较个人化的事情,并没有一定之规,不过我个人认为以下几点有助于提高使用票务系统的效率:
我认为一个好的票务系统应该具备以下这些比较基本的功能。现实中,常见的开源和商业产品大部分都具备这些功能:
我个人最近几年使用的票务系统是 Redmine,这是一套用 Ruby 语言写的开源事务追踪系统,它提供了很好的灵活性,便于定制,并且由于可以放在访问控制系统后面, 也能满足保护隐私方面的要求。当然,如果你不想自建系统,Jira、Asana 等商业软件也是不错的选择。
个人建议将包含 PII 的信息放在票务系统以外的地方,并进行适当的加密处理(即:即使有权限也只能获得加密后的文档), 只在票务系统中保存那些需要经常查询,并且不涉及个人隐私的信息。
对于工程师,其实也包括其他任何来说,票务系统不仅是工作中的得力工具,也可以帮助我们在生活中理清事务、提高效率。 无论是管理复杂的旅行计划,还是处理日常琐事,票务系统都能让我们更高效、更有条理地完成任务。