技术,尤其是软件开发技术到底值不值钱?到底值多少钱?你能说得清楚吗?
10-20年前如果我提上面这个问题,相信无数人会用看待火星人的眼光来看着我;
10-20年前的软件业,涌现出无数的技术英雄James Gosling、Bill Gates、丁磊、王江民、求伯君等等,依稀还记得当年WPS的流行,gates在ibm战战兢兢的dos演示,gosling为机顶盒的奋斗。。。。。。;
在哪个时候,无数的少年怀着美好的憧憬步入这个充满挑战的领域,一年又一年的过去了,当初的少年日复一日的在晦涩的代码、难缠的BUG、无尽的需求中奋斗,慢慢的,憧憬变成了现实,少年变成了中年,激情已不再;回眼望去,却发现自己离理想中的英雄越来越远,曾几何时,我们在面对新出道的少年时执着着一种莫名其妙的优越感,同时,心理却藏着一种另类的自卑或是说沧桑感。
上述胡说了几句,纯粹是有感而发,要解答上述的命题,我觉得要正视一个问题
技术(软件开发技术)到底是什么?
很遗憾,我尝试了 谷歌、百度、必应都没有找到我所能理解的答案,最后,在维基百科我找到这样一句话:
技术:它是泛指根据生产实践经验和自然科学原理而发展成的各种工艺操作方法与技能。
哦,经验->工艺、操作方法、技能,换而言之,技术是来解决实际生产实践中的问题的。
OK,我们贴近一下我们的实际工作,
技术=
- 我会写SQL语句访问数据库
- 我会写html制作网页,效果还不错
- 我会写代码实现两台计算机之间的通讯
- 我会Javascript在网站实现很酷的效果
- 我会使用ORM技术做数据映射
- 我会。。。
- 。。。。。。
嗯,我们会的真不少,但,上述这些技术到底能干什么,能产出什么价值,能给我们带来多少钱。。。相信我,如果就上述这些,你将永远是这个圈子里收入最低的人。
我们换个角度,
技术=
- 我能设计和实现一个进销存软件提高公司的管理水平和运作成本
- 我能应用分布式的技术提高公司网站的访问速度和负载能力
- 我能搞定老板所有诡异的想法,将他们变成产品
- 我有一套成熟的团队管理模式,能提高团队生产效率和质量
- 我是***行业的领域专家,我能做出这个适用于行业最好的产品
- 。。。。。。
好很多不是么,这样,似乎我的收入慢慢提高了,能让我们相对体面的生活了。。。可是,在接下来体面的生活和工作中,我们又发现一个又一个这样的过程:
- 一个很牛的销售员N1联系到客户,开始谈一个大单子
- 一个很牛的售前N2制作了项目的实施方案,得到客户认同
- 客户掏了大价钱委托我们很牛的公司C1实施这个项目
- 公司的领导分配组织了技术团队,确定了实施过程
- 分析人员作分析
- 设计人员做详细设计
- 开发人员开始coding
- D1你擅长数据库,做后台业务逻辑吧
- D2,前端开发是你的强项,负责前台吧
- D3,你有网络通讯的经验,负责通讯模块吧
- 。。。。。。
- 测试人员验收测试
- 客户很满意,高高兴兴付了钱
很好,很顺利的项目,N1\N2拿到了可观的分成,C1挣了大钱,但,D1、D2、D3开始抱怨,100w的项目为什么我的分成才5w块。。加起来还没N1或N2任何一人的多,更别提C1了?
再看另一个实际的场景
公司确定要做一个网络产品,分析花了2个月,设计花了2个月,开发。。。用了5个人也花了两个月完成;最后产品完成上线销售,市场反应很好,足足卖了2 年,月月销售额都超过200w,但我们可怜的开发人员还是那些工资,离这个利益蛋糕总是不得其门而入,郁闷了,拍拍屁股走人,于是乎,产品继续在卖,利益 继续在封闭的圈子里分配,作为当年的技术骨干,你作何感想?
我们似乎发现了问题所在,在这个行业里,技术似乎是类似于建筑工的角色,利益这块蛋糕,是与技术无关的,哪怕我再精通c#、java、前端、后端、分布式、系统架构,都不是完成这个蛋糕中的必不可缺角色;话句话说,没了你,换个人蛋糕照做;或者,我们为了能相对体面的活下去忍辱负重,抛开这些乱七八糟的想法,踏踏实实的继续在晦涩的代码、难缠的BUG、无尽的需求中奋斗。
牢骚发完,还是为了相对体面的活下去,继续奋斗吧。。。。。。希望我的牢骚不会影响到看帖朋友们的心情。
BTW:这文章其实我更多的是想引起大家的思考。。。尽早的制定好自己的人生目标和职业规划,有的放矢终归会比糊涂度日机会大很多。项目管理中非常重要的是里程碑的制定,我想人生也是如此。