在平安工作已接近半载,为了夯实工作能力,丰富面试内容,做以下软实力总结.
1.清晰描述开发流程,并理解每个过程的利害关系
1.0 需求池->就绪->数据探索->文档落地->脚本开发->前端开发->自测->业务验收->验收完成->上线->配置 需求池:需求方不懂数据,甚至对自身的业务都不算了解,所有提出的需求很多是探索性,或者是抽象,或者是无法预测开发过程中会遇到的很多问题.产品经理就是要不断与之明确开发需求,尽量避免需求接入后,业务不断变更想法,而增加开发方的压力.
1.1 就绪: 需求明确可实现,开发方就可以来评估认领需求.为了锻炼自身能力,和了解更广泛的业务知识,以及技术技能,认领需求不仅仅是自己熟悉,更是不熟悉的,这样虽然,短时间会增加沟通成本,但是,可以增加团队实现需求的整体能力.
1.2 数据探索: 这个过程及其重要.不同的业务,不同的表,有些表是没有用过的,那么就需要去探索表结构,表里的数据长啥样,表字段之间的关系如何,是否能达成需求质量.如果不能,就需要去找相关能满足的数据,可能其他字段能取数满足,可能需要找业务库数据同步,可能需要数据挖掘,可能问以前做过该需求的同事等尽一切可能满足,特别是需求中必须要有的字段,如果实在不能满足,则需要及时向业务老师驳回该需求,并说明原因.如此,当后期问到空置率,问到数据问题,你已经做足了努力,相关的数据问题已经清楚,自然就能回答.否则,各方问你数据问题,你会焦头烂额,无所适从.
1.3 文档落地: 做完数据探索,代表这个需求一定可以如期完成,并完成的思路都已经清晰.这时写表结构,写取数来源等文档,是轻而易举的.这个文档需要项目经理过评审,已满足dm和app层的建表规范,以及用表需求的整体性(往往相同粒度的表可以做整合,避免过多表维护管理)
1.4 脚本开发: 就是写代码,用代码知识和代码经验写代码,并测试语法正确,逻辑正确,结果值正确,主键唯一性等等自测行为,最终完成上线代码.这块属于专业知识,没什么好写的.如数据倾斜,行转列,列转行等解决,是技术上的总结了.
1.5 前端开发: 需求一般分为: 数据采集,多维报表,清单,美视. 美视就是前端展示,我们将app应用层的数据推到业务库进行前端展示,一般结果值不超过10万条.Oracle代码进行展示的准备,以及美工,自由报表的展示.往往涉及数据下转,多维展示,地区切片等等,已经做过小微客户续保周报,随车月报等.
1.6 自测: 同脚本开发做的测试工作,大数据开发一般都是自测,自己保证数据的正确性.
1.7 业务验收: 如果本组需求比较多,会组织一起,以项目组的名义发起验收,这样需求方不会看漏.提需求的人,就是你的业务方,金主爸爸,有些验收很快,因为他熟悉业务,也熟悉数据,但大部分是不熟悉的,所以验收慢成了老大难的问题.慢也不怕,有些业务方会验收比较仔细,这也比较好,有些业务方可能会等到上线的那一天才会回复哪里有问题,如果是业务给的逻辑等业务方问题,上线的风险是由业务方自行承担,如果是开发者自己的技术或验数失误,还是由开发自己承担.
2.清晰描述需求整理链路,并能游刃有余的与链路上人打交道,尽量开发需求
产品经理提需求 -> 项目经理承接需求 -> 业务开发提供数据 -> 数仓同步数据 -> 开发者开发(所有问题,自己与这整个链路上的一方明确,自己保证数据正确性) -> 项目组审核 -> 需求方验收