文化编码(Coding Culture)

英文原文:Coding Culture: How To Build Better Products by Building Stronger Teamshtml

  译/丛一前端

  软件开发人员一般会付出大量的时间和精力在如何构建最好的产品上。咱们常会纠结应该使用哪一种Web框架,是用NoSQL数据库仍是SQL数据库?不过,尽管这些问题十分重要,开发人员一般会忽视掉软件开发过程当中与这些问题一样重要的一个方面——文化。本文将与读者分享在Atlanssian公司中如何保持健壮的创新和协做文化氛围的经验。程序员

  产品时刻都在发展变化。在以后的几年中,一个你倾注过血汗和眼泪的产品可能会不复存在。不过,若是你能同时专一于创造健壮的团队和编码文化,你就可以时刻准备着,抓住出现的机遇(克服障碍)。并且,发展强健的文化须要对团队所表明的立场达成共识,而这种凝聚力也会正向地反映到团队所构建的产品上。伟大的文化促成伟大的产品。面试

  那么什么是“伟大的文化”?人们一般会将文化可见的外部标志——免费食物、免费饮品、瑜伽课程、Aeron电脑椅、电视游戏、Nerf 玩具枪——错误地等同于文化。的确,许多公司,特别是科技企业都会提供这些很棒的福利,可是这与文化没有半点关系。文化是咱们如何交流、工做、组织、荣辱与共。文化没法准确描述,可是它可以让员工更加快乐、更有生产力。若是员工惧怕失败,公司等级森严,雇主把利润看得比员工更重要,即便有再多的免费食物和公务津贴也无济于事。数据库

  当今的职场已经再也不由朝九晚五,打卡上下班,流水线式的心态所主导。对于知识型劳动者来讲,如软件开发人员,并非用容量或时间,而是用创造力和质量衡量产出的价值。现在,只要有须要,咱们能够自由选择在办公室工做仍是在家工做,或者是在酒店的房间里工做。这会创造无数使人激动的机会,培养一种可以让全部员工都受益的文化氛围。服务器

  创新文化架构

  在科技界有一个耳熟能详的故事,小型创新公司随着规模的增加会逐渐失去创新的能力。的确,大型组织与初创企业相比会更加结构化,缺少灵活性,这会致使难以孕育开创性的想法并使之浮出表面。文化如此重要的一个缘由就是不管公司规模多大,它均可以帮助公司始终保持创新。创造一个创新的文化氛围不仅是说“好吧伙计们,创新的时间到了。”或者开辟一个专门的“创新部门”那么简单。咱们不可能命令创新,也不可能将创新隔离在一个孤立的群体中。并发

  在我我的的经验中,鼓励人们创新的最好方法就是给予他们充足的时间开创想法并尝试实现这些想法。在Atlassian ,咱们每一个季度会将全部员工集合到一块儿,开展一次名为”ShipIt Day”的24小时黑客马拉松活动。全部对如何提高部门和产品有好的想法的人均可以加入到ShipIt Day中。围绕着那些最有影响潜力的想法,组成多个团队(或者也能够独自奋战),而后在周四下午三点,启动ShipIt Day。除了到周五下午三点必需要有交付物以外,没有任何其余规则。这是一项全球范围的Atlassian办公室活动,全部人最终会投票选出一个全球优胜者。app

  在24小时内所取得的成就使人惊奇。许多来自于ShipIt Day的很棒的产出物最终都融入到了咱们的产品中。此外,这些活动能让人们心情愉悦,由于他们有了一个能够将想法实现的渠道。ShipIt Day激励公司中的每一个员工不断鞭策本身而且思考用不一样的方式解决问题。框架

  快乐文化

  去年出现的一项重量级研究证明了咱们以前的感性认识——快乐的员工更加多产,一般也就能促使公司盈利更强,发展更迅速。ShipIt Day成为人们保持快乐的一部分不只是由于他们可以将本身的想法实现,还由于它将人们聚在一块儿。在快乐的团队中员工互相了解,互相尊重而且一同享受共度的时光。雇主能够经过开辟专门的社交时间,让员工能够休息和放松,从而培养快乐的工做氛围。

  公司欢乐时光、夏季户外派对和主题假日活动都是能够将不一样部门的各种员工聚集到一块儿的很棒的手段。共同庆祝团队的胜利也是个好主意,例如举办版本发布派对,由于这对出色工做的承认很是重要。与人分享胜利的感受更加甜蜜。此外,也能够组织像漂流或者攀岩这样的活动,员工可以进行团队合做而且更加深刻地了解同事的优缺点。这类活动能够加强一块儿共事的员工之间的关系而且可以让那些没有太多交流机会的员工之间创建联系。在坦诚相见和相互交流时,有助于人们感受更加温馨,同时还能够突出做为一个团队荣辱与共的感受,这有助于避免负面态度或相互指责。

  目前许多公司已经在开展这类活动,并认为营造快乐的文化氛围,这就是他们须要作的所有工做。但实际并不是如此。

  为了确保员工可以快乐努力的工做,经理须要创建快速方便的检查机制,快速获得员工关于当前工做方式以及工做改进意见的快速反馈。Atlassian构建了一个名为MoodApp的iPad应用,放置在办公室的每一个出口,这样当员工离开时就能够分享他们的感触,是否能感觉到他们的经理的支持等。咱们发现尽管超过90%的员工都比较满意当前的工做,仍有大约30%的受访者认为,在他们出色地完成某些工做时,并未所以获得承认。咱们将这一比例告知团队领导,并发起一项促进荣誉计划(Kudos program)的运动:很简单就可让员工互相赏识各自工做的方法。员工只须要在内部服务台填写一张单据便可。几天以后,被你们承认的员工就可以获得一张小礼品卡,里面有亚马逊代金券或者电影票。在荣誉单据数量增长的同时,感受工做不受承认的员工数量却降低到了10%。在了解到有91%的员工感受快乐以后,Spotify也作了相似的工做。尽管91%已是至关不错的一个比例,Spotify仍但愿了解剩余9%的员工不快乐的缘由。他们与这些员工交谈,并作出一些微小的调整,最终这一比例上升到94%。

  固然,不可能每一个人都一直保持快乐。某段时间可能会比另一段时间压力更大,工做以外的私人问题随时可能发生,并且可能会有超出咱们控制范围的事件发生,例如生产服务器上的一块磁盘损坏会致使成百上千的客户服务中断。起伏不可避免,但经过构建强大的团队,当遭遇不顺时,员工能够相互分担痛苦。

  由价值观驱动的文化

  文化不只是组织层面所应关心的问题,内部团队一样也要考虑文化问题。健壮的文化氛围基于整个组织层面的强力的价值观。价值观能够指导文化。Atlassian围绕五个强力价值观构建了本身的文化,例如‘不要#@!%客户。’对于工程团队,这意味着每一个人都须要可以了解客户。

  虽然这已是老生常谈,但仍然值得再重复一次。全部人都应该了解客户,并且客户也应该参与到产品开发的过程当中。咱们能够经过视频访谈,在投票系统中新增功能请求,故事映射,在办公室甚至是浴室张贴用户角色完成这项工做。意识到客户是团队运做的中心能够提醒全部成员构建产品的缘由和目标。这可以确保员工理解所要处理的问题,明白功能与产品直接相关的。

  顾客意识还可以帮助团队保持对产品的热情。除了热情以外,另外一个重要的工程价值(engineering value)就是追求卓越。蹩脚代码永远都是不可接受的,即便是因为时间缘由。创造一个可让开发人员或团队充分估算项目周期的环境,由于突击工做并不是好事,以后颇有可能须要从新返修。

  Atlassian的另外一个价值观就是‘欲求改变,先变自身’,这句话的含义是做为工程师应该不断寻找更好的作事方式。要牢记只有变化才是永恒不变的,昨日的最佳实践并不适用于今天。各个团队应该乐于尝试新的方法或使用不一样的技术,不过不要掉进‘由于有能力作到,就实施最新的框架’的陷阱。另外,要小心团队中妄自尊大的人,他们可能会作出一些超出既定目标,或者对整个团队或产品不利的事情。保证全部人都可以齐心工做,达成目标。同时,这也须要与架构调整的需求作出平衡。若是老是在调整架构而没有发布任何产品,这无益于任何人。不要对产品过分设计。咱们须要足够好的产品,但并不须要天衣无缝的产品。发布可用版本,获取反馈,不断优化产品。要在对代码的热情和用户的需求之间作出平衡。

  工程师正在利用这些价值观为客户构建平常使用的软件,在版本发布时,向客户展现工做成果的感受很是棒。不过,并非组织中的全部部门都有这样的特权。例如,服务部门能够追踪服务过程并基于处理的支持案例数量举行庆祝,但这并不像发布一个本身亲手构建的产品那么有知足感。几年前,咱们的服务团队决定从他们的角度解读‘不要#@!%客户’这类价值观的意义,并作成海报贴在天天进入办公室的必经之路。海报中包含了像“期待每一位客户”,“在问题还小的时候就解决掉它们”,“不断学习”以及“让客户敬佩”等口号。这培养了团队共同的使命感,而且让支持团队承认拥护这些价值观并按照这些价值观行事的“文化摇滚明星”。

  公开透明的文化

  公司很天然会划分红多个团队,文化须要营造一个这样的团队环境:1)有效率和凝聚力,同时 2)与其余团队之间沟通顺畅。咱们争取将小型团队的平均规模控制在4-8人。在这种规模的团队中,无需复杂的沟通工具,每一个人都能了解同事的工做内容。他们之间的联系也比较紧密。

  然而,随着企业规模愈来愈大,这些团队和部门每每会被分割成为多个难以打破的孤岛。构建强健的组织文化的一部分就是尽可能保持群组之间的界限越低越好,方便人们可以在须要时互相学习,互相帮助。不管组织规模多大,从根本上来讲,全体人员都是朝着同一个目标努力,强调这一点十分重要。例如,开发人员可能会以为十分沮丧,由于他们认为法律部门不容许他们使用某个开源库,只是由于说‘不’比找解决方案更容易。而法律部的人可能认为开发人员不能理解使用特定的软件许可证所带来的法律问题。

  越过这些孤岛最好的办法就是未来自不一样部门的员工彼此相连。上面所谈及的活动就是这一努力的一部分。此外还可让新员工写一篇关于本身我的信息的介绍性博客,以及实现健壮的便于共享的合做平台。经过博客或公告,员工还应该可以随时了解到其余部门正在发生的事情。例如,将设计团队赢得大奖的新闻与整个组织分享。分享失败并发起讨论——你永远都不知道谁会贡献出有价值的想法。透明是保持文化有活力的关键。

  咱们会记录全部想要在协做平台Confluence上讨论或保留的内容。咱们会讨论想法,将想法变成功能,并共同开发这些功能。这种方式要比电话沟通的方式更好,电话沟通时所讨论的内容没法自动文档化,也比电子邮件的方式要更好,讨论内容很容易被淹没掉。聊天也是很是好的手段。经过团队沟通平台HipChat,聊天已经成为咱们的神经系统。每一个团队都有本身的HipChat聊天室,聊天记录能够及时保存,若是某个成员正在旅行,在一个长时间的会议中或者想要更专一,能够选择关闭通知,稍后再查看以前的聊天记录。咱们还将聊天与其余的系统相连。例如,若是某次构建失败,咱们就会收到一个聊天通知而且能够当即发起一次讨论。除了每一个团队内部的聊天室以外,还有跨部门的聊天室,可让组织中不一样部门的员工创建联系。例如,法律部的员工和HR部门的员工能够加入一个足球主题的聊天室,讨论选拔赛计划或回顾周末的一场职业比赛。

  透明和沟通对于分布式的团队来讲尤其必要,这已经成为常态。这些聊天室可以链接不一样时区的人们,让他们达成共识,而且能够相互讨论。聊天室还可以消除组织内的层次结构。任何员工均可以评论首席财务官发表的一篇博客,反之也是如此。在这些流畅的沟通中,会产生许多可能很是伟大的观点,但一样重要的是,要保持全部的对话恭敬有礼。

  文化规模化(Scaling Culture)

  随着公司规模愈来愈大,在整个组织中传播和保持文化氛围会变得愈来愈有挑战。当我三年半之前加入Atlassian时,整个公司大概有350人,而如今有超过1300人。咱们清楚,随着公司规模的增加,咱们的文化氛围会有所变化,但咱们也知道若是可以正确行事并保持员工的责任心,咱们的价值观会帮助保持文化氛围无缺无损。

  咱们经过建立包括设计人员和QA人员在内的小型跨职能程序员团队实现文化规模化,若是在下一个Sprint中再也不须要设计人员,他就能够转到另一个须要他的团队中去,反之亦然。另外一个挑战是组织多个团队为同一个产品服务。我曾经见过一些公司经过建立前端团队、性能团队和数据库团队等多个团队来解决这一问题。在个人经验里,这会产生协做问题,由于某个功能或用户故事可能会横跨全部的团队。

  咱们发现让每一个团队各自负责一个特定场景的工做方式收效良好。例如,咱们的Confluence产品有一个“轻松入门”团队,集中精力研究如何将用户带入平台。而后,咱们还有一个企业团队,主要负责大型的客户,不只仅是在性能方面,还要研究如何在管理员屏幕上展现1000个用户。这些团队各自独立地工做,同时在须要时也可以相互得到支持。每一个团队自行决定问题的解决方案以及所要使用的我的工具。咱们将这种方法称之为“行动主义(do-ocracy)”,每一个团队都拥有受权,能够采用最适于他们的工做方式。

  各个团队各自独立的同时,咱们也鼓励团队在须要时从其余团队寻求支持,与其余团队分享他们能够实施的好想法和功能。若是轻松入门团队说,“咱们计划按照功能构建新的Confluence页面布局,”咱们会将这个想法与全部其余的团队分享。其余团队可能会说“从企业的角度来讲,你可能须要注意这点或那点。”全部的事情都会通过讨论,这可以创造出一个集体全部制的环境。集体主义须要透明度。为了在代码级别达成这一目标,咱们会在Stash和Bitbucket中作代码评审。不过有时候很难找到最合适的代码改动评审者。所以咱们还编写了一个免费的Stash插件Stash评审人推荐器(Reviewer Suggester),根据以前是否修改过该文件或者是该文件的原做者,进行评审人推荐。他们是评审改动的最佳人选,由于他们对这段代码最为了解。咱们发现这种方法的扩展性十分良好,可以让组织更加扁平化,从而引领更多创新。

  挑选合适人选

  若是不能雇佣到适于公司和各个团队的人选,即便在文化氛围培养上付出最大的努力,最终也会功亏一篑。在人员雇佣方面,能够吹毛求疵,拒绝妥协。挑选合适的人选有助于保护辛苦建立的文化氛围。Atlassian在最终肯定一个候选人以前,会通过筛选性问题,在线编码测试和屡次现场面试。每一个候选人都须要有合适的技能而且可以与公司价值观及其余员工相容。

  也就是说,你不该雇佣只适应某种特定模式的员工。在我说你不想要一群兄弟程序员时,最好相信我,而若是你只雇佣你的朋友,那这种状况就颇有可能发生。你的文化和生产力会随着多样性一同增加。若是新的影响者不能使之面目一新,文化早晚会消亡。雇佣女性,雇佣有着不一样年龄,不一样背景,不一样教育和工做经验,不一样种族的员工,并确保他们受到欢迎。咱们经过为每位新员工指派一个伙伴达成这一目标——为他介绍周边状况,在重要的环节帮助他们,并让他们知道每周的聚会等。咱们的旧金山办公室有一项“啤酒自行车”的活动,每周五新员工会骑着自行车,驮着啤酒,为你们分发啤酒,做为一种自我介绍和促进交流的方式。咱们还会组织为期四周的训练营,天天早上资深员工会为新员工培训须要了解的知识,新员工能够选择不一样的课程。

  回想文章开篇咱们所提到的——伟大的文化从何而来?正如咱们在这儿所探讨的,文化来自于让员工的创造力茁壮成长,来自于让员工为了乐趣走到一块儿。来自于重点发展的共享价值体系,让全部人均可觉得了目标而工做,均可以开放的沟通。文化是关于透明和诚信的强化,尊重自主权及鼓励合做。文化是关于不管组织规模成长多大,都要保持全部这些不变,而且经过雇佣能够保持文化的员工来保护这种文化。文化是全部其余成长的基石——因此,确保你的组织有一个强健的文

相关文章
相关标签/搜索