经历心得
我从18年初就开始带这小团队开始做项目,比如最初的数字广东的协同办公项目,以及粤信签小程序等,所以,在团队管理,人员安排,工作分工,项目拆解等方面都有一定的经验。
19年中旬,中心总监找到我说,我们要成立一个数据项目,做政府行业的大数据平台。虽然我当时已经有七年+的工作经验,但是在数据这方面的经验,几乎为0。当时听到这些东西也是有点蒙,不知道我要做的工作内容是什么。但是领导安排下来的任务,不管怎么样,也都要扛下来,于是我就欣然的答应了。
首先,要跟项目的项目负责人以及产品同学进行了初步的接触,拿到了立项的ppt以及文档以后。看了里边的内容,尤其重点关注了AI中台的内容,什么标签,模型,多维分析,深度学习等等概念,虽然我都听过,但是如何去做,我真的是很是胆怯,不知道能不能搞出来,按照当时的一个从未在数据领域做过项目的同学,真的是感受到了巨大压力,但是很快转变思维,鼓励自己,虽然在做业务后台已经做了七八年,转型做数据类型的项目,可以让自己涉及到自己的未知领域,所以,确定的目标就是:
面对困难,不断学习,将困难分解,逐一破解。
但是,我要如何做项目呢?
第一步,技术预研,确定主要技术栈,开发语言。我拿到立项书,确定我们的主要是做大数据,数据分析,机器学习深度学习的工程类的项目,其主流的技术栈偏java,python等语言,但是,我对java基本上零经验,那我应该选择什么语言开发呢,最后还是决定使用java主要开发语言
第二步,招人,必须有人,才会推动项目进展下去。因为这个项目是经费立项的形式,腾讯侧会以每半年投入百万经费的形式到项目组,因为部门也是成立不就,编制人员紧缺,只有核心岗位为腾讯的正式员工,也就是说,我们需要自己招外包同学来建立自己的团队,鉴于之前做粤省事成立开发团队的经验,如何快速的打造一直技术团队,只能招市场上多人会的语言,因此,果断我们选择了java作为开发语言,虽然我之前的java开发经验非常之少。所以,总结一句话,做项目是一个团队,首先必须要有人做事情,才能往前开展。
在项目成立之初,到能够交付给用户使用的一年时间里,我面试了外包同学不下几百份简历,形形色色的人员真的是太多了,各种培训班出身,简历包装的很漂亮,但是一面试就啥也不知道,最开始的项目一定找到比较合适的人选进入到项目团队,才会不会写出烂代码。随着各种事情的发生,想法逐渐改变,聊的稍微不错的,先让他进来做一下,如果不错就留下来。不行就在换人。
第三步,确定核心需求。项目伊始,作为技术负责人,一定要和项目的总负责人进行深度的沟通和交流。两人进行深度的意见交换,达成一致,才会凝聚整个团队的成员。
所以,经过一番的讨论,我们把项目初步分成五期功能来实现:
1、实现基本的多数据源管理能力,并选择基于腾讯内部的TBDS的大数据套件的能力
2、实现核心的自动化机器学习核心流程,数据预处理,特征工程,automl,部署,预测等能力
3、实现基于spark的的数据算子能力
4、实现深度学习模型训练能力
5、实现模型管理能力。
等等
讲完以上,我们就开始动工开始项目动工了。虽然第一行代码是我开始写的,但是当我们进来第一个程序员的时候,我就开始了我们指定研发的基本规范了,因此规范包括如下:
1、研发流程规范,包括从需求阅读,到需求分解,tapd需求录入与跟进,概要设计,库表,接口设计,内部评审,研发周期确认等等一些列流程规范
2、代码规范,做项目,最终项目能够跑起来就是我们的生产力代码了。其中包括分支规范,代码分层结构,命名规范等等。
3、其他规范,不一一介绍