建立成功的编程文化






4.67/5 (2投票s)
《
作者:Mickey W. Mantle,Ron Lichty 由 Addison-Wesley Professional 出版 ISBN-10: 0-321-82203-X ISBN-13: 978-0-321-82203-1 |
本文摘自Mickey W. Mantle和Ron Lichty所著《管理难以管理之人——管理软件人员和团队的规则、工具和见解》一书的第八章。第八章——以及本文摘录——侧重于为您的团队建立成功的编程文化。
作为一名优秀管理者,您职责中一个重要且关键的要素是创建并培养成功的编程文化。对我们大多数人来说,这种文化支持并鼓励团队按时、按预算交付高质量软件,并且开发人员长期以来都为此感到自豪和满意。
但是,即使您遵循了我们前面第一至第七章的所有建议,管理也并非易事。您的程序员并不总是理性或可预测地行事。有些人的个人生活混乱不堪。他们不总是和睦相处。他们可能直率、孤僻、易怒、狂躁、沉默、不耐烦、任性、粗暴……(作为前程序员,这些形容词无疑在不同时期都曾描述过我们俩!)
您的组织可能不太关心他们(当然,除非他们的非理性行为溢出到您的部门之外)。但您的组织非常关心您生产和部署符合组织目标和客户需求的软件的能力。
几乎任何一群程序员,无论他们多么功能失调,也会关心。他们关心提高生产力,构建成功的产品和服务。
至于您,您会更关心。除了想要您的开发人员所想要的,并希望达到组织的期望之外,您还希望成为一名高绩效的软件开发经理,能够超越寻常,实现卓越。
您需要帮助。您需要以某种方式为卓越创造内部和外部期望。您需要灌输信心,让您和您的团队能够交付成果。您需要一种支持您的目标和目的的文化。您还需要创造一个卓越的环境,以吸引和留住顶尖人才,并激励出色的工作。
强大的文化以仅凭个人动力无法实现的方式推动高绩效工作。
在正确的条件下,承诺、
协调、激励和变革的问题在很大程度上都迎刃而解。——吉姆·柯林斯[1]
好的,也许您需要交付的并非卓越。对于某些项目,可能是功能齐全但频繁的交付。对于另一些项目,您的利益相关者可能期望他们的产品“完美无瑕”。有些团队是为了帮助富有远见的人构思产品而组建的。其他团队是为了在产品所处的环境发生变化时保持产品运行而组建的。您可能还会发现自己有组织目标,例如培养和留住高质量的程序员。
创建和培养成功的编程文化至关重要,您需要了解“成功”对您的公司、组织、项目和团队意味着什么,以及如何衡量它。
除非您幸运地继承了它,否则您必须创建自己的成功编程文化。即使您继承了它,也要维护它,您需要培养它。无论您和您的团队正在开发打包软件、软件即服务、嵌入式软件、B2B 软件组件和服务,还是为公司员工开发内部应用程序,这些都是颠扑不破的真理。无论您是小型初创公司、大型企业、非营利组织还是政府的一部分,这些都是正确的。您的使命是交付价值。这需要管理人员和文化。
创建强大的编程文化需要建立一个有利于开发卓越质量软件的工作环境,并重视按时创建和交付目标明确、以客户为中心的软件。
- 一个尊重和公平的氛围,让您的员工保持最高的生产力。
- 一个容易培养和发展承诺与动力的环境。
- 为您的产品、项目和交付成果制定衡量标准,以便您的团队可以衡量其工作并改进其结果。
挑战在于:您如何做到这些?
所有组织——无论大小,公司、政府和非营利组织——都已拥有企业文化。了解您组织的文化对于创建您想要的文化至关重要。
如果它是一种强大、积极的文化,它可能会为您提供一个平台,您可以利用它为自己的团队创造合适的氛围。或者它可能是一种腐蚀性极强的文化,您需要将其完全隔绝,为您的团队提供一个封闭的环境,使其能够在不受干扰的情况下完成出色的工作。
要了解企业文化,请听CEO的讲话。但要对您所听到和看到的一切抱有一些怀疑态度。公司所倡导的,不总是它们的实际行为。深入探究言辞之外。安然声称其立足于“愿景和价值观的基础之上”。
即使价值观已被抛弃,聪明的开发经理也会认识到,公司随处可见的价值观,仍然可以加以利用。安然的一位优秀开发经理会围绕那里经常宣扬的“尊重、正直和沟通”这三个价值观来打造编程文化,无论它们在周围环境中如何缺失。
对于成立不到30或40年的组织,我们的经验是,其文化几乎无一例外地反映了公司创始人(们)的个人标准和核心价值观。倾听最早的员工讲述创始人如何建立和发展公司的故事。
最终,文化并非源于所倡导的言辞,而是源于通过行动传达的教训。无论您的组织声称奉行何种文化,都要观察员工、股东和客户如何被看待和对待——以及员工讲述的故事。
但即使在最好的公司里,最好的价值观也可能是一把双刃剑。Ron 在施瓦布的 Java 项目,其核心是建立和分享最佳实践,寻找和分享共同的工作方式。在一个以团队合作为核心价值观的组织中,这简直是轻而易举,对吧?让团队分享最佳实践、方法、模式甚至代码应该很容易。
但看看施瓦布的其他价值观。“奋进”加上“响应迅速”在实践中可以被解读为不懈地交付客户价值。被驱动不懈交付的开发人员往往会心无旁骛地专注于自己的工作,既不会向周围的人学习,也不会在项目结束时找到时间分享。
为了使他的Java计划成功,Ron必须利用并强调团队协作的价值,同时抵消“奋进”和“响应迅速”价值观的对抗性拉力。“我发现我可以通过结果来吸引团队的注意力。‘我们有一个选择:数百个耗时过长且不断重复相同错误的独立项目;或者培养分享文化,从重用模式和共享最佳实践中获得节省。’”
现在应该很明显,即使在最好的文化中,您也可能不得不将公司部分或全部文化隔离开来。
您知道,要取得长期成功,就需要加强架构、定期重构代码、开发回归测试、改进流程、升级硬件和软件平台,以及做无数其他能减少技术债务并让您保持竞争力的事情。米奇经常用换油的比喻来强调这一点:“制作产品有点像开车。您必须偶尔但定期地更换机油。”
然而,在某些公司,高级管理层可能除了客户驱动的项目之外,对其他一切都草草了事,并提出这样的问题:“为什么会有人在做那些不是明显客户功能的事情?”
根据经验法则,一个MBA可以抵消
五个优秀工程师的努力。——盖伊·川崎,苹果早期布道者和Garage Technology Ventures创始人
面对只重视客户价值的高级管理层,要取得成功,您需要保护那些从事幕后效率改进工作的程序员免受组织内部的轻视。他们需要来自您组织内部的鼓励、培养和赞扬。您需要将公司的文化隔离开来,代之以您自己创造的文化。
企业文化的其他元素对软件团队的成功可能更具毒性。例如,您不仅需要隔离,还需要想方设法规避那些鼓励员工之间极端竞争和不合作的文化。
在您进行文化建设时,需要了解的组织文化的最后一个要素是:哪个职能部门占据主导地位?您的公司是工程驱动型、市场营销驱动型还是销售驱动型?您的非营利组织是由其筹款还是由其使命驱动?
驱动组织发展的因素通常决定了技术在其中的作用。
最终,驱动编程组织决策的核心平衡点在于创新和对客户及市场的响应之间。
这是编程文化的一个支点,但每个组织都设定得不同。如果您的组织设定得正确,就更容易成功。如果您无法理解组织的支点设置在哪里,那么您显然不属于这里。根本问题在于您是在努力满足客户需求,还是为了技术而开发技术——仅仅因为它很酷。
初创公司早期通常是技术驱动或愿景驱动的。但到某个时候,许多(如果不是大多数)公司会转向以客户为中心。
Broderbund和Berkeley Systems公司开发的这些游戏和屏幕保护程序需要大量的创新,但这种创新几乎是像激光一样专注于支持他们游戏的娱乐价值。
对大多数组织来说,以客户为中心至关重要。当米奇听到团队中的程序员说“框架”这个词——主张团队应该构建一个框架时——他的警觉性就会提高。“这往往是为创新而创新的标志,”他说。
同样地,许多程序员都急于从头开始实现,而不是利用已编写和调试过的代码。人们常说,“程序员是唯一喜欢站在别人脚趾上而不是肩膀上的人。”
最终,无论您是继承了积极的编程文化还是创建了自己的文化,发展并保持其积极性都需要您反复做出有意识、有意的决定。
庆祝您想看到更多的事物。
——汤姆·彼得斯
此外,这意味着要塑造您正在努力创建的文化。您的团队会把您视为榜样,以您为准则,期待并希望看到您所期望的行为。可能没有比“言教不如身教”和“行动胜于言语”这些格言更强有力的例证了。
我们都认识一些经理,他们让编程团队相互竞争,认为正是这种争斗激励程序员发挥最佳水平。我们认为这些经理不属于软件开发组织。他们中的一些人来自销售部门。销售是一项个人运动。它充满了竞争,销售人员既要与销售额指标竞争,也要相互竞争。
另一方面,作为一名顶尖工程师的奖励,很少是夏威夷之旅,或与高级管理层一起打高尔夫。事实上,奖励竞争性表现,无论是那种丰厚的奖励还是更微妙的奖励,几乎总是不恰当且适得其反的。软件工程是一项团队运动。聪明的工程经理会确保他们的顶尖人才感到满意,但会将丰厚奖励留给整个团队,例如,让整个团队进行旅行和异地活动,作为从艰苦开发中解脱出来的受欢迎的休息。
Ron 帮助富士通内部的一家初创公司扭转了局面,该公司产品交付延期数月。这项工作的基础是一种以少数高级程序员为主导的文化,他们愿意成为英雄,但也期望得到英雄般的待遇。Ron 通过设定工作和奖励共享的期望,将不和睦的团队打造成一个整体。团队必须共同完成公司新的激进截止日期,否则无人能受益。“我到任时,这个团队从未按时完成过任务。但通过共同努力,他们不仅按时完成,甚至还提前完成了。”
在编程领域,引导团队达到最高绩效水平需要创建鼓励相互尊重、创新、遵循标准、期望交付和卓越、高水平沟通、公平、赋权、专业精神、团队合作、热情、以客户为中心和技术卓越的文化。
[1] 吉姆·柯林斯,《从优秀到卓越》(HarperCollins,2001),第11页。
本文改编自Mickey Mantle和Ron Lichty合著的《管理难以管理之人:管理软件人员和团队的规则、工具和见解》一书,由Pearson/Addison-Wesley Professional于2012年9月出版,ISBN 032182203X,版权所有© 2013 Pearson Education, Inc.。欲了解更多信息,请访问www.informit.com/title/032182203X 或 managingtheunmanageable.net"