分类: IT业界
2006-07-31 16:47:31
原帖链接:!584.entry
优秀数据库工程师评选,赛迪网络采访
1、你认为国内数据库应用水平与人才状况如何?
目前国内数据库应用水平相对国外来讲,差距还比较大。除了一些对性能要求严格的规模比较大的公司外,其他大部分公司还处于一个很初级的阶段,数据库对他们来讲就是一个简单的存取数据的系统,开发人员也大多只注重实现应用功能而不考虑性能。
当然这是大环境所决定的,非常多的小型软件公司仅仅是因一两个项目而起家,根本无力去考虑可持续发展,自然也不会考虑软件将来能支持更多的用户、更大的规模,能满足当前的需求、通过客户的验收是他们唯一的目的。当然甚至有一些同时负责客户系统软件和硬件完整解决方案的公司,在有能力设计更好的数据库应用的条件下而不愿意做更高效的软件系统,选择向客户出售昂贵的硬件。当然这种现实存在的前提,就是客户对数据库应用根本不了解。本来做数据库应用的调整,可能只需要几万块钱的成本,结果购买硬件却花费了数百万元。
这种现象在国内目前还不少,反映出来的就是客户整体数据库应用水平太低,甚至连基本的概念也没有,所以会花很多冤枉钱。而作为应用系统提供商的设计和开发者,往往因为做的软件系统不好却被顺水推舟靠硬件来扩展应用规模。
互联网极大地推进了技术的整体提升速度,让人与人之间能更方便地共享经验,并且知识和经验迅速积累,为后来者提供了良好的学习环境。但由于大环境的急功近利的特性,能潜心研究数据库应用的人在相对数量上也不多。
在2001年左右,数据库应用基本处于起步阶段,那时候大家都停留在简单的概念的理解和探讨水平,对于数据库应用开发也非常的简单。在2002年之后数据库的研究在一些专业论坛逐步火了起来,如itpub等,这个时期一批新人迅速崛起,成为了国内数据库专业论坛的骨干力量,在2004年左右开始到现在这批人基本代表了国内数据库管理和应用的顶尖水平。根据目前的情况分析,大约有0.1%的人是真正的数据库专家,10%左右的人能设计和开发关键应用,或者管理维护关键数据库。大约20%的人能满足一般应用的设计和维护要求,其他人基本只能做简单的开发和简单维护。当然这只是我的一个感性的认识,不是严格调查的数据。
2、结合你的工作与项目经历,请谈谈数据库工程师在应用上面对的难点。
数据库工程师在应用上的技术难点,最重要的在于如何预测系统上线后能满足性能要求,并且系统的表现确实跟自己的期望一致。要实现这些目标,专业上的知识可以通过一系列的学习和培训来达到,经验可以通过不断的项目来积累,相对来说还不是最困难的,我要说的难点却是非技术的角度。
一个人或许具备丰富的数据库设计和开发经验,也具备丰富的数据库管理知识,但是,却未必算的上优秀的数据库工程师。这个问题的关键在于,需要和应用打交道的数据库工程师,除了具备专业素质外,必须具备良好的沟通能力、亲和力,还要知道正确的做事情的方法。
这个现象,在我工作的过程中,体会非常深刻。曾经有一个同事,专业知识很不错,工作也很严谨、认真,但就是沟通欠佳。他所负责维护的数据库,由于比较频繁地发布新应用,而他因为沟通方面的问题,总是难以让应用设计和开发者认真考虑他的意见,由于各方面原因,性能测试方面做的不够充分,数据库总容易出现性能问题。为此他面临了很大的压力,虽然我也尝试跟他沟通,引导他正确地跟开发设计人员沟通,但是他自己总是难以迈出去。结果后来他辞去这份工作,去了一个应用稳定(不发布新应用)的地方,专职管理数据库。
在沟通这个环节,往往是工程师的弱项。如何有效地表达自己的想法,获得对方的认同,并在实际行动上给予自己支持,除了沟通能力外,还需要一项能力,那就是找准做事情的方法。比如,有时候项目紧张,我为了实现自己的目标,会在为开发人员着想的基础上,设计出一个对他来说代价很低的解决方案,并让他明白我除了为系统性能考虑外,还为他的工作量考虑。在获得开发人员的理解和支持的情况下,还要知会对方的直接主管,告诉该主管开发人员支持我的工作,为系统的性能提升做了积极有效的工作。在系统上线后,根据系统的良好表现,做出报告,感谢相关人员的支持,让他们感受到自己的工作是卓有成效的。有了成就感,他们以后才能更好地支持我的工作。
我们很多工程师跟机器打交道或许游刃有余,但是跟人打交道就显得笨拙。所以一个数据库工程师最大的难点,就在于如何有效地发挥你的影响力,不局限于你所管理的数据库,而在于带动更多的开发团队成员,将潜在的性能问题消灭在摇篮中,这样对于数据库的管理和维护,你才能更轻松。
3、要解决这些应用难点,工程师的个人经验能起到哪些作用?数据库技术发展能起到什么作用?
要解决这些难点,当然这不是具体的某个应用难点,而是属于上上之策的一种工作方式,将自己的影响力扩大,在设计和开发阶段就影响项目,避免系统上线后面临性能问题而增加解决问题的困难程度。
要做到这一点,工程师个人的经验自然必不可少。因为要在应用的设计和开发阶段制定良好的规划,必须有大量的项目经验和深厚的数据库功底,否则一个方案自己都没有底,又如何让别人信服呢?如果自己的建议得到实施后起到了良好的作用,能增进其他成员对自己的信任感,从而逐步加强这种信任的合作关系。这样就形成一个良性循环。当然这说起来简单,实际上却是一个漫长的过程。现在很多人都具有自己的个性,一开始总是很难获得别人的信服的。处理好开发环节后,在测试过程中,数据库工程师根据自己的经验,和测试人员一起搭建合理的模拟测试环境来预测上线后的表现。
数据库技术的发展,自然也能让解决方案变的简单,减少大家的工作量,使得合作更容易。比如sql优化器更加智能,选择执行计划更准确,那么就可以让我们减少在sql tuning上消耗的时间而更专注于schema设计上。
4、您认为“2006年中国首届杰出数据库工程师评选”活动的意义?
对于“2006年中国首届杰出数据库工程师评选”活动,我认为其具有非常积极的意义。一方面让更多的人认识到数据库工程师的价值,让一些做着数据库应用但还没有专业数据库工程师的公司能意识到他们团队中还缺少了一种重要的工程师。另一方面,扩大了数据库这个专业的影响力,通过评选的标准,也给广大数据库工程师指明一个正确的方向。
评选活动结束后,在这个行业中树立了标杆,将可能对整体数据库研究水平的提高起到推动作用。其间,也许产生少量狂热爱好者进行数据库开发的研究。因为我已经知道有一些人,有这个想法,希望尝试开源数据库的研究。但由于大环境的因素,他们还没有寻找到足够的伙伴和支持。这需要我们去培育这个环境,让更多的人以数据库为职业,提升整体的数据库应用水平,也催生更多的数据库研究者。