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