[互联网分享]GitHub的研发管理之道

八 27th, 2011

GitHub的研发管理之道

GitHub是一家著名的开源托管平台公司,员工人数当前仅有35人,它的成功离不开公司在研发管理上的创新之处。GitHub工程师Zach Holman分别写了三篇博文,对GitHub公司的研发管理之道进行了阐述,三篇博文分别是《How GitHub Works: Hours are Bullshit》、《How GitHub Works: Be Asynchronous》、《How GitHub Works: Creativity is Important》,CSDN已对第一篇文章进行了全文翻译。为了让大家对GitHub的研发管理方法有一个更全面的了解,CSDN对这三篇博文进行了编译与整合,内容如下:

别用时间衡量程序员的工作

俗话说,时间就是金钱,速度越快越好。时间越多越好。

● 跟程序员算小时很扯

在很多工业企业中,时间是决定生产效率的一个主要因素,但对于GitHub不是。在一个创业公司中,你不可能在一个问题上投入更多的时间,以期得到彻底解决。代码才是努力的方向。你需要具有正确的思维模式,以便创造出高质量的代码。

回想最近一次令你印象深刻或生气的事。你的工作效率如何?回想一下你最近真正高效的一次经历。代码从指间如飞般产出。当你具有正确的思维模式时,某一天高效的代码编程,可以胜过你一周受挫的编程工作。

我们希望员工尽可能在这一状态下工作。限定员工在办公室中办公的时间会影响他们的工作状态。如果要求我在9点之前必须到达办公室,我是很难保持这种高效状态的,但对于在GitHub的一半员工来说,上午可能是他们工作状态最好的时间。

允许员工更加灵活的工作时间,可以营造一个令员工兴奋的工作环境。在这个环境中,他们可以工作更长的时间,并一直保持高效的工作效率。

一天的工作

在GitHub,每个人的一天的工作时间安排是不同的。同样我的每天也是不同的,下面是一个大概的时间安排:

1.上午十点钟左右起床;

2.坐公共汽车去上班,并在中午或下午一点去吃午饭;

3.从下午一点找个地方工作,下午六点到九点在办公室里工作;

4.之后回家,并在家中沙发上工作或休息到早上两点。有时也会和同事出去吃饭。

有的同事可能在上午7点就来到办公室工作;也有的在下午3点才来。有的同事觉得在家工作比较高效。如果员工不喜欢在办公室工作,他们可以不用每天来公司(虽然大多数情况下,每个人都会来公司)。

我们一天的工作时间为什么如此“松散”,原因有二,一是工作在宽松的环境中,可以使我们在我们喜欢的时间和地方工作;二是我们希望创造一个可以使员工最高效率工作的工作环境。因为每个人高效工作的时间都不相同,所以我们不会强迫任何一个人。

限制性工作

现在GitHub有35名员工,并且还在增长中。这个方法带来了很好的效果。但是管理者仍喜欢固定的工作时间,原因有一:他们有一种错觉,认为时间是衡量员工工作的标准。

如果对工作时间很难把握,你需要寻找其他的衡量方法。他们的代码写得很出色吗?他们把Bug都处理完了吗?他们全身心地投入到工作中了吗?工作上更大的灵活性是否激发了他们工作的积极性?

对此很难做出定性的判断,但是相比起“在工作日的十小时内把这件事做好”,上面这些方法更有价值。因为当你用时间来衡量工作时,他们的工作就会变成更多的时间编写更少的代码。

异步工作方式

到目前为止,异步工作方式是我喜欢在GitHub工作的一个主要原因。

网络聊天室

GitHub在初创的头一两年中,并没有固定的办公地址。Campfire网络聊天室是该公司主要的“办公环境”。虽然现在GitHub已有固定办公场所,但Campfire仍是平时解决问题的主要沟通工具。因为通过聊天工具可以实现异步工作。

有了异步通讯工具,即便你外出就餐,回来后通过查看留言即可了解外出期间发生的相关工作事件;依靠异步通讯工具,你可以通过发消息询问某同事一个问题,而不用担心是否会打扰他,他方便之时,自然会给你回复;你即便不在公司,通过聊天室也犹如像在办公室工作一样。

代码评审工具Pull Requests

GitHub开发工作流中离不开Pull Requests的使用。稍晚些我会就“Pull Requests”写一篇更为详细的博文,现在我想说的是:生活在“Pull Request”的世界里真是一件伟大的事啊。

如果我想对代码库进行修改或添加一个新特性,我可以延伸出一个新条目,在Pull Requests中新建一条Pull Request,我的同事会在以下三种情况下复查我提交的代码:1.他们受到这些改变的影响;2.他们对这些改变很感兴趣;3.当他们时间充裕时。之后,我们可以在部分机器上运行调试这部分代码。如果一切运行正常,即可在主库中进行修改。

