构建开放的软件团队文化

jopen 13年前
     <p> <strong>文 / 许正华</strong></p>    <p> <strong>伴随着软件开发敏捷化趋势的发展,“以人为本”的软件团队建设理念越来越得到广泛的重视,但在这方面的研究、探讨与实践则显得乏善可陈,现在是到了个体、团队、组织甚至是社会力量一起行动起来的时候了。</strong></p>    <p> 构建开放的软件团队文化绝不仅仅是搞几次技术交流和设计讨论那么简单,它是一项长期的系统工程。开放的软件团队意味着什么?个人与团队应该如何行动?作为团队的管理者以及团队成员都应该认真思考这些问题。</p>    <p> <strong>一个程序员的文化观</strong></p>    <p> <strong>文化的自然属性</strong></p>    <p> “文化”总给人一种高高在上的感觉,这多少是受到狭义文化定义的影响,即文化是人类所创造的语言、文学、艺术及一切意识形态在内的精神产品。在中国古籍中,“文”既指文字、文章、文采,又指礼乐制度、法律条文等;“化”是“教化”、“教行”的意思。</p>    <p> 文化是可以培育、教化出来的吗?我们可以从文化的产生与传承略加分析。一种文化的产生必定源自人类内在与外在的需求,其传承少不了培育与教化的功劳,但也要遵循事物发展的客观规律。因此,我认为一个有生命力的文化必须是顺应自然的。今天,我们的很多传统文化面临着生存的危机或者被边缘化,主要原因就是那些原本支撑它们的内外需求已不复存在,这些文化必然会被历史所淘汰,只是个时间问题。</p>    <p> <strong>文化的封闭属性</strong></p>    <p> 构建开放的团队文化是一项艰巨的历史工程。很多人可能没有意识到“开放”与“文化”是一对矛盾体,因为文化从本质上有着封闭的属性。弱势的文化想尽各种方法避免被强大的文化所同化或吞并;强势的文化则希望尽可能地扩展以获得更大的利益。从这个角度讲,人与人之间的战争、组织之间的吞并都是文化现象,是人类文化的一部分。</p>    <p> <strong>人—文化的综合体</strong></p>    <p> 我们讨论文化一般都以群体组织为背景,其实每个自然人都是一个复杂的文化综合体,包含语言、艺术、科学、信仰甚至宗教等多种因素。这个文化综合体也没有超越前面讲的两个属性。</p>    <p> 首先,我们绝大多数人都在相似的教育制度里接受着同质化的教化,但最终在文化上的表现却千差万别,这说明个体文化是一种自助餐式的文化:餐厅能够提供什么样的食物可供选择决定了我们可以吃到什么,但最终吃到肚子里去的却是我们自己选择的结果。</p>    <p> 其次,每一个独立的个体都难以逃脱封闭的趋向性,只是程度不同罢了。这种趋向随着年龄的增长或者知识与经验的增多,得到不断的增强。一个典型的例子就是,人年纪越大其生活习惯越难以改变。我就曾经出于健康的原因试图劝说父母在某些生活细节上做出适当的调整,但最终都以失败而告终。最后,当我意识到这可能与文化封闭性有关时,也就不再做这种无用功了。</p>    <p> <strong>什么是开放的文化</strong></p>    <p> 开放的文化是一种文化表象,其实质与民主、自由、平等、容忍等人生理念与社会理念有关。谈到民主与自由就不得不提及胡适,这位中国新文化运动的领军人物。下面两段引文虽然是在讨论民主,实际为我们勾勒出了一幅以“开放”命名的画卷。</p>    <p> <em>引文1:“胡适所说的个人主义的精义,可以概括为‘独立自主,参与奋斗’八个字。民主的生活方式,就个人来说,是独立的、是有充分个人自由的;但就整体来说,是参与的,是有一个共同理想的。独立而不参与固然无法达成这个理想,参与而不独立,也会失掉个人的价值。在民主的生活方式中,中国人所最需要的是参与而不党同,独立而不避世的精神。”(《少不读鲁迅,老不读胡适》)</em></p>    <p> <em>引文2:“民主的生活方式,在政治制度上的表现,好像是少数服从多数,其实它的最精彩的一点是多数不抹杀少数,不敢不尊重少数,更不敢压迫少数,毁灭少数。”(《胡适手稿》)</em></p>    <p> 胡适的声音今天听起来仍散发着无尽的光芒。在一个开放的组织中人人应该是平等的,至少在精神层面。我很难给开放的文化下一个简单的定义,但至少可以从两个方面来甄别“真开放”与“假开放”——自主性与双向性。在一个真正开放的组织中,信息的交流是多样、自由的。任何屈服于权力的开放都不能持久,也不能深入。在一个真正开放的组织中,信息的交流是双向的。一位站在讲台前滔滔不绝的演讲者与坐在台下虔诚的听众都不是开放文化的代表。</p>    <p> <strong>开放文化的一个核心与三个方面</strong></p>    <p> 两种或者多种文化间的开放是建立在共同利益基础上的。如果我们把团队看作是一种文化共同体,那么建立开放的团队文化的核心就是确立共同的利益。</p>    <p> 对于任何一个组织,“人/过程/产品”都是三个紧密相关的组成要素。接下来,我们将探讨开放的文化与三者间的关系。</p>    <p> <strong>人的因素</strong></p>    <p> 一个文化在其形成及发展的初期是比较开放的,因为它要从外界吸收充足的营养。随着它的逐渐成熟,其封闭性就表现得越来越充分。对个人而言,也遵循这样的普遍规律。不同的是,人的成熟更多地受主观意念所左右。现实中很多博学的人,仍可以保持旺盛的求知欲,来支撑其个体文化的不断发展。</p>    <p> 我们习惯于将一个人的性格打上“内向”或“外向”的标签,那么开放的团队文化是否要我们更加外向吗?如果真是这样,开放的团队文化将变得可望而不可及。一个渴望学习的人最容易做到开放——这里所说的开放并不只是针对人,也是针对一切有用的知识。因此,构建开放的团队文化最终转化为了建立学习型的组织。</p>    <p> 虽然构建学习型组织仍然是一个具有挑战性的任务,但至少已不是一个陌生的话题,本文对此只做一点分析:持久学习的动力来自于一种高尚的理想。<strong><em>我们不能只满足于完成自己所能的事情,而要致力于完成自己所希望的事情。</em></strong></p>    <p> <strong>过程因素</strong></p>    <p> 也许很多程序员会质问我为何要将过程硬扯进来,它与开放的团队文化何干?我可以理解程序员多少对各种软件开发过程抱有一些敌意,因为他们把很多问题都归结于过程的错。这多少与团队缺乏对过程统一的理解有关。过程本应成为程序员的伙伴,而不是绊脚石。</p>    <p> 过程的建立与实施是有成本的,但同时也是有收益的。我们不仅要仔细规划团队在每一个过程上面的投入,也要评估相应的产出。这种评估并不容易,因为缺乏一种简单而一致的标准。</p>    <p> 统一的过程是团队沟通的平台,是开放的催化剂,是建立开放团队文化的重要基石。</p>    <p> <strong>产品因素</strong></p>    <p> 建立一个完善的产品知识库是构建开放的软件团队文化的重要保障。试想,如果对产品知识的掌握上水平相差悬殊,团队成员便很难开展有效的沟通与合作。在我看来,没有哪个高技术工作在产品知识库上遇到像软件开发一样大的挑战。缺乏足够有效的技术文档是大多数软件开发团队所面临的实际情况。</p>    <p> <strong>结束语</strong></p>    <p> 建立利益共同体是开放团队文化的核心。激励团队建立学习的习惯、持续地改进过程、建立完善产品的知识库是具体的方法与工具。</p>    <p> 尽管本文内容并不可以直接用来解决具体的问题,但希望能够对探究此问题的本质多少有所帮助。在采取行动前,理清概念、定义问题、分析本源总是大有裨益的。</p>    <p> <strong>作者许正华,目前就职于 CA Technologies 中国技术中心,从事数据备份和高可用企业软件方面的开发和研究,并专注于软件工程、知识工程、团队文化等领域的研究与实践。</strong><br /> <br /> 来自: <a id="link_source2" href="/misc/goto?guid=4958201174729082562" target="_blank">www.programmer.com.cn</a></p>