天天看点

从全栈工程师到全栈管理师——全栈管理师诞生记

       近年来,全栈这个概念似乎在IT圈子里面被炒得火热,耳濡目染之后,自己也就慢慢的开始关注全栈这个新鲜的事物。记得早些时候,流行的是一些Web栈、移动栈、服务栈、技术栈等等这些概念。慢慢的,这些纷繁复杂的栈似乎逐渐被全栈(Full Stack)所统一了,也算是给这些栈综合起来取了个全栈的名称吧。

       全栈这个概念,本身是好的。IT这个行业,历来都是各种技术层出不穷,似乎不管自己怎么用心,怎么努力,也总是有无数学不完的新技术如雨后春笋般,在不知不觉中冒出来。学习钻研新技术,是新老IT人日常必须完成的一项工作,这就好比逆水行舟,你不去学习新的技术,那注定是要慢慢被IT界所淘汰的。但是不是新技术学习得越多,对自己的职业发展、对公司项目的帮助就会更大呢,我觉得站在一个管理者的角度来看的话,这个是非常值得商榷的。资深的IT工程师和IT项目管理师都应该知道,新技术对研发团队和IT产品质量来说,不一定就是好的。研发团队长期以往形成的研发风格,研发模式,往往决定了IT产品质量的好坏。

       全栈的延伸,或者说是全栈在现实中的具体职位,目前从国内来看,多数集中在全栈工程师这个职业上。从IT界和各种媒体对全栈工程师这个职业的宣传上来看,似乎能够胜任全栈工程师这个职位的人就是一个神,无所不能,无所不知。搞得好像企业只要找到一个好的全栈工程师,那就可以前途似锦,只要靠着这个人,就可以让企业走向光明。我们仔细想想,就会觉得这似乎很好笑。特别是从管理者的角度来思考一下,就会觉得这就是一个幻想,一个不切实际的笑话。

       从我个人的角度来看,我比较偏重于项目管理,似乎中国人天生就不太喜欢管理,不是有这么一句话嘛:一个中国人是条龙,十个中国人是条虫。管理和中国人似乎总是格格不入,这也可能是受到社会制度、社会环境和政治结构的影响。回到IT这个领域来看,其实IT项目更需要好的管理,来使其顺利的流转完自己的生命周期。这也是我提出全栈管理师这个概念的初衷,我仔细的搜索了一下互联网,不管是百度还是谷歌,都没有查找到有关全栈管理师的描述,可见我们国家是多么的不重视管理。从欧美国家来看,IT工程管理一直都处于很重要的位置。翻翻欧美国家IT图书馆的书籍,IT管理类的图书一直都是占多数的,反过来看看我们国家的IT图书馆,基本上都是各种开发语言的速成书籍,所以这也是我从来不去图书馆购买IT书籍的原因吧。

       我写这篇文章的目的,就是要提出全栈管理师这个概念,希望能够呼吁国内的IT研发一定要重视管理,否则只注重眼前利益,鼠目寸光,这样只会让IT研发陷入无可自拔的焦油坑。为了证明现在国内还没有全栈管理师这个概念,亦或是国内现在还不够重视全栈工程管理,我特从百度和谷歌的查询结果中,选取了2个截图。

       这是百度的关于全栈管理师查询结果的截图。

从全栈工程师到全栈管理师——全栈管理师诞生记

       这是谷歌的关于全栈管理师查询结果的截图。

