不想谈业务的开发不是好开发
业务,似乎与开发人员不是太相关,开发人员天生处于技术端。但是,一个只会开发的开发人员,很容易被代替,只有真正了解业务,才能真正了解需求,做出好的产品。
前言
你一定经常听到“作为一名开发人员,一定要熟悉业务…blabla”类似的说法。但是当你本着“听人劝,吃饱饭”的想法,开始尝试去熟悉业务时,一些问题迎面而来:
业务到底什么?能不能具体点?业务、产品、研发之间到底是什么关系?应该如何去熟悉业务?怎么样才算了解业务?To B业务的特点是什么?……
那么如何去解决这些问题呢?
什么是业务?
我理解,业务是一个很实在的东西,就是办的什么事?怎么办事的?
记得我刚到公司实习,接触的第一个项目是某银行供应链金融智能风控。老大没有直接让我clone代码去写程序,而是拿出一个小本,一边给我讲供应链金融体系怎么回事,一边在本上给我画出了业务流程以及简单的产品架构。
那是我第一次知道了核心企业与小b、小r之间的业务及资金的关系,银行通过核心企的订单去管理上下游中小企业的资金流和物流,银行的盈利模式,我司应该从怎样的角度去建立风控模型等业务相关的知识。
了解这些“相关背景”,知道我要做什么,才能更好地知道下一步怎么做。
还是以智能风控系统做例子,假设一名技术人员小A负责开发其中一个功能模块:每天从行方指定sftp上获取当天的信贷数据,将其解析成指定格式的数据,进行一定的处理,并入库。
如果我们单纯开发,肯定很简单。但是在开发之前,我们要明确业务需求:
- 数据属性是什么?是业务平台的订单数据、期初数据还是授信数据?
- 每种数据是什么含义,有什么用途?是实时数据还是银行当日的跑批数据?实时数据的响应时间要求是多少?银行一般晚上几点跑批?几点进行对接?
- 数据如何存储,如何设计表结构设计为全表还是拉链表?
- 那些数据是需要更新,那些数据是需要存储,方便月终对账的行方对账的逻辑是什么?
- 如何设计表结构才方便对账以后出报表的时候,怎么才方便取数?
这些问题实际上是和开发没有什么关系的,但却是我们应该去了解的业务问题。
下面总结几点我的理解:
- 技术和产品服务于业务,业务方就是需求方;产品梳理业务结构,将业务转变为可行性需求;通过技术输出为工程产品,从而实现我们的核心价值。
- 开发和产品设计需要遵循一个规则——这个规则就是业务,我们依照这个规则,对业务不断地深挖、不断地细化;这样才能优化出符合业务需要的产品,从而去支撑业务、改善业务、推动业务。
- 业务领域的知识包括:我们对行业领域的思考、对业务模式的熟悉、对业务模块的理解等;是一个积累的过程,业务不是“坐而论道”,而是要在实际项目中实践,“真听真看真感受”。
为什么要了解业务?
在明确了什么是业务问题后,很多同学可能会认为:“我是一名开发人员,我只需要按照要求去写代码就好了啊;即使后续有什么问题,那也不是我的锅啊。
其实这种想法没什么毛病,但是这样就可以满足了么?
首先我们要明确一个观点:不管是开发人员还是数据分析人员,都要熟悉业务。
对于技术人员来说,有两种大牛:一种是技术大拿,技术团队中的定海神针,可以不食人间烟火;另一种就是如何能够利用手中的技术去解决某一方面的业务问题,从而产生了什么价值。
懂业务就是懂需求,就是懂得换位思考。我们讲共情心,我们都不知道对方想要什么,怎么能做出满意的产品。技术是我们的手段,但不是目的。业务方想要的是各种数据分析结论的落地,是能够产生价值的工程产品。
如果我们不去了解业务,那么就要警惕变为“被动执行者”,在居士的《数据团队思考:数据驱动业务,比技术更重要的是思维的转变》一文中提到:
被动执行者完美地完成业务需求,但没有主动去发现和提出问题。被动执行者在数据相关的工作中,一般来讲主要是各种完成业务的报表、业务提数需求和一些业务方想法的验证。如果你一直处于这种角色,那么,请注意,公司是永远都不缺被动执行者的,你的工作可能很快会被外包同学替代。
这个世界,缺的是技术过硬又精通业务的工程师,缺的是真正能解决实际业务问题的人,缺的是复合型的人才。
了解业务,说白了就是对自己的团队的资源非常熟悉,并且洞悉和掌握了公司的流程,知道如何利用这些资源和流程来完成业务目标。
一个产品、一个项目,能否落地、如何落地、整体的判断,都依赖于对自身业务的了解。因此,开发人员要做的不仅仅是去满足业务的需求,而是要去了解业务的背景。参与到设计阶段,使技术可行性和产品需求更契合。
一方面降低了产品经理与开发之前的沟通成本;另一方面在开发之前尽可能地将各个方面考虑清楚,有助于把开发任务拆解的简明、清晰,既提高了开发效率,又避免了后续因为业务逻辑问题而对代码进行的修改和调试。
可以说尽可能的去了解业务,是一名开发人员的职业素养。
如何去了解业务?
如何了解业务:
可以遵循“面-线-点”的方式,先从宏观上去了解行业以及公司的整体业务,然后是某个垂直领域,最后再深入到具体的业务场景。
首先要认清楚公司的业务模式、组织架构、部门角色以及KPI。在熟悉了基本信息之后,就要从自己所接触的业务框架和业务流程学起,这个时间段需要做的就多看,多问,多做。
- 多看:多看公司内部文档,包括需求文档、产品白皮书、原型图、产品帮助文档、使用手册、成功案例等等与公司业务相关的文档。
- 多问:用正确的提问方法,在恰当的时机,找相关的人去问合适的问题。关于以上四个形容词,可以自行理解。
- 多做:自己在看和问的时候有所产出。比如,看文档或系统时,去梳理整体业务流程,动手画出大致地系统流程图来,也可以是系统框架,系统功能模块等;将问的问题与自己的感悟相结合,做总结;多使用公司的产品,多跑业务流程,去分析流程后的业务细节,通过数据、代码、动作去理解。
在“做”这个过程中,我们可以进行“角色扮演”:
- 把自己当作用户,去熟悉使用过程;
- 把自己当作是测试,审核需求及流程完整度;
- 把自己当作产品,理解产品设计;
- 把自己当作开发,去深挖业务细节;
- 把自己当作架构,学习其架构设计等等。
关于To B业务
最后再简单地说一下To B的业务。
To B就是面向企业,To B产品本质是帮助企业提高生产效率的工具,企业消费,除了有可见的购买成本,还有不可见的更高昂的维护和迁移成本。
因此整个过程是是理性的、专业的、团队化决策的,每次采购,涉及的关键角色很多,至少有使用方、评估方、预算方、拍板方、签字方共同参与。不像个人的冲动消费,完全是个人决策,如在淘宝买一件衣服、安装一个APP。
To B产品还有一个非常重要的点,就是和企业客户的业务流程是高度相关的。
如果对目标客户的业务不了解,本来能匹配的需求就可能被忽略,本来能正确交付的产品就可能交付错误。对不同领域的客户,如果不明确目标需求,就会出现交付服务不匹配,客户问题没得到解决等问题。
因此To B公司,更需要去了解业务。
总结
针对以上内容做一个总结。
- 什么是业务?我的理解是:业务是产品和服务实现价值的目标,是在设计和研发阶段需要遵循的准则,是价值的量化体现。
- 为什么要了解业务?摆脱“被动执行者”,可以从更高的层面去看待问题。
- 如何了解业务?多看多问多做。
最后还要说一句,本文只提供一些对业务重要性的认识及了解业务的方法论。在实际工作中,业务与本职工作的结合和取舍,还要自行把握。
坦白说,做这些并不能为你带来立竿见影的高处,更多的是一个积累的过程,只有厚积薄发才能水到渠成。
另外我们做一件事的时候,需要时刻提醒自己,要想清楚三个问题:
- 弄清楚,为什么做这件事?做这件事的价值是什么?
- 去思考,如何做这件事?
- 完成后的产出是什么?明确衡量标准。
以上三个问题虽然简单,但确是简单有效的方法论(来自阿里某资深产品经理的),需要时刻牢记。
作者:Japson。某人工智能公司AI平台研发工程师,专注于AI工程化及场景落地。公众号:木东居士(ID:Data_Engineering)
来源:https://mp.weixin.qq.com/s/L1hCgTOs2IM92AkLQNPzfw
本文由 @木东居士 原创发布于人人都是产品经理,未经许可,禁止转载
题图来自 Unsplash,基于 CC0 协议
作者暂无likerid, 赞赏暂由本网站代持,当作者有likerid后会全部转账给作者(我们会尽力而为)。Tips: Until now, everytime you want to store your article, we will help you store it in Filecoin network. In the future, you can store it in Filecoin network using your own filecoin.
Support author:
Author's Filecoin address:
Or you can use Likecoin to support author: