当提到「工作是什么」这一话题时,常常能听到以下几种说法:
- 是写出清晰明了的需求文档
- 是做好测试,减少线上bug
- 是写好高扩展性可维护的代码
以上几种说法,很明显,是从自身当前所从业的领域出发的,如果换个领域,就会换一种说法。
那么什么是最根本的工作的定义呢?我认为是「解决问题」。
写出清晰明了的需求文档,短线上是解决了沟通成本的问题,长线上是保证了产品的良好体验。
做好测试,短线上是减少当前需求的bug量,长线上是保证了产品的质量。
写好代码,短线上是代码可维护,长线上来看,是产品可迭代。
因此,上面几个例子其实都是在解决产品在面向终端用户时碰到的各种问题。
如果能够达成「工作的本质是解决问题」这一认识,在工作中就能获得更多的切入视角,而不是局限于当前专注的领域。
例如,工程师写代码的例子,若没有这一认知,工程师的思维就是拿到具体的需求文档后编码。当遇到一个自身无法明确理解的需求时,便会开始抱怨这个需求不合理。
若具备这一认知,那么思考的视角就有很多:
- 这个需求是合理的吗?不合理的话要打回。
- 这个交互体验是好的吗?不好的话要打回。
- 代码架构是合理的吗?不合理的话要主动解决,推动整个团队变好,提升团队水平的同时让自己编码更舒服。
- 发布流程是流畅的吗?
- 线上验证手段是明确的吗?
- 产品打点数据足够支撑后续迭代决策吗?
- 更大的视角,这个产品是合理的吗?
因此可以发现,具备这一认识后,写需求文档、写代码、测试都只是解决问题的手段之一,工程师可以在非常多的环节去解决问题。
另一个收益是,积攒的经验是面向解决问题的,而不是具体的工作内容,这意味着大部分经验是可以搬到其他领域复用的。
那么如何理解晋升呢?我认为是「解决更大的问题」。当解决问题的影响面越来越广时,自身的价值越来越大,自然也就晋升了。
从价值以及双向作用的角度看,工作的本质还有「价值兑换」这一说法。公司借助员工的价值发展壮大,员工借助公司的价值(包括但不限于薪资、平台资源等)成长。
我认为,「解决问题」要比「价值兑换」具备更明确的操作性,因为问题判断要比价值判断简单得多。但这二者不是等价的,「解决问题」是包含在「价值兑换」里面的,因为有一些问题不去解决,也是体现价值的一方面。