通过Pull Requests,我就不必再拉同事开会了,开会是件让我和同事都很头疼的事。原因是:(如下)

会议有害

37signals曾在Getting Real上发表过一篇文章《meetings are toxic》(译注:会议是有害的),说实话我比37signals更加讨厌、鄙视开会。

当某个问题亟待解决时,往往会召开会议来商讨。开会时,通常会邀请更多的人来参加。即便你对该会议主题十分感兴趣,最后你也将感到困扰,因为会议会让你停下手头上的实际工作,而去讨论其他工作。

除此之外,会议内容很容易遗忘。即便你做了会议记录,你也不可能记住会议的所有内容。会议上你对某些内容并没有做记要,然而三个星期后,这些内容越凸显其重要性时,你将会费尽脑汁去回忆这些内容。查看网络聊天室的聊天记录,你就不会遇到这个问题。同时网络聊天室还可以减少参会者零散的思想表达,他们会用完整明确的句子来表达自己,这样更有利于谈论的进行。

在GitHub中也将继续保持有“会议”,但会议数目不会过多。

充足的工作空间

正如我在上面提到的:老板希望限定员工处在一定的“工作空间”中。在这个工作空间中:员工仅工作了一个小时,就被拉去开团队会议了。

我们发现,如果你让有责任心的员工根据他们的时间安排工作的优先权,可以使他们完成重要工作的同时,更高效率的完成其他工作。

创新的工作环境很重要

一个富有创新的工作环境可以让人们兴奋。兴奋是很容易传染,可以由一个项目传染到另一个项目。即便其中某个项目没有赚到钱,被它传染的另一个项目也可能会使公司大赚一笔。

GitHub公司中很多员工喜欢喝酒。公司便在办公室中为他们准备了可以随时取用的啤酒。对于GitHub来说,酒是该公司创新环境中重要的一个因素,GitHub也从中获益良多。

在GitHub发起的酒会上,来自洛杉矶乃至全世界的人济济一堂,不仅可以很好地宣传公司的产品,同时也会让人感到在GitHub工作是件令人兴奋的事(这也是寻找优秀员工的绝佳机会,大家一起喝上几杯,远比正儿八经、充满压力的面试过程更容易招到靠谱的人)。在公司内,因为对酒的爱好,员工之间除了是同事关系之处,还是朋友。员工之间更加真诚,更加互助。酒是社交关系的润滑剂也许缘由于此吧。同时酒吧也是一个人才聚集的地方,通过集思广益,便会萌发出极具创造力的点子。据统计,很多令人眼前一亮的产品点子多诞生于洛杉矶的酒吧中。

营造创新环境,GitHub采取的另一项措施便是鼓励员工与众不同。GitHub中以Ruby为主要开发语言,公司中大部分开发人员全天使用Ruby。GitHub鼓励员工不要受限于现在的工作流程。公司在办公室为从没有接触过硬件开发的员工开设了一个Arduino(开源电子原型设计平台)商店。GitHub每月会组织员工举行健身俱乐部活动,还会针对在Twitter上谁拥有最多的粉丝进行激烈的辩论,同时鼓励员工在公司内部发表演讲,谈谈从古怪编程语言到爬山生活中点点滴滴。员工对生活中的不同领域发生兴趣,有利于他们从不同角度思考问题。个人提高了,公司也随之提高了。

创造力具有自我引导作用。可以说很多人都不能明确说出自己到底喜欢做什么。如果你喜欢做某件事情,那就放手去做吧。事实证明,只有真正喜欢一件事的人才会把这件事做得很漂亮。在GitHub中,员工可以利用 Pull Requests尝试他们所有的新想法,其他员工可以在此原型的基础上不断进行迭代,这是构建新产品的一个伟大方法。

像IBM这样的大公司可能比较重视资金的投入,但对于一个创业公司,这是行不通的。一个创业公司可能不必限定工作时间,不必开过多会议,员工的代码可以进行点对点的审查,从而创建一个很有趣的公司。同时注意你的公司不应该只开发你自己的产品,应该集思广益,让员工投入到产品的创新过程中。





除非注明,本站文章均为原创。本文基于 BY-NC-SA 协议进行授权,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名 metaboy(包含链接).

本文链接地址: http://blog.wangyuxiong.com/archives/51273

订阅本站:http://www.wangyuxiong.com/feed

分类: 架构设计         标签: ,
目前还没有任何评论.

无觅相关文章插件,快速提升流量