适用范围
由于这篇文章是只针对商业智能行业中专门给非互联网企业做数据服务的技术人员(后称BI人)提出的,所以需要说明一下针对的这个人群的特征:
首先,必须是给企业服务,这里的企业是狭义的,只指代非互联网公司。他们的项目有一定的特征,就是必须得购买商业智能工具和使用收费的数据库。
其次,必须是做技术的人员,偏向业务的分析人员和管理层都不在此文讨论的范围。
个人背景
如若我要跟大家讨论BI(商业智能)的事情,那我必须先简短说明一下我自己的背景。
在2008年我去了一家广州的小公司开始了BI的生涯,从ETL的工作入手,内容大概包括了:服务器架设,数据库管理及运维,报表开发,数据仓库模型设计,ETL流程设计,ETL调度开发等等。离开这家小公司后,我在外企待了挺长的一段时间,包括IBM这样的大公司,不过大体都是在为香港的客户服务。现在我在一家酒店集团负责BI产品部所有后台数据的事情。
明确角色
在BI行业,大概能分这么的几个角色,一个人可以负责一个或多个角色:
客户,业务分析,需求分析,ETL,前端报表,数据分析/挖掘
其中工作比较偏向技术的就是ETL,前端报表和数据分析/挖掘这三类,但同时也是工作量最大的。
BI人现状分析
BI人在项目中能够学到的技术都是一些来自各大厂商的收费数据库和工具,像Oracle, DataStage, BusinessObject 等等的工具。项目基本的流程就是先跟业务分析人员或者需要分析人员沟通,大概知道了需求之后开始设计逻辑和物理模型,完了之后就开始实施,中间或多或少会学到一点关于项目管理的知识。在这些项目中,BI人有着几种不同的尴尬:
1.需求信息不对称
原因:这是因为通常与技术人员对接的要么就是业务分析人员,要么就是需要分析人员,技术人员拿到的第一手资料就已经是经过整理加工的。
后果:业务学习不了多少,很难积累。
2.重复劳动的工作量大
原因:大部分不涉及复杂逻辑的实施纯粹就是体力劳动。
后果:浪费大量时间。
3.可复用部分少
原因:需求的不同,源数据结构的不一致都是导致每一个项目都要从0开始的原因。
后果:开发所需时间成本很高。
4.技术积累难度高
原因:每个企业所用的数据库和工具都不一样。
后果:由于项目进度的影响,BI人很可能什么都会一点,但每一样都并不精通。
2010年,当我从小公司出来准备大展拳脚的时候,我碰到不少的壁。最奇怪的事情就是我拿着小公司学到的各种知识,就直接又混了个大概4,5年,期间并不需要也没有机会去接触新的技术。当然有部分是因为我在外企的时间相当地长,外企那种工兵式的细分工作,能让每一个人的工作内容都能被轻易代替,于是很少能够对项目有全貌观,对于模型设计等工作也只能是一知半解,即使努力尝试去获取信息,也由于各种原因而不能得偿所愿。
在大公司或外企里面工作很容易会在工作那么几年之后渐渐地失去竞争力。有点运气好一点的可能还能一直从事自己擅长而又感兴趣的工作,运气差一点可能会被各种异动调来调去,做上几百个与个人发展毫无关系的项目,到头来无论是技术还是业务都沉淀不到更多的有价值的内容。我自己本身就是这样,每每因为某个想做的事情去了一间公司,去了之后却总是有一些原因导致我只能做一些毫不相干的事情(在深圳IBM我就干了一个月检查同事有没有锁电脑的工作)。
到了2016年,相对于2010年的自己,撇除各种特定工具的使用技术之外,除了累积了一些数据的敏感度和对指标处理的能力之外,并没有太多能够称得上是亮眼的地方。
大数据时代
但在互联网公司迅速发展的今天,BI人这10年累积下来的技术在互联网公司是完全没有价值的,一方面是工具的问题,互联网公司使用的都是开源数据库和自己开发的软件;一方面则是思想的问题,BI人缺乏互联网人所需要的产品思想。
新兴的大数据技术包括Hadoop, Hive, Spark, 分析挖掘用的开源工具诸如R,Octave。这些都是一直BI人从没接触,也没有机会接触的技术。
2015年我去面试一家游戏公司的时候,面试者就一脸不屑地反复问我一个问题:“你觉得你自己有什么特色?”然后我也不止一遍地回答那些我已学会的技术,对数据的敏感,ETL流程的熟悉之类的事情。最后结果是根本就不合适。
所有做数据的人都会有一个同样的愿望,往分析,挖掘方面去发展,因为那是数据人真正的价值所在,然而真正能做分析挖掘也有实际案例可供学习的地方也只有在互联网公司。这样又造成了很尴尬的局面:技术不懂,想去学,但公司没有项目和资源,即使自学了也没有用武之地;想去互联网公司,人家一看简历没有他们需要的技术,根本进不去。这就是一直从事BI企业服务技术人现在的困境。
转型?
工作那么久,不止一次的听领导,上司说过,在商业智能的领域里面,技术永远不是第一位的,重要的是业务,是商业。但技术却又永远是门槛,技术挡住了,连要去学习业务的机会都没有。所以有一部分的同事的发展路径大概是专注在某一个行业,慢慢地积累越来越多的业务知识。
我一开始也是这么干的,从毕业到2014一直都在保险行业。但6年过去了,我却发现自己对保险业务称不上是熟悉,最多只能略懂皮毛。相信有很多的技术人也是像我这样,因为本身就只对技术感兴趣,一味地逼自己去往业务方向走终究也不会逼出来什么成果。
既然决定了要坚持走技术的路子,那就必须花费相应的学习成本,学习现今流行于互联网公司的各种技术。但技术人估计都会有一个强烈的焦虑就是,学一门技术是否能够给自己带来长远而且可观的收入和发展?新学的这门技术如若某天被淘汰了,又得要马上学习新的技术,这样岂不是很累?随着年龄的增长,这样的快速学习及应用到职业上的过程自己还能坚持几年?到了真的学不动的时候,自己在市场上还能有竞争力么?
技术每几年就会更替这个已经IT互联网行业的常态,技术的更新比其它行业来得都要快。那我们在这样的职场上面要怎么把握自己的定位才能不那么容易地淘汰掉呢?
有一种职途的走法是,慢慢从技术转向管理方面发展,只搞上层设计,下面的具体开发实施等全部交给手下去做。当然,如果能够成功做到了管理层,这估计是比较理想的一种职业途径了。然而并不是每一个技术人都能够有带团队的机会,然后真正地让自己的各种管理技能开发并且成熟起来的。
技术人的执着
而我个人提出来的问题是:如果要固执地一直做技术,那么将来的路应该怎么走?
曾经遇到过一个很牛逼的数据库管理员,他提到过一个词我印象非常深刻——技能输出。那么我们这些自诩为做数据的BI人又到底能够为企业输出什么?更大点来说,能够为社会输出什么?单单是技术能力的输出足够么?这些问题我们都需要更深入地去思考。