用你的技术能力赚更多的钱
我曾经是一个技术的狂热爱好者,我可以在电脑前端一动不动地坐半天,调试源代码,就是为了弄明白Web服务器是如何处理“chunked” , 我还可以在夜深人静的时候,阅读Minix的源码,看看他是怎么进行内存管理的,然后憧憬着自己也写一个操作系统。
我职业生涯的初期是在一个研究机构度过的,在那里主要是做一些国家的项目,做完了也就放下了,很少商业化。工作不忙,我也有很多的时间去学习。
后来跳槽到了一家公司,我依旧我行我素,钻研技术,还经常鼓动Leader去采用时下最热门的技术,有个资深的员工看到了,对我说:“刘欣,你这样不行啊,钻研技术是必须的,但是你得想想,怎么样用你的技术给公司带来价值啊!”
这一句话把我给点醒了,是啊,我钻研了这么多技术,这几年的工资好像也没涨多少。有时候和同事聊起来还对销售的高工资(提成)愤愤不平,觉得软件是我们开发的,我们的收益反而这么低。
可是从老板角度看来,你就是一个小程序员而已,是成本,不是利润,人家销售才能直接带来利润。
想从老板那里拿到更高的工资,最好的办法就是你能帮老板赚更多的钱。
我整天鼓动Leader用什么热门的新框架去替换现有的框架,甚至重写系统,在没有做投入和产出的计算之前,简直就是胡闹,就是满足我个人的技术欲望而已。
我整天在那里哼哧哼哧地编程,迷恋技术,不考虑业务,在同事眼中是个技术达人,但是在老板看来,我产生的价值不会比别人高多少。
是的,必须要从技术中分出一点儿注意力给业务,从那以后我就努力了解公司所在领域的业务,不但是我负责的这一块儿,还试图去理解别人的业务。
我也开始改变对业务分析师(在公司专门负责整理需求)的态度,和他们一起密切合作,遇到紧急需求,他们周末过来加班我也会跟过来。我开始理解为什么需求是这样,需求的价值是什么,慢慢地我就可以告诉他们:这个需求我们能搞定,但是得花费很长时间,得不偿失,我们能不能放到下一个版本中去做?或者改变一种方式?
很多时候,他们也能听我的,这种感觉很奇妙,原来我会和他们吵,觉得需求都是bull**t, 现在他们能听我的了。
我已经给公司带来了一些价值了,你也许会问,涨工资了吗?赚大钱了吗?
很可惜,故事并没有一个Happy Ending ,有两方面原因,一是公司走上了下坡路,我也不能逆天改命,二是公司做的虽然是大项目,但是一旦项目完成,切换到另外一个项目的时候,业务会发生变化,还得从头儿学。
后来我跳槽到了IBM, 到IBM以后很快就要写PBC, 就是个人业务承诺,我就感慨,还是大公司厉害,一上来就让你承诺今年能带来的业务结果和影响 。以业务结果来驱动工作,想想我原来每天写的空洞的日报,这差距确实大啊。
在IBM期间我曾经把技术直接输出到客户那里,直接带来销售和利润。我很早就学习了敏捷软件开发,也运营了一个敏捷软件开发的社区,具备丰富的敏捷开发技能和经验,2010年前后我出去给工行广州研发中心,华为杭研所做敏捷咨询服务,助力公司签了不小的单子,其中有一个还指定要我去,不去的话单子可能就签不了。这个时候我就意识到,我真真切切地给公司带来了价值。
我做的项目没有那种大流量,高并发的情况,我的朋友老崔在一个小型的电商公司,他的技术很厉害,设计的系统除了满足功能性需求之外,还能满足一些“变态的”非功能需求,例如在电商大促期间,流量骤然增长,他设计的系统坚如磐石,巍然不动,销售额创了新高,老板非常高兴,老崔那一年的年终奖可真是不少。
稍微总结下,用技术给公司带来价值的方法至少有这么几点:
1. 能通过新的工具、流程、方法来提升开发效率,测试效率, 这是最简单的。
2. 熟悉业务,能够用最合适的技术来实现最大的业务价值。
3. 技术直接能输出到客户那里,例如我做的敏捷咨询服务。能做到这一步,如果还有客户资源,离自己创业就不远了。
4. 技术很牛,设计的系统给公司直接带来收益,比如老崔。
1和2相对容易(即使如此,很多人也做不到), 3和4是比较难的,需要慢慢来。
一般的程序员和优秀程序的一大区别就是应用技术从而产生价值的能力,而那些最卓越的程序员,则能够用技术开创一个全新的行业。
从现在开始,多考虑考虑你的技术怎么能产生价值,以业务为导向进行思考,你的职业生涯肯定会越来越好,也许有一天,你看到了一个机会,自己就成了老板。