很多现代化的互联网创业公司在公司初创时会遇到各种各样传统的问题,如场地、设备问题等,当我们已经成功解决这些问题后,业务和公司运营便成了当务之急,这时候建立一个数据团队就显得格外重要,而这恰恰是很多初创公司都叫苦不迭的事情。
建立数据团队的重中之重是什么呢?我们认为人的因素永远是最重要的!
首先,选数据部门的Leader,要考察下面三个基本能力:
1. 懂数据及其相关技术
数据部的Leader可以不会具体实施,但是各种存储的优缺点一定要了然于胸,例如我可能不了解Storm或者Spark的API,但是它们的性能、应用场景一定是要清楚的。
2. 行业经验
对公司所面对的行业和客户群体有深入的了解过,知道行业现状,知道所处行业哪些方面有数据层面的痛点,贴合业务的数据结构,或者说是超出业务预期的数据结构(逆向指导业务、技术驱动)将会使公司事半功倍。
3. 数学
如果公司最终的走向是机器学习和人工智能,那么精通数学算法非常重要,很多看似不可实现的功能,其实在数学领域有很多解决方案,有些解决思路甚至几百年前就有了。
其次,考察Leader的另一个重点是选择部门员工时,要具有识人用人的能力。除了包含一般开发人员所需要的基本素质外,如果打算培养新人,Leader需要注意以下两个的特质:
1. 数学能力
尽可能的有数学方面的研究,可以不是数学系毕业,但是如果知道并能够通过代码实现简单的线性回归,并能够说出其原理,那自然是很不错的一个苗子。
2. 脑子灵活
数据处理,技术要求其实并不高,那么脑子灵活的人要比技术好的人更值得关注,在经过短暂的培养就能独当一面,偶尔还能解决棘手问题,一个勤奋但是愚蠢的人会让你非常头疼,而搞大数据相关的东西,机器性的经验虽然重要,但是更重要的还是脑子。
解决人员的配置问题后,数据团队Leader的挑战还会来自友军,友军设计的库表、数据结构经常让Leader叫苦不迭。其次,混合型的数据服务会牵扯较多的技术,例如流式计算、缓存、消息、文本解析、Excel处理甚至是图像识别等,对于大多数系统开发人员而言,他们可能最多就写一写Spring、MyBatis,再复杂一点就是集群分布式,而做数据可能牵扯到各种各样的效率问题、数据解析问题,有时候为了完成一个需求,初创公司在技术上无所不用其极,C++、Lua、Python哪个能最好的解决问题用哪个。
最后,数据部门最重要也是最容易被忽视的就是数据库备份的问题,作为数据团队最高决策人,一定要守住最后的堡垒,只要数据还在,其他的都好说。