背景
作为一个业务前端,天天忙于业务需求和各种线上问题,加班辛苦忙碌了一年,考核的时候没有加分项,排名垫底。出去面试,被问项目,也说不出什么有亮点或者有挑战的东西,想做点牛逼的东西,却找不到什么有业务价值的方向。最终可能就只是做了一点性能优化工作,抽离了一些可复用的组件……不禁让人感叹,业务难、前端难、做业务的前端更难!
业务前端的困境
1 业务前端“好忙”
业务前端,顾名思义,做业务的前端,对使用系统的用户直接负责。在实际的工作中,业务前端经常忙于业务的各种会议、项目和答疑,即便一条业务线上有多个前端同学支持,面对成山的需求,可能依然感到吃力,这其中的原因可能有:
- 产品版本多,各个版本并行,往往需要快速上线,工期紧张
- 对不是自己负责的业务不熟悉,改代码的时候需要先理清之前的需求逻辑,消耗时间。
- 维护成本高,每天还要忙于解决各种线上问题,比如这里样式有点问题,那里怎么没有显示……各种琐碎问题让你过的非常“充实”
2 业务前端是“资源”?
大部分前端认为,前端有视觉稿就可以完成工作,不需要理解业务全貌,所以在繁忙期很容易让前端忽视了业务思考,加上之前描述的各种原因,业务前端经常沦落为“资源”,当你沦落为“资源”的时候,其实就已经失去了和业务平等对话的资格,他们只会把你当成莫得感情的开发机器,跟你输入需求,让你吐出页面,而你在这样的关系中,本来写着还算工整的代码,为了快速实现业务需求,也开始写起乱糟糟的代码,对于你所创造的产品也没有话语权,久而久之也失去了激情和耐心。 失去激情,写的不开心也就算了,因为你没有做出什么特别的东西,领导也不会特别认可你的辛苦,还会觉得你思考不够、对业务没有助力,没有让业务因为你的存在而有所不同……
干的不开心,也没有成长,最后只能暗淡离职,但换了一个公司就会好吗,很可能又是类似的过程…… 这真的堪称是业务前端的“困境”,那么如何突破这种困境呢?首先我们就要摆正心态,从了解业务开始。
了解业务
1 业务和需求
在了解业务之前,首先我们要知道,业务跟需求是不一样的。理解需求并不等于理解业务,需求是业务经过产品消化后的产物,可能已经经过演绎或者拆解,因此需求并不是业务本身,当然了解的需求越多,对业务的全貌也会更加了解。
2 前端为什么要学习业务
前端即使不学习业务,其实也不影响做需求,毕竟你只要告诉我交互是什么样的,前端就可以帮你实现,而且已经有产品经理的角色了,大家各司其职不就好了,为什么一个做技术的,要狗拿耗子、或者是越俎代庖呢?这就要说到:
- 只有了解业务,才能从技术的角度想到业务方不曾想到的地方;不了解业务,你可能听不懂业务方要什么,甚至连需求的业务逻辑都搞不清,这种情况的合作模式只有一种,需求下来了,你接住,然后给排期。也许,这个需求的设计不合理,你不知道;这个需求有更好的实现方案,你不知道;这个需求可以通过现成方案解决,省时省人力,你也不知道。
- 只有了解到业务背后的原因,才能从全局的视角去规划技术的未来。不了解业务,会让你离用户的真实需求很远,你越难发现其中的一些痛点和挑战,没法真正提出你的思考和解决方案,去解决用户的难题。
- 作为一名研发工程师,自然是希望亲手打磨一款解决用户问题、体验友好的产品,如果产品能得到用户认可,产生影响力、自然会特别有成就感。
3 如何学习业务?
- 从日常需求入手。对于项目中的需求,我们要尝试分析背后的目的和价值,跟总体目标是否契合,还要判断业务方提到的点是不是有效的方案或者说成本太大的方案,看能不能给出替代方案,用现有的方案或者小成本的方式来满足业务方。在项目上线后,还要仔细分析以及多关注上线之后的业务数据和效果。梳理这个项目中自己哪些地方做的不足,或者相关推进中存在什么问题,以及后面怎么改进,提高下次项目中的迭代效率和质量。比如这个项目是否存在需求理解不到位存在返工,或者沟通 & 联调低效,环境不稳定,自己设计的方案是否合理等问题,后续要怎么解决。
- 了解业务背景和规划。可以多问问产品经理,给你讲讲这块业务的过去、现在、未来、愿景、年度规划,以及对技术同学的期望。
- 与后端同学聊天,与 PM 聊天,与用户聊天,多角度看业务,但要注意的是,针对专业性比较强的业务,需要先做功课,至少一些专业名词要清楚的明白意思。
- 坚持。
助力业务
思考
尽管平时的业务很忙,但再忙,也要抽时间思考,那么思考哪些内容呢?以下举一些例子:
- 养成每天记工作内容的习惯,分析一下自己的时间到底耗在哪了
- 在业务开发中,有遇到让你特别想吐槽的点吗?想下问题背后的原因,有什么方法可以避免下次不犯,能不能提炼为更加通用的解决方案,其他同学怎么解决的,我可以怎么解决?
- 不断地输入、观察,业务的真实需求是什么?站在业务方的角度思考,业务遇到的痛点、挑战在哪里?
沟通
和多方对焦,确认“我思考的和我想做的”是不是“大家想要的”?另外看看业界和其他同事是怎么解决这个问题的,尽量站在别人的肩膀上做出创新或者参与共建,避免小团队内造出重复和质量低的轮子。
技术积累
怎么学习技术知识和提高技术深度,方法很多,每个人适合的方法都不一样,这里就不再叙述了,大家各显神通...