我儿时的两个大梦想是成为一名消防员或太空探险家。虽然我没有为这两个梦想做任何事情,但我通过在加州消防局运行的防火计划中做志愿者实现了前者,而对于后者,我阅读了所有关于太空材料的资料,包括小说和非小说类。我最近拿起克里斯哈德菲尔德上校写的一本关于宇航员生活的书,宇航员地球生命指南,并在我的亚洲国际旅行中阅读了它。除了狂热阅读(我强烈推荐)之外,它也是我如何做好自己的工作的源源不断的灵感,同时建议内部开发人员和三星作为一个整体在开源工作中做得更好。成为“零”在本书的第9章中,哈德菲尔德写道:“无论如何……麻烦的人;或者,‘零’:留下中立印象并且不破坏平衡的人;或者,‘积极’:增加价值的人。当然,每个人都想成为“积极的”,一个有价值的人......但是首先声称自己是“积极的”几乎宣布你是“消极的”,无论是什么技术[或你带来的价值,或者你的实际表现如何。”虽然这听起来有点失败主义的味道,但实际上,这与个人或企业在开源中的工作方式息息相关。当我考虑其他事情时,这引起了我的共鸣,我记录了我与社区的互动,包括我最近在我的博客上发表的声明:“谦虚,但自信。”当我考虑哈德菲尔德的话时,是的,我很清楚他在谈论同一件事。当你是任何开源社区的一员时,你自然希望成为“积极的”(创造价值的人),但你需要尽可能“零”(中间人)——不要打破平衡——尤其是在互动的时候。这适用于个人开源开发人员,但更适用于代表公司工作的人员。没有什么比从一开始进入开源社区就试图成为“积极的”(创造价值的人)更容易让开源社区忽视你,或者最坏的情况。这是否意味着你应该退居幕后,停止公开表达你的观点?当然不是,这里有一些你可以参考的指导原则,帮助你达到“积极”(创造价值的人)的状态。做功课在决定参与开源项目之前,做功课或研究没有替代方法或捷径。除此之外,您还需要知道如何与社区(邮件列表、论坛、Internet中继聊天(IRC))进行交流。还知道如何提出您的想法(错误跟踪器或邮件列表)并进行讨论。此外,它有助于理解社区是如何治理的——它是一个层次化的管理者/子管理者(如Linux内核),还是或多或少的扁平结构(如Debian项目)?了解这些可以帮助您确定项目中的关键领导者和影响者,这将有助于您开始提出变更或新想法。***,了解开发流程很关键——一个错误或新功能在进入主线之前经历了多少个阶段?某些方面是否比其他方面更具争议性?当您修复错误或提出并实施新功能时,所有这些研究都会对您有所帮助。做肮脏的工作在解释如何***进入国际空间站时,哈德菲尔德写道:“为全新环境做出贡献的***方式不是试图证明你有多棒。而是通过施加中立影响。首先观察环境中已有人的行为并向他们学习,并在适当的时候做繁重的工作。”开源项目就像在空间站上,有无数的任务要做以下内容:文档测试/QA错误修复/调查分类UI/UX社区管理/沟通经常参与其中一项任务,您将获得以前没有的专业知识和项目知识。随着时间的推移,您还将证明其他社区成员,你是值得信赖的,可以承担更多的责任。每个人近年来有很多评论说开源项目是“危险的工作场所”,因为邮件列表、IRC等上的刻薄程度很高.无论如何,就像我告诉三星(以及我曾工作或咨询过的其他公司),“永远不要失去你的专业精神(包括在开源项目中)”对别人给你的东西持开放态度(即使对方的表达方式不合适),然后重构你的代码,采纳别人的建议,或者在邮件列表上注释问题等等,对于在开源环境中提高工作效率非常重要。没有地域差异的文化交流也起到了重要的促进作用。请记住,与参与项目的开发人员的所有个人沟通同样重要。哈德菲尔德[第一位进入太空的加拿大宇航员]讲了一个宇航员的故事,宇航员与其他人一起工作感觉不舒服,或者对医疗队或其他支持团队的态度很差,他们在基本水平上不合格。也许你在你的领域是一个非常聪明的开发人员,但除非你能很好地沟通并尊重每个人,否则从长远来看,你不太可能在开源社区中取得成功。综上所述,所有这些要点都指向一个事实:了解您的环境。哈德菲尔德优美地总结道:“当你有一些技能,但不完全了解你的环境时,你就无法再前进了。即使在最坏的情况下,你仍然被困在原地。但留在原地也不错”你没有足够的能力解决问题,这可能会让其他人工作得更好。你必须有能力解决那些问题,在这之前,你应该先做其他事情。“最重要的是记得分享他的经验与(生死攸关的)解决方案,它是通过努力工作诞生的。同时,开源项目工作的有效性是无法比拟的。他分享的经验是关于在255英里的高空生活和工作是不同民族之间合作的结果,也适用于开源社区成员之间的信任建立。
