去年底入职某独角兽企业之后,担任了我们业务线成都部门的Manager。
与一般的不同,我们的Manager是以业务为维度的,而不是拆分成前后端来分别管理,一个Magager需要把某个业务给包圆了。
新工作到手,直接就面临三个问题:
- 技术栈的迁移,以前没有过react经验。
- 团队建设,因为我们是新团队,团队不了解我,我也不了解团队。
- 后端团队的管理。
总结这半年来,主要就在解决这三个问题。
技术迁移问题
我们业务线采用的是ReactCore那一套,其他的部分比如UI,状态管理,路由。都是内部实现的一套。而且由于有专门的技术架构组来封装,作为应用层的我们其实上手难度不大,看别人怎么写,自己照着写就行了。
但是,显然只会写是不行的。我需要搞清楚它们是怎么实现的,它们的实现与业界通用的方案有什么区别。
经过差不多半年多的学习与实践,我尝试去外面面试了一下React的工作。其中字节没面上,但是在某地产得到了一个近50%涨幅的offer(但没有接)。从这个结果上看,在react的知识面上,应该没有太大的漏洞了。
那么我是如何学习React的呢?主要的方法是,选择较好的博客/书籍,加上写demo验证。 我认为比较好的两个系列文章:
1.react技术揭秘。作者 @卡颂
2.react小书。 作者 @胡子大哈
知乎上比较好的答主:
1. Lucas HC (侯策)
2. 黄子毅
比较重要的几本书:
1. 深入浅出React和Redux
2. React 状态管理与同构实战
3. React Router从原理到实现
当然,我看的其实比以上要多的多,还有很多非常好的,但是相对零散的博文,我没有总结起来,有点遗憾。
不过整体来讲,我认为以上是比较值得看的,因为比较系统化。
在系统化的基础上,看一点博文,查漏补缺。但是不能只看零散的,而不去构建体系。
体系构建起来的,学习其他的就容易的多了,看问题也比较深入了。
比如很多人谈React和Vue的差异,多数人谈的都是很浅的,什么语法不同啊,differ不同啊,学习曲线啊之类的。
能像Lucas HC这样从底层分析的文章是非常少的。
www.zhihu.com/question/30…
大家常说前端的东西多,前端卷。
我到是觉得没必要给自己增加这种心理暗示和心理负担。
没那么难,也没那么复杂。
在此基础上,我跟基础架构组要了代码,学习了一下他们状态管理的设计思路。非常受用。 因此,在这个问题上,我认为自己处理的还可以,给80分吧。当然React内容往下深究还很多,我会根据自己的情况往下探索。
团队建设
我认为这是我目前处理比较不好的地方。 我管理的两个团队,其中一个是异地协作。这在管理和工作上都存在诸多不便。 我认为主要是几个方面:
1. 团队成员的认知一致
我们的团队是新团队,大家之前的工作方式和协作方式都是不一样的。如今在一起合作,那么达成一致的目标和认知是比较重要的。 这方面的建设,主要是通过给团队协商培训。确立了一个共同的认知:
-
一切行为的目标是为了更好交付在这个认知之下,我们又确立了几个原则
- 开发自测的要求
- 开发对Story的责任要覆盖到全声明周期
- 阻塞,协作,风险等信息的整体流通
- 影响交付的一切问题,都要做复盘,写PCA文档。
在这里面,我认为认知一致时比较重要的。在这个前提下,才能避免团队陷入内耗的状态。
2. 团队流程建设
公司内部有一些通用流程,比如线上变更等较为敏感的流程,这个要遵守。
但是每个团队也会根据自己的情况,制定发布节奏,版本管理,分支管理,bug/cr管理等细节上的流程。
3. 敏捷落地
这个不用提啦,基本上互联网公司都在玩儿的一套东西。
团队建设这一块,上半年做的并不好。尤其是敏捷这一块,本身我不是SM出身,公司也没有专职的SM为团队服务。这导致我们的敏捷,基本上处于形式上的敏捷。其实这一块是没有办法的,SM本身属于弱势群体,没有话语权,决定权。这种意义上,SM很难做好团队保护。 流程建设上,目前执行的不是很到位,这个是下半年的重点工作。 整体上,这一块给50分吧。聊胜于无的一个状态。
后端的管理问题
我本身是后端转的前端,但是后端时是做 Linux开发的,java这一套不是很熟。虽然对后端的概念,原理了解一些。比如微服务,CAP,服务治理这些。但是整体上是无法做一个技术引导人。这种情况下,很尴尬。
首先是自我否定。前端管理后端会不自信。
其次,是没有方向。不知道要抓什么东西。
这个问题最终是克服了自己的心理问题,大大方方向后端表示,自己不懂后端就是了。
然后每个团队安排了 TL,作为后端的技术负责人。后端相关的事宜,由他们来做就是了。
但是我认为,作为Manager也不能完全不懂,还是可以参与到他们的方案讨论中的。
前后端之分,更多是知识领域的划分。
代码是不分前后端的。因此在代码设计,数据库设计,接口设计上甚至CR上是有共性的。
稳定性
因为前端是一发布就不管了,稳定性上的问题大多是后端问题。
首先跟自己的老板澄清了稳定性的目标,比如不可用时间,高P Bug等指标。
然后,了解了其他团队的惯例做法,如稳定性盘点,稳定性监控,紧急故障演练等。
最后,根据其他团队的做法,与我们的TL一起制定了稳定性方案,并邀请评审。
这一块最终做的还是蛮不错的。
小伙伴的绩效问题
团队中有个别成员,属于低驱动的人。交代的事情也能做,但是主动性上不是很强。
说实话我个人觉得这个是属于人的问题,我们很难从外部改变一个人的驱动力。
但这样的人存在,确实会对团队有一些不好的带动作用。目前还在思考对策。
后端的管理上,这部分70分吧。主要在于靠谱的TL。
个人相关
个人相关,也做了一些事情。
在弄一个编辑器
基于Slate+Electron实现一个富文本编辑器的客户端。阅读了Slate的部分源码。 进度不是很好,目前在思维导图上有些block。 长期的规划是,看能否将是slate迁移到Vue上。
拓宽前端的视野
老生常谈的前端工程化工具,首次从0搭建一个VUE和React的WebPack脚手架。
较为浅显的学习了使用Lerna,Rollup。
较浅的学习了Svelte,以及Rust和Webassmbly的使用。
管理感悟: 在管理上,看了一些书,看了一些文章,看着都不错,但是感觉有用的很少(苦恼)。 管理的难点,还是在于人,在于沟通。这些是软技能,感觉很难迅速的建立起来。
总体来说,是非常虚的上半年,因为没有太多的产出。下半年会更加专注一点,在编辑器和管理上有所产出。