这篇文章是受 漫谈工程师的三观 的启发所写。
常常听到做业务的程序员抱怨自己现在做的业务没有意思,学不到东西,用不到新技术,用的也都是翻来覆去的技术,得不到成长。很多程序员在经历这个过程时,很多调整不了也就离职了,也许走向了一个新的技术兴奋点,有些可能是换了个新的业务继续循环。那我们程序员在遇到这种事情的时候应该怎么调整,应该向哪个方向走。
现在关于 程序员的三观(技术观、产品观和数据观) 已经算是普天盖地了,那什么是业务观。
业务开发最好的体验就是从一个业务从起步-> 快速发展->业务稳定发展->…… 的过程,而在业务不同的过程中能够清晰定位开发人员在业务中的角色,能够从技术的角度支持业务。
技术是程序员的核心竞争立,什么才是好的技术观。
好的技术观应该是不排斥新技术,不排斥自己未深入了解的技术。很多新人,甚至很多工作两三年的开发者会陷入一种误区,对一种语言极度热爱,而对其他的一些语言极度鄙视,变成某种语言宗教成员;作为程序员很多时候像是在做学术一样,需要不断探索新的领域,一些技术需要深入掌握,很多技术需要大概知道原理是什么,大概有哪些特性,兼容并包,在一项业务需要的时候能够更好的技术选型。
不同的技术很多时候能够开拓技术眼界,以程序语言为例,在并发实现的问题上:
不同的方式有着自己的优缺点,在实际应用中,我们可以以这些为借鉴解决我们的实际问题,如最近我们就在KTV 预订流程中采用了Channel的模型来抽象并实现业务。
技术人员在实现产品需求的时候,首先跳入脑海的是实现产品的技术成本,如实现这个产品会对现有的项目造成多大影响,开发起来有多麻烦等等。考虑这些成本是很有必要的,有了这些成本考虑才能更好的衡量这些需求值不值。但是如果仅仅止步于此,那还没有形成很好的产品观。
作为程序员不仅仅要理解产品的实现细节,我们还要知道产品的动机、定位和防线,知道产品为谁而做、为何而做。
例如在 漫谈工程师的三观 文章中关于用户登录的产品就是一个很好的例子:
比如说每个在线的系统都有密码重置的功能 —— 我们看看,密码重置的惯例是什么?
然而,这样一个简单的功能,有人会把它做成这样:
数据是真实世界在产品上的一个投影(projection)。好的工程师同样也应该是对数据敏感的工程师。Learn startup 教给我们:build - measure - learn 的循环,这与其说是做产品的方法,不如说是我们学习万事万物的方法。
所以数据观的第一步是知道测量什么。想要知道测量什么,需要知道某个产品最重要的 KPI 是什么。 例如我们现在在做的KTV预订,最重要的是预订订单数,其次是预订成功率,再细化到预订系统内部就是各预订渠道的预订成功率。
测量只是第一步,接下来是分析和解读数据。分析和解读数据的能力是工程师的数据观的重要组成部分。
数据分析和解读数据之后,需要形成相应的措施,如果业务中存在缺陷或者需要优化的地方,就需要形成产品需求,推动业务和产品的发展,这也许就是人人都是产品经理的一个意义吧。
业务观是一个更高更广的一种视角,无论是技术、产品还是数据分析都是为了业务更好的发展,如果让业务更好的发展,这就需要更好的业务观。正确的技术观、产品观及数据观是支持业务的基础,但是一个业务不仅仅拥有这三个方面。做一个业务需要知道业务的流程、必要的业务细节。
业务中需要有产品,这些产品大概如何推广,销售环节是如何的,每个环节技术如何提供帮助,以业务的视角来看,现在的产品和技术是否合理,能否提供更好的业务模式。
很多开发人员比较讨厌与业务人员(销售,地推人员,运营人员等)沟通,因为总觉得和这些人不再一个频道上。其实很多时候业务人员是挡在真实用户的最后一层,这一层更加理解真实用户的需求,比真实用户能够进行一定的需求总结。倾听业务人员说产品中不通的地方,往往能够找到系统和产品中的缺陷。
相比业务人员,技术人员有着技术优势,能够从技术角度更好的抽象业务需求。业务人员提出的大多数想法或需求,通常在很短的时间内,便可以基本判定技术实现方案的可行性。
漫谈工程师的三观
一个转型程序员的销售观