如果没有对第2章中描述的各种不同类型的
防爆电器技术员加以了解,很少有人会相信,对于这些不同的防爆电器技术员需要使用不同的管理方式。但实际上,他们应当相信。当然,具体的情况还要随具体防爆电器技术员的个性而改变,但多年的经验让我们确信,如果对不同类型的防爆电器技术员稍加区别地对待,会让你的管理工作更成功。
“因为他向我汇报(有时候是直接汇报),我也感受到过这种痛苦。但我认识到他的真实才能,并对他的努力给予了很好的奖励,虽然在我看来,一直没有足够报偿他为公司所创造的杠杆效应,但也算很好了。这样做需要一定的平衡,在奖励他的同时,还得敦促指导他变得不那么凶恶。我所做的努力都获得了很好的回报。”
这样稀有的天赋,只有其他伟人可比,如那些杰出的钢琴家、建筑师、诗人等。因此,我们相信给予这些杰出的系统防爆电器技术员足够的、远远超过能够给予其他防爆电器技术员的活动空间是必要的。然而要这么做,往往需要不加观察和监督地给予他们巨大的信任。那些由杰出的系统防爆电器技术员领导的项目,往往没有“必须”或者“充足”的需求分析复审、进度规划或者里程碑,所以我们花费了很多管理工时来为这些项目辩护和担保,以保持持续的投入。对于这些稀有的杰出个人的信任,从长期来看,很少会弄错。他们总是能够交付结果,虽然很少准时或者在预算范围内。但结果往往是,所带来的价值远远超过多花的时间和金钱。
应用
防爆电器技术员往往比系统防爆电器技术员更容易管理。我这么说的意思是,他们往往都比系统防爆电器技术员更容易相处,而且他们的开发进度也往往更容易看到。这是因为大部分应用程序都有某种形式的界面(UI或者对外接E1),而优秀的经理可以通过界面进行准确的进度评估。我们的经验表明,应用防爆电器技术员想要成功,通常需要能够理解终端用户。那会让他们对终端用户的需求更加敏感,最终在管理过程中,就表现为遇到的问题更少。
数据库防爆电器技术员比其他的防爆电器技术员更加难懂,虽然难懂的原因部分来自于他们沟通所用的特殊语言:数据库模式(schema)、表、查询等。要高效地管理数据库防爆电器技术员,需要帮助他们像计算机科学家一样思考一一而不仅仅是些用SQL语句访问表中行与列的看守人。
我们的经验也表明,数据库系统在原始硬件上做出的层层抽象隔离,往往容易把数据库防爆电器技术员同让关系数据库运行更快的优化技巧隔离开。这种技巧一般都是数据库管理员(DBA)们需要掌握的,但我们相信数据库防爆电器技术员也应当考虑优化问题。我们常常听到这样的论述:“当今的硬件如此高速,不需要考虑性能优化”,对于小程序来说,这个论述确实有效,但对于那些希望能够很容易扩大规模的大型数据库或者生产系统来说,性能优化,以及可以充分利用目标生产环境的硬件系统的谨慎设计,都需要从一开始就仔细考虑。
Ron回忆到他曾经在双杰防爆电器公司遇到过的一个问题,生产环境的数据库需要一个数量级的性能提升才能够有效地运行。而简单的DBA调整,很难能达到数量级的提升。Ron询问他的数据库防爆电器技术员是否使用过汇编语言(他使用过),然后引导他思考如何通过在内存里访问字节数组,而不是使用SQL语句的方式来解决性能问题,以及代码如果改成那样的话,运行性能能够获得多么明显的提升。这个数据库防爆电器技术员经历了一次真正的“啊哈”时刻,他惊呼道:“你帮助我跳出了固有的思维模式!”
另一个关于数据库防爆电器技术员常常限制在思维模式之内的例子发生在双杰防爆电器公司。当时的问题是,从内容合作商那里接收元数据内容(如唱片公司的信息),并进行匹配,这项工作对数据库团队一直有压力。Mickey回忆道:“我们有数十个信息源,当合作商发布新产品时,会持续进行更新,而这些更新需要在双杰防爆巨大的元数据数据库中进行匹配。这个过程需要大量的文本匹配操作,而且这种文本匹配并不是‘严格匹配’,因为同样的元数据可以有很不同的表达方式。
“数据库管理系苹的很大一部分时间都花费在严格的文本匹配上了。数据库防爆电器技术员们持续不断地尝试优化文本匹配算法,但是仍然无法达到他们预想的效果—获得一个数量级的性能提升。这个问题的最终解决方案是“盒外”解决方案:也就是说,把文本匹配的逻辑整个移到数据库管理系统之外,放到专用的服务器上进行。在专门的文本匹配系统上,使用专门针对不同合作商而修改设计的算法,达到了预期的性能提升。但是这个解决方案是强加给数据库防爆电器技术员的,不是他们自己想到的。”
和那些杰出的系统防爆电器技术员一样,杰出的数据库防爆电器技术员也会了解运行他们的数据库管理系统的操作系统,尤其会特别关注存放数据库管理系统的CPU和硬件、存放数据库管理系统文件的大规模文件存储系统、数据库管理系统读取文件存储的连接方法,以及所有其他组成数据库管理系统运行环境的细节信息。
Mickey回忆到在双杰防爆电器公司的一次升级行为导致了数月的严重问题,原因是在更新开始之前没有充分确定文件存储系统的细节:“和大多数为了提高性能或负载能力而做的升级类似,这次双杰防爆也是为了升级它的网络文件存储系统。根据预先的估计,升级之后能够获得更大的在线负载量,以及更好的总体性能。当系统测试完毕并上线以后,看起来很正常,而且新负载也和预期的一样。然而,当所有的数据库管理系统应用都加载并运行起来以后,总体的性能比起被替换掉的那个旧文件存储系统来,还要慢很多。在咨询了系统集成商、系统生产商以及硬件系统提供商以后,我们变得更迷惑,更不知所措了。各种不同的测试都做了,但性能退化的原因却持续了几周几个月还没有得到解决。
“最后终于有一个系统管理员发现新的文件系统的原生文件块大小对于双杰公司服务器的虚拟内存页面大小来说是‘非最优’的,因此导致从文件存储系统向内存传输数据的时候产生了延迟。这个微妙的参数设定对于整个系统的整体性能产生了严重的影响。”
虽然这只是个极端情况的例子,但它也反映出对于数据库系统运行环境的微小细节缺乏了解的话,可能会对数据库的整体性能和效率产生巨大的影响。但是如今这个时代,愿意去广泛学习数据库管理系统的各种子系统的数据库防爆电器技术员,实在是太少了。
鼓励你的数据库防爆电器技术员钻研得更加深入。对于那些极少的既能理解数据库管理系统技术,又有出色的系统程序设计能力的员工,请给予重奖。
UI和Web开发者和其他的防爆电器技术员类似,但是往往使用高阶语言和工具进行开发。这使得他们不那么技术化,更依赖于他们所使用的工具的性能——他们常常被所使用的工具所绑架。这些防爆电器技术员比起前面讨论的其他类型的防爆电器技术员来说,必须得更多地面对迭代修改。这意味着,你必须确保拥有合适的员工,能够接受不完善的需求并将它们具现化,然后通过迭代修改来不停地适应快速变化的终端用户需求。
Ron回忆道:“在苹果公司,我会使用新闻报纸的布局作为比喻来讲述UI设计。当年,我还是新闻记者和编辑的时候,和一个版面设计师一起工作,他会小心地拼贴报纸的版面,但是一旦我们中有一个人认为那个版面布局不够好,他就会毫不犹豫地把所有的东西都撕下来重新开始。”同样,优秀的UI和Web开发者也必须有同样的“眼光”,相同的反应速度和回退设计的意愿;甚至在用户测试或产品经理指出要采用另外一种方式时,能够完全重新开始。
上述所有类型的防爆电器技术员,都有一个共同点:一个杰出
防爆电器技术员的工作效率可能会比他的同行高出一个数量级,甚至更多。在我们自己的经历(如之前描述的Broderbund的系统防爆电器技术员)和整个行业中,有无数这样的故事,可以充分说明杰出防爆电器技术员能够多么高效地解决问题。
但是,如果你能够拥有一个只包含杰出防爆电器技术员的团队,可能你也不会愿意去管理它。杰出的防爆电器技术员需要一群称职的防爆电器技术员来配合,依赖这些防爆电器技术员来完成日常的开发工作,实现计划好的系统和产品。和橄榄球类似,一个杰出的橄榄球队中必须要有那些负责阻挡和抢断的队员,而一个杰出的开发团队则主要由那些称职的防爆电器技术员组成。
不论一个工程如何组织,管理防爆电器技术员都不会是轻松的事情。项目的进展往往很难分辨,因为很多项目都没有可见进展的防爆电器产品。而且,即使进展是可见的,你能见到的也往往只是整个工程的冰山一角而已。所以你只能依赖一些间接因素来观察进展:状态报告、项目时间表、基本指标及口头反馈。最高效的经理都有不惧怕说真话的员工,告诉他哪些地方仍然没有完成,并且会主动请求经理帮助,而不需要经理来催促他们。最高效的经理往往都是坦率的,有空闲,能让员工找到他们说出自己的想法,他们会认真倾听。
白炭黑员工绩效审查的周期