从全栈工程师到全栈管理师——全栈管理师诞生记

       全栈工程师就好比一个很重的前端,很难维护,很难持续开发,而且运行效率还很低,占用资源空间还比较大。也许有人会问,为什么会占用资源空间大呢,毕竟全栈工程师只是一个人。其实,只要参与过大型的IT项目,就能够明白这一点。一个大型的IT项目中,一定是分成多个模块并行推进的。可想而知,如果只是一个全栈工程师来负责这个项目的研发,那是不可能会有并行这个概念的,即使是这个全栈工程师带着几个人,形成一个小团队来弄,那也很可能会受限于全栈工程师这个单点的精力和经验的限制,使项目的并行程度较低。所以,大型IT项目,如果只能一个部分一个部分按顺序来弄的话,那资源的占用肯定是不可能有并行的情况下要好的。而且,一旦在IT项目中出现对某一个人的依赖程度较高的话,那项目的推进必然会受到这个单点的影响,比如说,生病、请假、辞职等等,都会对项目造成很大的影响。所以,IT项目的管理,特别是人的管理,一定要能够解耦,降低项目对人员的耦合程度,也就是让项目对某个人的这个单点的依赖程度降低。这样,就不会因为这个单点出现问题,而让项目陷入危局当中了。最好是能够让IT项目形成好的人员管理,使IT项目的人员能够达到即插即用的程度,那这样的项目,抗风险能力和研发效率就会很高了。

       我们再来说说沟通管理,只有一个全栈工程师的项目,沟通就一定简单高效吗?我觉得根本不可能,这个只要反问一句,一个人能够精通整个IT项目所需的全部技能吗,就能知道答案了。我想任何人都不可能精通整个IT项目所需的全部技能吧,但凡是能够精通3、4个技能的人,已经算是IT领域的专家了。注意我这里说的是精通,而不是只懂皮毛而已。既然一个人不可能精通所有技术,那么这个人能够回答出整个项目所有关键环节的问题吗,我想只要有点IT项目经验常识的人,都会知道这是不可能的吧。所以这个所谓的全栈工程师,即使能够像万精油一样的进行忽悠,但也一定会让整个IT项目陷入危局当中的,到时候,这个全栈工程师怕怕屁股走人,去下家拿着高薪接着忽悠,可我们的项目就这样完蛋了,没有人能够维护,没有人能够扩展,没有人能够继续负责,从此就成为垃圾废品了。即使能够让项目修修补补的继续使用,但是估计离报废也就不远了。

       换个角度,从IT项目稳定性来看,我们都应该知道,在IT项目的技术选型和人员团队选型的过程中,稳定性都是非常重要的。我们选择的技术需要是非常稳定的,也就是Bug比较少的,而不是选择最新的技术,最新的技术必然会包含一些到现在为止尚未发现的Bug。人员团队的选择,也需要遵循这个规则,否则项目就会陷入不稳定的状态当中,这会加速项目失败的过程。全栈工程师是不可能精通所有技术的,而且全栈工程师为了完成项目,也一定是疲于奔命,很难再去估计技术的稳定性和项目团队的稳定性。那么,一个项目由全栈工程师来完成,这个项目能有稳定性可言吗。试想一下,所有模块,所有部分,包括所有的项目团队成员,都是缺乏稳定性的,那么项目后期,只可能是由救火队员背着氧气瓶到处救火了。

       综上所述,全栈工程师就是媒体或者是别有用心的人幻想出来的一个神话,除了全局性思维可以推崇一下,其他的都是一种空谈。如果我们的企业真的相信这样的神话,相信全栈工程师这样能够一个人把IT项目做好的神人,那就真的是把项目交给算命先生去搞了,成功或者失败,只能是听天由命了。所以,还是希望我们的IT企业能够老老实实的去做好项目管理,如果真的需要做全栈这样的产品项目,那么至少应该设置一个全栈管理师的职位,把项目理顺,各个环节的人员配备合理,让每个人都能发挥出自己的专长。同时,一定要注重项目前期的可研分析、系统需求分析和设计,这是项目的重中之重,一定要安排有丰富经验的系统分析师和系统架构师来完成项目前期的工作。这里还需要强调一下,全栈管理师也不是只懂管理就行的,IT领域的管理,一定要还需要懂得相应的技术才行。这和全栈工程师的区别在于,全栈管理师是从管理的视角出发,通过技术作为辅助来完成整个IT产品项目。全栈管理师是以管理为主的,也就是要让项目在各种管理手段的条件下,可控的持续推进,最终成功的完成项目。所以,全栈管理师也必须懂得技术才行,这样,管理的手段才能有效的融入到IT生命周期的各个阶段当中。比如说,绩效考核、职位晋升、团队管理、质量控制、进度控制等等,全栈管理师只有懂得相应的技术,才能对这些环节做到心中有数,才能量才使用,才能真正的让项目处于自己的掌控之中,而不至于使项目陷入混乱的危局。这就像是微软总裁比尔盖茨的一句名言:“一个管理者如果不了解其下属的工作,那他就无法有效地管理他们。”,所以,要有效的管理IT的团队,就必须了解团队成员的各项工作,这就需要全栈管理师必须要懂得技术。只有懂得技术的全栈管理师,才能更好的驾驭项目。同时,企业拥有这样的IT项目,才是可持续发展的项目,才是能够抵御风险的项目,才是能够为企业带来经济利益的项目,才能使企业走得更高、更远。

继续阅读