如果让一个IT界以外的人来列举他欣赏的IT名人,他可能会列出:美国的比尔盖茨、乔布斯,中国的马云、李彦宏、马化腾。
如果让一个程序员来列举他欣赏的IT名人,大概和这个名单相差不大,也许会多出几个求伯君、雷军式的人物。
有没有发现这个名单中有一个特点,就是这些名人都是老板,虽然有些人是做技术出身,但他的技术肯定没有达到科学家级别,甚至连研究员级别都没达到。那为什么这些人比那些科学家更加有名得多?
带着这个疑问,我们看看一些程序员们是如何看待这个问题的。
【第一家公司】
一家外企,它是个完全由中国人管理的分公司。这里的程序员能够用上硅谷的最新产品、最新技术。
当Apple Watch还没有在全球发布时,公司内部拿到了发布前夜的Apple Watch,大家真是欣喜若狂,争相传阅。看过之后,原来啥样工作现在还啥样,没有丝毫改变。而美国同事就不同了,立即着手编写Apple Watch代码。
这里的大部分程序员只看到了美国同事光鲜的外表,例如使用最新的开发平台啊、使用最新的工具啊、开发最酷的功能啊,而美国同事核心的设计理念,他们压根儿就不屑于学。读者看好了:是不屑于学而不是因为困难而不学。
不屑于学是有原因的。公司内部的主流价值观表面上是这样的:保证进度,保证质量。而实际干的时候,却是这个版本的价值观:确保进度,质量可以舍弃。
从实践上看,质量经常被提及,但没有人去检查真正的质量,而只去看表面的质量即Bug数,有时甚至连Bug数都不看。在这种情况下,想想也知道,大部分人一定是选择趋利避害。那软件开发中更高级的质量,如复用性、易读性、扩展性怎么会有人去认真思考呢?
如上这种工作模式,只运行在美国同事不干涉的时候。而一旦美国同事主导开发的时候,就会切换到完全不同的另一个工作模式,即一切从质量出发,进度要在确保质量的前提下进行调整。
【第二家公司】
这家公司的楼道里挂着一些IT界科学家的画像,看起来有一种技术图腾式的风格。第一家公司似乎只崇拜马云式的大老板,而现在这家公司似乎更崇拜科学家。
这里的程序员被要求达到零Bug的苛刻目标,非常重视质量。这里有保证质量的思想、流程,还有技术大牛,已经接近第一家公司美国总部的情况。但这只是看起来很美好,最终仍然在底线的质量问题上败下阵来。
故事是这样的:这里的程序员们在一版紧接着一版发布着自己的产品,像蜜蜂一样勤劳。每一版的更新都包括了很多吸引眼球的东西:性能和功能。客户每次拿到新版都会很兴奋,因为速度比以前快很多,功能也更炫了。然而,这里的程序员都知道系统中一直存在着一些严重Bug,例如数据计算错误,但他们更新了那么多版,都不会把这些严重Bug列入研发计划。
要知道,客户是一直在使用这些错误的计算结果来做重要决策的,同时客户也是一直蒙在鼓里的,多么可怕!想想看,如果客户在某个重要决策中,因为这个系统Bug而做出了错误的商业决策,这时客户可能会了解到这种黑心棉式的欺骗真相,会是什么后果?不单单是丢掉客户订单的问题,这家公司可能会轰然倒塌,公司规模再大也会倒塌,因为它失去了赖以生存的最重要的东西---信用!
最基本的正确性都做不到,谈何性能?
公司当然可以说“我是不得已的,我要先活下来才能发展啊”,可是活下来若干年之后,依然使用着当初的“生存思维”,而不会改变为应有的“发展思维”,这是一种难以控制的惯性。到这里我只能戛然而止,因为那个主题太深。
我相信有技术大牛在的美国公司,一定不允许存在这样的行为,他们一定会把这些问题列入高优先级的开发计划。如果程序员存在这种欺骗现象,一定会被解雇,而且可能从此无法在IT圈子里混下去。
【结束语】
作为程序员,对待这种问题,我们有时是无所适从的。如果你是一个有技术图腾的程序员,那么就更加纠结了,我们心中的大师原来只是为了装点一下门面啊!
在这里我给出一点自己的建议:
如果程序员没有自主权时,那也没办法。如果程序员有某种程度的自主权时,一定要拿出勇气来,先做决定,再考虑要解决的现实问题。
说得再广一点,这其实也是在锻炼程序员的人生态度、创业精神。我认为,我这篇文章对于IT之外的人士同样适用。
软件开发领域看似风平浪静,其实很多时候需要一点战场上士兵冲锋的勇气!如果程序员没有这种图腾崇拜式的信仰,他怎么都无法拿出这种勇气,这个世界上也就不会产生乔布斯这样的神级人物了。