做企业开发,是业务重要还是技术重要?似乎大多数的声音都在朝向着同一个方面:“业务比技术重要”,“理解客户业务需求更加重要”,“我们要帮助客户梳理需求,项目做到一半的时候,我们已经比客户都懂业务了”。
作为一个搞技术的,我完全搞不清楚这种说法的起源,为什么作为本职工作的“技术”反而不如“业务”重要了呢?这里所说的“重要”是否是说我们只需要抓抓牢最重要的部分就可以解决一切问题了呢?既然所有人都认为业务比技术重要,那为什么公司不直接招聘几个“精通业务的人员”过来培训几天技术就行了呢?为什么反而要招聘原本不重要的“技术人员”,再去临时培训如此重要的“业务”呢?或者说,既然业务比技术重要那么多,为什么我们还要做技术呢?所有人都去搞业务岂不是可以把所有力量都集中在最重要的部分,进而获得更大的效益呢?
听到这种说法,人们又开始议论纷纷:“你这样太极端了,怎么可能完全放弃技术呢?没有技术怎么行呢?”这种说法再正常不过,因为我们的本职工作就是“软件开发人员”,开发人员立足的根本就在于技术能力,所谓的业务问题如果不建立在技术基础之上,就是完全无用的空对空瞎吹而已。对于一个开发人员来说,技术能力是必不可少的,再多“业务”也是无法弥补“技术”上的鸿沟的。
可为什么大多数人还是认为“业务比技术重要的”,首先公司的行为在于盈利,公司只有通过交易行为才能实现盈利,如果我们制作的产品无法满足客户的需求,客户是绝对不会买账的。怎么才能满足客户需求的,首先就要熟悉客户的业务,因此公司就需要一些了解特定方面业务的开发者来实现这些功能,这些公司对技术没有太多要求,只要达到基本水平就可以,所以筛选员工的标准就变成了对业务的熟练程度。
换句话说,大多数公司所需的员工是:“技术水平达到基本要求,对某一行业业务越熟练越好。”所有人对此都不会抱有怀疑,只是在信息不断传递过程中,有意无意中人们隐去了前提部分,只剩下后面的“业务很重要”。
对于一个公司来说,需要的永远不是:“技术最强者。”最有用的人是那些可以使用一定程度的技术,最好满足本行业业务需求的人们。公司不可能为了个人技术方面的渴求去牺牲业务方面的钻研,这已经是生存问题了。双向选择上,如果一个人技术不达标,是没办法通过面试的,如果一个人业务不达标,有可能先进入公司熟悉业务。如果一个人技术太强了,公司留不住也只能放任员工去选择更适合的发展环境,如果业务太强了,结果应该也是一致的。
对于个人来说,如果是一个技术狂热者,也不应该在公司中被技术左右,明辨技术和业务两个方面,结合起来帮助公司创造更大效益的同时才能为自己提供一个有发展的环境。双向选择上,如果自身无法满足公司的要求,是很难进入公司的,如果感觉公司限制了自身发展,也可以考虑是否拥有更多的选择机会。
最后来研究一下技术和业务之间的融合问题,我们可以肯定一点,纯粹的技术是没办法存活的,公司行为必然要涉及到解决哪些问题,纯粹的业务也不是技术人员可以达到的,所以我们期望了解的就是业务和技术如何分配的问题,是五五吗?是三七吗?是六四吗?现在只能说这个问题很难讲清楚,根据不同行业需求的不同,毕竟大多数公司都停留在简单的增删查改阶段,只要开发人员会用jsp的公司也比比皆是,相比专业的软件公司,这些公司的入门门槛低,待遇也低,如果希望在这些公司走得更远,唯一的方法就是在技术之外开辟出新疆界来。你可以搞业务,搞管理,搞客户关系,等等等等。大多数人都是可以适应平滑转型的,但是也有期望在技术上更进一步的同志会进入其他对技术要求更高的公司中。这类公司业务和技术比重大致在7:3到5:5之间,基本属于平常不会遇到解决不了的问题,只要根据客户的需求进行实现即可,不过一但遇到技术上无法实现的功能,便无法自行解决,只能求助于更高级的软件公司。
在大部分公司都与最终用户进行交互时,还是存在着不少公司进行着产品化行为,一方面基于以往项目积累的经验抽象出可复用的组件,另一方面对市场的调研总结,设计出更易用,更成熟的体系结构,这些公司有实力,并且有需求在技术上更进一步。这时也会出现对技术和业务职责上的分化。因为产品化已经深入的某一个特定的行业,对业务的需求分析细化整理都已经十分完善,为了实现更精进的业务,也就需要更精进的技术来作为支持。这些公司需要专精某些技术的员工,可以基于整理后的需求完成业务,同时也需要更加专业的业务分析人员,在业务上进行细化分析,提供给后续论证实现。只不过对于这种业务分析人员,大多也是从原软件开发人员转移过来的,他们拥有十分丰富的项目经验,同时拥有强力的设计能力可以为下面的实现人员提供规划蓝图。归根结底,无论是开发人员或是需求分析人员都是以技术为基础的,没办法,毕竟我们的本职工作是开发。
最后的最后,到底是技术重要还是业务重要呢?我想作为一个技术人员的大家,应该心中有数了吧?