|
世上无易事
要是我问你,跑百米容易还是跑马拉松容易?这还用问!当然是跑百米容易了,是吧?其实我想问的是:亚洲运动员要拿奥运冠军,是跑百米容易还是跑马拉松容易?答案似乎就颠倒过来了。近邻韩国和日本都已经出过奥运马拉松冠军,比起拿百米冠军,概率要大多了。
有了上面这个问题垫底,你应该可以猜到下面这个问题的意图:现在开发软件容易还是二十年前开发软件容易?现在的软件开发是可视化编程,就着框架搭积木,看起来容易多了。可惜,当我们的问题变成:通过开发软件来赚钱,比起二十年前是不是变得更容易了?答案也颠倒过来了。门槛的降低使得竞争者大量涌入,拉低了软件公司的利润和程序员的入职薪水,更要命的是,客户的胃口变得越来越大。二十年前,史玉柱在《计算机世界》登一个广告M6401,历史性的突破,然后就可以等到订单,这样的成功现在还能复制吗?
当我们从市场竞争的视角去看问题的时候,容易的事情就变得不容易了。不过,很多开发人员还没有学会市场思维,还是保持着学校里的学生思维。在此举几个场景为例,这些场景在我为不同团队提供服务时发生过很多次,令我印象深刻。
在给某单位做一个项目时,开发人员A自作主张加进去一些用例。我认为这些用例和客户的愿景关系不大,可以去掉。A反问道:如果做一个通用的产品在市场上卖呢?
如果开发人员很喜欢用这个学生味十足的词。是否做通用产品,这可是一个重大的商业决策,开发人员却认为将这个系统变成通用产品拿到市场上卖(目标客户变了)是一件轻而易举的事情。事实上,这涉及到整个愿景的转变,甚至公司战略的转变,而且需求受影响的可能不只是当前这个系统。市场是残酷的,谁吃肉谁喝西北风,可不能随便如果。少说一些如果,多做一些调研吧!看看客户的老大什么意思,自家老总什么意思,市场的战局如何,尽量向最佳答案靠拢。
开发人员B在写某信贷风险系统的愿景时写道:本系统的目标是,银行风险部能够对贷款做风险评估。我问道:难道银行以前不能做风险评估吗?B认真地回答:不能啊,有我们的系统才行!
很多时候我们把自己开发的系统(噢,对,现在流行叫××平台了)想得太牛了,以为没有我们的系统,业务组织就玩不转了。其实,我们开发的系统只是组织里面的小零件,和组织厕所里的马桶没有本质区别。组织里面还有很多系统,其中最值钱的是千百年来一直在使用、现在依然是最复杂的人肉系统,它由父母公司开发、老师公司不断升级、公司以每月每人几千上万的租金租用。所以,有时为了抵消开发人员这种致命的自负,我会故意将系统称为马桶,你做这个马桶是干什么的?
我和开发人员C聊天。我问:你最近做什么项目?C回答:我在做一个Java项目。
对吗?对的!这个项目对于开发人员C来说确实就是一个Java项目,因为他不关心项目的核心领域是医院、物流还是保险,他只关心这个项目能不能提升他的Java技能、对以后的职业生涯有无帮助,所以他把这个项目叫做Java项目十分正确。可惜,这是从开发人员的角度看问题,而没有从客户的角度看问题。并不只是刚参加工作的Java程序员会这样回答,有一次,我问一位有将近十年开发工作经验的架构师最近做什么项目,架构师回答:在做一个数据仓库项目。继续聊下去,我才知道其实他做的是某通信公司的客户关系管理系统,里面用到了数据仓库,而数据仓库的知识恰好是他比较缺乏而且感兴趣学习的,所以他干脆把这个项目称为数据仓库项目了!
开发人员D喜欢钻研底层,明明分配给他的工作是编写一段计费的C#代码,他偏偏要花时间深入研究到编译器、操作系统甚至硬件,而且确实也搞清楚了一些门道。虽然工作是耽搁了,但D获得了勤奋好钻研的名声。
其实软件开发还有另一个更值得钻研的底层:怎样才能使这段代码更容易维护和扩展?这段代码达到的功能和性能对涉众意味着什么?过分热衷于钻研底层,我认为这样的行为更像是偷懒而不是勤奋,毕竟比起离开电脑去搞清楚质管部和生产部之间有什么利益上的冲突,研究MSIL的语法要容易得多、愉快得多。我们不要忘记,能带来利润的是另一个更深不可测的底层藏在涉众心底里的各种希望和担心。
两个底层
it知识库:做有市场思维的开发人员,转载需保留来源!
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。