2014年拍摄于天津西青
昨天谈了一下加班和团队的东西(见《一些杂感杂想(一)谈谈加班、团队》),今天继续这个话题再分享一些我个人的思考,以及天天写业务代码该怎么办的东西。
我们对加班问题要充分重视起来,当程序员把加班当常态,公司把加班当成常态或理所当然的时候,确实值得思考。这不是对万恶的资本主义的控诉,而是对自我的深刻反省,如果经常加班,第一反应不应该是自我感动,而应该是警醒和扪心自问:你真的知道加班意味着什么吗?
一般来说,我们既无法改善公司的管理,也不能招人帮自己干活,因此应该好好反思一下自己的工作效率。而且,经常加班的人,自己的工作效率有没有问题,心里应该都是有点 B 数的。这里我推荐大家看一篇文章:加班是如何毁掉你的职业生涯?
天天写业务代码的焦虑现在很多人都很焦虑,焦虑什么?焦虑天天写业务代码还经常加班导致越上班技术越low,市场竞争力越来越低,还有很多人存在一年经验用很多年的情况。特别是现在Web前端行业,普遍焦虑,因为三四年的时间里,这个细分行业从无到有到飞速发展,各种框架和构建工具层出不穷,JS能做的事也越来越多,还没来得及学习A技术C技术已经开始攻城略地了,以至于有社区的人怒吼求求你们不要再发了,真的学不过来!不像Java在早几年的时候很多年里感觉都没什么大变化,直到现在流行起微服务。
我们公司前端组也经常在群里讨论,大家都很焦虑,此前在我的公众号发过一篇《小厂里焦虑的前端们》的文章,里面是我们一次日常聊天的截图,从中可以明显感觉到大家的焦虑,苦于天天加班,很多东西都不会了。
就我司前端组日出开发而言,大部分事情都是在做营销活动页,我知道网上有人很鄙视,但没办法,活是上边安排的,不是我们自己可以选择的,这种事总归要有人做啊。这种项目一般都是时间紧,生命周期短,有些还要做炫酷的效果,看起来只有几个页面而已,做起来真是各种坑,特别是对Android、iOS、APP的兼容问题。这些都还好,如果第一次采坑也就算了,可是如果第一批采坑的人不做总结和沉淀分享,那么新人或者没踩过的人可能又要踩一次。
从目前来看,前端这个岗位总体是很弱势的,一些新人也是战战兢兢不敢说不,能按时上线已经不错了,能直接切图代替的绝对不去写代码,总之目标就是想尽一切办法、不惜一切手段按时提测上线,而且通常是这个项目还没做完后面的项目已经在排队了,甚至“阻塞”!
并非大家没有意识到问题,而是对问题没有合适的解决办法。
不止有天天写业务代码的程序员不止有天天写业务代码的程序员,其实很多岗位都存在大量的类似的人,行业分工不断细化、云计算普及的今天,每个人都只负责自己的那一亩三分地,各种底层基础服务都有现成的可用,那么势必要腾出很多人走上最顶层的应用业务方面,都做着差不多拧螺丝的活。
现在感觉明显的是多了很多“业务型产品经理”,跟程序员类比的话可以这么说,天天写业务活动的产品经理比较合适,自从人人都是产品经理火爆以来,现在做产品的人不比程序员少,放眼我经历过的几个公司,多的时候产品和研发都快2:1了,多数所谓的产品经理做出来的需求(就我司而言),很多时候都会存在需求遗漏、矛盾、不严谨、文档简陋或者看不懂的情况,还有表达啰嗦不清的毛病,还喜欢说你怎么不问我,要多沟通,一定的沟通是可以的,但是不要什么事都谈沟通,各有各的事,大家都忙,什么都问来问去还要不要做事啊。我不提倡这种无谓的沟通,所以,别提什么高大上的用户体验研究和深度挖掘了,跟程序员一样,能给你做出来上线就已经不错了。
针对现状能做点什么?本人其实也未能避免天天些业务代码,毕竟业务代码是公司的刚需,总要人写。但是,我总是在思考天天写业务代码这个问题,该如何破局,就算天天写业务代码也能让自己持续精进(谈不上精进,缓慢成长也不错了)。
我的一点经验,一家之言,仅供参考。
最好的方式之一就是输出。心里一直想着我要输出我要输出,当前项目里我有什么东西可以输出,有什么东西值得总结,比如踩了什么坑,实现了一个很棒的功能等,事后都可以总结,写成博客或者其他什么东西。
写博客是个好东西,因为你要把一些内容写成博客,但是你又不想写的太差,也不好意思写的太差,所以你不得不为博客内容查阅相关资料,进行知识点确认、扩展、为博客内容写配套的demo代码等等工作,这个过程是需要花很多时间额精力的,至于时间,我上一篇文章《一些杂感杂想(一)谈谈加班、团队》里说了,时间就像女人的乳沟,挤挤总会有的,就看你舍不舍得了。这个过程会无形的促使你学习东西,如果你的文章在社区获得很多点赞和鼓励,那么你会很有成就感,这时间没白花,做事情如果一直没有成就感那么慢慢的就变的跟闲鱼一样了(闲鱼:怎么又是我,这也怪我咯?)。
写博客更多的是个人的,对于在团队中,大家最好能够定期搞个交流会,哪怕就是吐槽也可以,可以业余一起建设属于你们自己的FE品牌,去GitHub上开个团队账号,像模像样的维护和经营。
比如我们前端组就是这样做的,陆续在上面建立了一些仓库,比如建立业务组件库,把日常开发中可以提取出来的业务功能做成组件;采坑记录库,放一些日常采过坑的,这个坑是什么,有些什么现象,最后怎么解决的等;文档库;自己的UI库,我们自己做了一个内部用的CloseUI,等等。虽然也没什么高大上的东西,但是我们也兴致高昂,时时想着要贡献点什么,这样不至于写代码写的一点乐趣也没有,工作失去了乐趣慢慢的就变的跟闲鱼一样了(闲鱼:我又惹你了啊,又双叒叕说我,妈蛋!)。
此外,我们是不是该思考如何工具化、自动化的问题,当别人可都已经可视化无痕埋点的时候我们还在手动代码埋点,当别人一些业务都可以不用找开发的时候,我们为了给图片加一个文字这么简单的事情也要拿给开发,这效率可想而知了,更别提什么前端架构了。
这需要Leader有高瞻远瞩的眼光和追求,去组织人力去做这样的事情,这样的事情要么自上而下发起,要么自下而上发起。当然前提是你得有前端团队,你就一两个前端这事就没法办了。要么公司推动团队,要么团队推动公司。