30 January 2016

hacknews上发了一篇文章:如何有效利用20%的自由时间,看了觉得很有用;虽然作为天朝程序员,很少有所谓20%的自由时间, 但是个人人为,即使是对于正常的工作,也是有积极的借鉴意义的。下面是个人翻译的,水平不好,凑合看,e文好的直接看原文吧, 原文地址

继google开创性的提出20%的自由时间以后,很多企业都为雇员指定了这个所谓的20%自由时间。 也就是员工在一周内有满满的一天可以做自己想做的项目。这样的实践可以极速提供员工的积极性来开发工具,也可以直接或者间接解决公司的一些问题。而且公司也可以在开源方面建立威望以及有所收获。

但是有个问题,就是这20%的时间能不能科学有效的利用起来,就很难说了。由于没有清晰的目标,很容易陷入泥潭,也导致金钱的浪费,造成员工士气低落。

这里我给大家分享我们的团队是如何利用这个自由时间的。通过有效的工具方法调整,使得团队的每个人都可以做自己喜欢的工作。而且通过几周的实验我发现确实很有效。我的同事从散漫无效的状态变成了定期向github提交项目的状态。而且感觉这种工作可以继续持续下去的。

我们需要清楚这样一个技术背景,开源项目——实际上任何项目,都是需要各方面共同努力,才能成功。一个伟大的项目,并不仅仅是一大堆代码的堆积。而是打包,文档,扩展服务,本地化等等各方面都做好了,才能成为一个成功的项目。解析来我会通过贡献分类来想你解释如何将这些放在一个贡献矩阵(contribution matrix)中来协调完成这些。

字母缩写(BASEDEF)

针对一个项目的贡献包含7个方面,为了方便记忆,我用首字母缩写(BASEDEF)来表示。这个缩写是组织好一个鼓舞人心的黑客日(hack day)的关键,我稍后会解释如何来实践;不过首先,我先解释这个缩写。

B 是说 BLOG。这是对一个项目进行贡献的第一种方式。当你刚刚看到别人(也可以是你的同事)写的项目。对这个项目的工作原理你完全是新手的视角,你比较倾向于看这个项目的综述性类的清晰描述。一些解释这个项目的引导性博客会使你更加熟悉这个项目,那么你也可以写博客,比如把这个项目和其他项目进行对比,或者解释新手如何入门这个项目。一个好的项目需要拥有很多人的各种各样的观点。

接下来的贡献的方式就是将这个项目应用(Apply)在你自己的项目中。一个新的工具,最好的贡献方式就是将它投入使用。比如,我的朋友写了一个shell脚本测试框架。我把它用来在我的系统中测试一些shell脚本。这样查补缺漏、提出意见,也可以帮助我同事做更多的修补、完善。

接下来的方式就是提建议(Suggest),提建议是一种非常简单但行之有效的一种方式。你可以fllow一个项目的文档。然后在5分钟内看看能不能发现一个小问题。这种方法叫做“5分钟测试法”,试完后如果有问题,就告诉项目的维护者,哪里有问题,需要改进之类。

现在我们挺近代码的领土,字母E标识扩展(Extend)。你可以在代码中加入一个新功能,这个功能可以是你自己的灵感,也可以来自于github上其他项目的灵感激发。不用啰嗦太多,可以直接考虑给这个项目添加一个变更日志(CHANGELOG)。

Document文档,写一个整套的技术文档,以解决问题为目标,这个类型的贡献可能和博客(BLOG)有所重叠,但是会更倾向于深入的技术协作。多写一些例子来引导用户一步步深入这个项目。

接近这个名单的最后是做一个传道士(Evangelize)。这意味着你可以发邮件给你朋友介绍这个项目,也可以把项目情况提交给一些新闻聚合网站。虽然对于宣传,项目的领导着都更倾向于修复用户提交的问题。但是不要忘记有句老话,叫做:如果等到项目完美的时候再发布,黄花菜都凉了。(译者注:暗合现在流行的敏捷开发啊,快速迭代。)

最后的一个重要的贡献类别就是——提bug(FIX)。这里不仅包括功能性bug,也可以是一些优化项目开发流程的建议。比如:测试,持续构建,静态代码分析,自动化测试等等,通过各方面来减轻项目维护者的负担。

具体实践

现在我们有了这7中贡献类别。我会用一个图来表示,我把它叫做“贡献矩阵”,现在一起来看看如何工作的。

那么现在是周五的早上,公司%20自由时间开始咯,一部分人清楚的指导自己要做什么,还有一些人不是特别清楚。或者不知道当前项目的情况。开始之前,我让所有人把相关项目名字列在一个白色板子的左侧。这些项目是我们目前正在处理的项目。当然通常情况下,每个人会列出他自己正在做的项目。下面是个例子,比如列出了4个项目:

  • ACME Widget

  • PrivacyBuilder

  • Testtron 3000

  • Project X

每个人都很满意,没有遗漏或者不相关的项目。而且每个项目都有相关人员快速的给其他人员简单介绍一下。下面在白板上画出项目表格:

BLOGApplySuggestExtendDocumentEvangelizeFix
ACME Widget
PrivacyBuilder
Testtron 3000
Project X

然后让每个人在他们感兴趣的地方填上他们的名字缩写,最多填三个。可能小金关注的是Project X的blog,小A填的是 Testtron 3000的document,总值最后,表格上全部都是名字缩写啦。

这是获取团队感兴趣东西的最直接有效的反馈了。一些项目会凸显出来,因为它比其他项目更让人关注。这些项目里面密密麻麻充满了姓名简称。谨记每个人都必须选择三个项目。每个人选择三项任务应该对整体项目有益。

技术上应该保证是针对所有项目深思熟虑过的,每个人对任务充满激情,整个小组应该聚焦于这些项目列表并且稳步推进。

如果你们公司也有这种20%自由时间的政策,我会鼓励你尝试这种方法。可以很好的通过多人编辑这个表格来工作;当然你也可以通过google电子表格软件来分布式工作。如果你并没有余下的时间提供给员工,让他们在开源的项目上做出贡献。那么也可以将这种方法应用到内部的项目中,比如完善文档或者偿还其他一些技术债务。





Fork me on GitHub