为团队软件开发创建通用词典.doc
为团队软件开发创建通用词典 一天我与一个同事吃午餐的时候,他给我讲了一个令人惊讶的发现。他参加了一场关于面向服务构架 (SOA)讲座,认识到以前从没有的术语定义,比如,‚授权( Enable)‛是什么意思,‚ EnterpriseNetworkBus‛又是什么意思等等。 在软件开发中我们经常使用术语,而这些术语对于不同的人具有不同的含义。本文将探究软件开发团队通用词典的必要性,同时指出创建通用词典应注意的事项。 混乱之塔 ‚上帝说:‘如果人们都说相同的语言那么他们想做的就没有达不成的。让我们下去混淆他们的语言吧,那样的话他们之间 就不能相互理解了。’‛《圣经》,新国际版, 11 章起源, 5-7 页。 人们都说同一种语言时,彼此之间都能相互了解,则能够完成几乎所有事情。如果人们更多的讲述、倾听和了解彼此彼此之间的语言,则不会在愚蠢的错误和误解上浪费很多时间。 大多数人都有这样的经历:我们为别人指出了去某个地方的方向,但是那人最后又折回来了,因为我们所给出的方向不容易被接受。或者我们接受别人的指导后,我们所做的与指导人所期盼的情况完全是两码事。 这让人非常恼火,而且对于软件开发这是要付出代价的。一般预计项目 40%的预算被返工所消耗 。想象一下这么多返工并不是因为技术而仅仅因为交流障碍,那么可以看出通过更好的交流减少返工从而提高团队的效率的潜力是多么巨大。 开发一种通用语言是减少返工的基础,它可以使交流更清晰更明了。虽然不很完美,但是这样可以大大提高在交流中完全理解别人意思的可能性。 现有词汇再学习 与开发者构建共同经验和在确信已经知道的事情上形成共同理解的基础上,发展自己的词典是满足词汇学习要求的一个大挑战。你可能知道别人的意思但是实际上你对事情的理解与别人稍稍有些不同。 举个例子,当我说‚猫‛的时候,你可能认为我是在 谈论那只名叫‚ Fluffy‛的你将它当作孩子的白色波斯猫。或者你可能认为是你今天买的那只带斑纹的猫。而实际上我讲的是最近看到的那只孟加拉虎。我应该指出我所讲的是一只‚大猫‛吗?也许应该。但是这还不够详细而准确。有可能我讲的是美洲豹、狮子或者老虎。 需要指出的一点是我们有共同的词汇但是我们对这些词汇的定义每个人都稍微有些不同。诀窍是让团队中所有人对词汇的定义尽可能趋于一致,使用这样的词汇则很容易让团队中的人员了解其精确意义。 一个有效的方法是找例文。