本文来自Uber的技术总监Pedram Keyani的一篇博文,全文以Facebook为例子作为切入点,描述了在互联网和软件公司中,编程马拉松是如何起到了塑造公司文化并催生创新的作用的。
对于我个人来说,我是非常热衷于编程马拉松的。这就是为什么过去在Facebook的7年时间里我组织举办了将近40场编程马拉松的原因。
一开始的时候,我之所以这样做主要是因为我喜欢在工作之余和其他同僚一起抛开所有条条框,无拘无俗的,天马行空的为代码挥洒汗水。随着时间的转移,这些编程马拉松从原来的业余爱好逐渐演变成Facebook的一个重要的公司文化。让我们的编程马拉松紧跟Facebook的勇猛前进步伐是个很困难的事情,所以我们经常需要付诸认真的思考和实践以确保我们没有和Facebook脱节。
正是在不断的去捕获,增强,和扩大那些让编程马拉松变得如此特别的神奇力量的过程中,我突然意识到编程马拉松自身其实已经在我们共同成长的过程中不知不觉的得到很大的巩固,甚至起到了营造我们公司文化的作用。
一个很遗憾的事情是,现实中往往很多创意都会胎死腹中。因为那些孕育它们的人一旦意识到需要将这些创意变成现实的话竟然需要的如此大量的步骤的时候,它们就会打退堂鼓。
这其实也挺容易理解,是吧?一个没有实现时间限制的创意其实就有如我们桌面很不显眼的那个角落上已经发霉的“明天再做的任务”列表,众所周知,其实这个“明天”是永远不会到来了。这就反过来衬托出编程马拉松背后所存在的吸引力和驱动力了——刻不容缓!
编程马拉松从开始到原型的演示所需要的时间是非常紧迫的,正是这种客观事实让大家会用不同于上面描述的另外一种心态进行认真对待 - 你没有时间去前怕狼后怕虎的瞻前顾后。你没法对自己说在今后有时间再来完善这些点子,你只能驱使自己和团队在有限的时间内完成该最简的产品,无论该最简产品是可行的(MVP)还是不可的。在有限的几个小时的时间内完成相应的任务其实是一个很好的可行性验证实践,究竟要做的这个东西是否真的可行。
这种深受时间约束的简单验证会带给你难以置信的效果,因为它将会迫使你去权衡功能的利弊并做出合理的折中考虑,同时也会刺激你的脑神经让你的创新意识最大化以使得所实现的东西可以真正工作起来。约束乃催生创新的非凡的倍增器!
在开展编程马拉松之前我经常会先建立起一个维基页面或者一个共享文档来让大家将他们的想法以及各自团队所需成员的技能发布在上面,比如会有如下这些项:需要后台工程师,移动工程师,产品设计师,等等,下一步,附带该页面连接的编程马拉松正式开始的邮件就会发出去,这样大家就可以在该页面上面列出他们的想法和需求了。
这样做的一个额外的好处是,就算成员中有人自己并没有什么点子也依然能够提供帮助并加入相应的团队以为推动相应的点子变成现实而作贡献。通过组建小团队并快速实时的一起对点子进行思想碰撞,一起进行设计,一起解决问题的这种行动其实有点像学跳爵士舞,因为它也是鼓励参与人员快速的进行调整和即兴的发挥。
这种狂热的节奏让整个团队的力量大大超过了他们各自加起来的力量的总和,并会在今后公司任务的协作上体现出来。当你投身于编程马拉松之中时,你会真正的领会到,这是一个多么美妙的事情。
编程马拉松在公司范围内摒弃所有从上到下的条条框框,有机地鼓励公司文化的营建和团队成员之间的合作。这一点非常的关键,因为文化并不是一些你可以简单通过条文规定下来的东西。团队成员会开始碰头互动并进行思想碰撞,就会加强大家对事情的优先级进行排序的重要性的意识,进而就会提醒老员工和新员工该如何才能更高效的进行合作。
有机的自组织会让来自公司各个部门的同事有机会一起协作并建立起良好的互动关系,而这些在通常的企业运作过程中是不大可能出现的。
随着这些跨功能团队成员的深入协作,人们就会开始互相认识并建立起相互之间的友谊,并加深对公司不同的团队和职能所承担的任务的更清晰的认识和了解。
一个成员之间互不认识的团队,其效率往往比不上一个成员之间知己知彼互相信任和认同的团队。在引进编程马拉松之前,一个前端工程师也许会认为“噢,尝试跟系统操作员一起在这个项目上公司将会是一个很痛苦的事情。”
在经受过编程马拉松的洗礼之后,该工程师更可能这样说 “看来我要找找系统操作员Rachel才行,商讨下我们该如何快速的搞定这个问题。”
在编程马拉松这个好时段建立好成员间的良好关系,会让成员们更好的在公司碰到困难时帮助公司渡过难关,因为人往往会对一起共事的同事有一种互相连系的感觉,并且他们会对这种关系产生一种信任依赖,所以更容易的在困难时互相帮助并共进退。
乐于挑战风险的人往往也勇于承担失败。编程马拉松可以说是失败的孵化器和加速器。通过将失败正常化,我们鼓励大家要勇于接受挑战。
编程马拉松会帮助你教育你的团队清楚认识到失败其实是个好事,这其实是创意的另一个的呈现方式。爱迪生发明个电灯泡还经历过无数的失败呢?如果他没有勇气接受失败的话,哪来的电泡给大家用呢?当人们为充满激情的事情而忙活的时候(对比通过KPI进行衡量的任务),他们往往会大胆的在一个新的和有意思的领域闯出一片新天地。
在这些无拘无束的探索中,甚至会催生出一些改变整个公司进程的创意(我就曾经碰到过这种情况,这种感觉真是棒极了)。
这同时也会让你的团队培养出一个不怕失败敢于接受挑战的可贵文化。无论怎么说,编程马拉松的历程其实就是对你和你的团队很好的一个嘉奖(况且,编程马拉松成员的嘉奖往往包括定做的T恤发放了。^v^)
在我们的日常生活中,争吵往往都是由声音最大的一方或者死不认输的人获胜的。幸运的是,在一个关系到编写代码的公司中,没有什么比可行的代码更有说服力的了。编程马拉松让大家在此时此地一起角力来将点子变成现实。
编程马拉松敦促人们将那些过去还只是假设的点子进行实现,以验证该点子究竟是可行还是不可行。因为编程马拉松是一场扁平的,临时的,以及人员流动性强的活动,大家一起共建一个可靠的环境来排除万难将一个点子付诸实现。
以Facebook网络聊天这个功能为例,开始时候有一大堆质疑的声音和压力来反对将Facebook网络聊天这个功能实现到Facebook上面去。谢天谢地的是,其中一个小团队期间举办了一个编程马拉松并通过实践证明了反对者的担忧是多余的,是错误的。当我们今天往回看的时候,我们会看到当时他们反对的功能在今天已经成为无数人进行网络交流时一个必不可少的Facebook的功能点了。
并不是每个点子都必须——或者说应该——关注在巨大的改变上面的。事实上,如果总是过于强调高强度的重大改变的话,你往往会对那些显而易见的创意视而不见,让它们在你眼皮底下偷偷溜走了。给大家营造一个良好的环境来一起围绕着点子进行开心的互动会唤醒我们小孩时最活跃的那颗好奇心。
本文来自techgogogo,作者天地会珠海分舵。