我相信每个公司都会认为写文档是一件很重要的事情,但是文档的书写、管理、更新,备份等问题绝对不是一件简单的事情,我不知道别的公司是如何管理文档的,但是我以前在畅游工作,文档是通过word来书写,然后通过svn来管理就非常低效,我想先说一下我们公司文档是一步一步如何改进的,也许在这个一个改进的路上会看到你自己的影子。
第一阶段:使用pages(类似office的word工具),人工版本管理
开始的时候直接使用pages,然后制定好格式后,让每个人按照同意的格式书写,书写好通过邮件提交给管理人,管理人审核通过后,提交到文档服务器中进行统一的管理,如果没有通过,会把修改意见加到文档中,然后通过邮件发送给提交人来重新修改,如此过程重复,直到文档符合要求;
这种管理是非常低效,原因有三:
- 人工管理最大的问题就是无法进行版本管理,历史修改无法记录,无法回滚。
- 如果多个人对同一个文档进行修改,就会发现整个提交和审核文档的过程非常冗余和低效;
- 管理人对文档的管理非常累,浪费了很多时间;
第二阶段:使用pages(类似office的word工具),使用git版本管理
使用git管理后解决了版本管理的问题,但是仍然有如下问题:
- 文档可以通过记录各个版本的修改,但是却无法通过git来比较出到底每个版本都有哪些修改,因为pages或word文档都不是纯文本格式的;
第三阶段,使用markdown进行文档书写,使用git进行版本管理;
针对第一二阶段出现的问题,我们文档的书写进行了修改,使用了markdown,markdown是一种轻量级标记语言,书写内容几乎是纯文本,这就解决了第二阶段的问题,git可以通过diff轻松比较出来每个版本的区别;
这一阶段我们也全部使用git进行版本管理,取消了管理人,所有文档的提交和修改与代码的管理完全一致,审核文档的过程与审核代码的过程完全一致;我们公司不使用git push和git pull,因为我们的主branch只会让审核过的commit进来,所以我们使用的是git fetch和git rebase等方法来进行统一的提交和管理。
如果你写文档的全是技术人员,我觉得这个方法非常值得你去试用。
但这样管理文档仍然有缺点:
- 整个过程还是需要有一些技术的基础,这对于非技术人员来说,学习成本比较大;
- 虽然markdown是一套很简单的标记,但是不是所有人都愿意去学去用;
- git diff对比结果的显示仍然不够人性化;比如修改一行,git diff会显示删除了一行,增加了一行;
第四阶段:寻找一款php开源的文档管理应用,来解决第三阶段出现的问题;
这个阶段我一直在寻找,期望找到一款合适的文档管理的工具,但是没有找到合适的,因为如果涉及文档的多人合作书写,版本管理仍然是一个很难解决的问题;所以,此阶段未果;
第五阶段:使用Google doc 进行文档管理
针对第四阶段没有找到一款很好的内部局域网的web应用,只能使用一些外网的在线工具,Google Docs闪亮登场了,Google doc解决了我们第三个阶段出现的所有问题:
- Google Docs和Pages或者word使用类似,技术人员和非技术人员都可以使用;
- 一般人都会使用;
- Google Docs提供的查看修订历史记录功能,很人性化的显示出哪些内容是新增的,哪些内容是删除的;
- Google Docs会在文档中分配给每一个人一种颜色,这样就很容易区分是谁的修改;
- Goolge Doc很容易进行权限管理,分读写权限、读+评论权限和读权限;
另外我非常喜欢Google doc的一个功能,就是如果多个人同时在编辑一篇文档的时候,你会即时的看到别人的每一个修改动作;Google Docs也提供了聊天功能;
但Google Docs仍然有他的问题:
- 最严重的问题就是,Google Docs在国内被墙(偶尔可以使用),我们公司使用付费vpn来解决这个问题,还算稳定;
- 可能会有一些人觉得Google Docs不安全;
盼望:
- 某一天Google Docs在国内解封了(可能性不大);
- 某一天Google Docs开源了,我们可以在局域网中很容易搭建(Google 不会开源Google Docs,但我觉得会有类似的应用会开源,就像Github没有开源,但是Gitlab开源了一样);
- 某一天国内也有类似Google Docs的产品出现(有一定可能性,因为真的是一个很好的产品,我也相信我们的山寨能力);
求分享:
非常希望看文章的你能分享你们公司的文档管理方法,我觉得只有不断的取长补短才能让文档管理变得既简单又高效,文档管理好了,知识就可以更好的传承,效率就可以大大的提升,最终我们会产生更多的财富,公主和王子从此过上了幸福快乐的生活。
本文链接: http://lijinma.com/blog/2013/01/28/how-to-manage-docs/