测试工程师作为软件从业人员为什么一定要懂业务?
从事软件行业已经快五年了,最近换了份工作,入职新公司已经快一个星期了,这几天一直在培训公司业务,周围同事也经常告诫我一定要懂业务。业务,似乎一下子从来没有这么重要过?程序员其实最不喜欢的就是熟悉业务,文档很多,业务名词枯燥无味,甚至不能为程序员的职业生涯积累多少有用的东西,因为换个行业这些知识几乎都没有用了,远不如学习些新技术、框架等等有用。那我们程序员为什么要学习业务呢?业务知道是不是不重要呢?其实不是不重要,是非常重要。业务的重要性从以下几个方面来体现:
1.理解业务有助于程序开发人员更新准确有效的开发出符合用户要求的功能。
软件里每个功能都有它一定的作用,要么是达到某种业务需要的手段,要么是能够帮助用户简化一些重复性的工作。特别是前者,能理解用户的根本需求,按照用户的要求开发某个功能,必须站在用户的角度看问题,才能完成开发任务。当然,这是程序员的本职工作。优秀的程序员,可能会根据用户的要求,结合自己在这个行业,举一反三,开发出让用户拍大腿功能,触到用户的痛处,这才是程序员的最高追求。当然,只学技术,不学业务,也可能成为一个很牛的人,但再牛也没有意义,毕竟软件是给人用的。
2.业务是一个企业的生命线,是灵魂。
为什么这么说呢?我曾经工作过两个公司。第一家公司主要是做公安行业的,98年创立,至今三十人左右,年营收刚刚过千万。而同一时期创立的腾讯等公司已是我们仰望的国内巨头,而百度、阿里当时还不知道在哪。为何有这么大的差距?可能有其它的原因在里面,但我觉得最根本的原因,就是因为这个企业没有灵魂 ——业务。大部分的业务需求都是用户提出的,需求定下来以后开发为一个项目。过两年政策一变(当然也和公安这个业务和government的原因),再改变需求开发为下一个项目。从没想过这个行业需要软件的原因,以及想通过软件想到达到一个什么样的目的,没有产品的概念,没有帮助客户和客户共嬴的意识。
3.懂业务才能做出好的产品。
我觉得一个优秀的软件企业不单单是做出一个好的软件,而是让的客户使用上自己的产品后,帮助用户更快更好的产生经济效益,或者达成某些管理目标。
4.懂业务才能够创业。
这里的创业不是狭隘的指创立一家企业,也包括创造一个新的产品或者一种业务模式,有最终的用户愿意为你的产品付费。如何创新?创新不是某一天突发其想,或者一拍脑袋立刻想出来的。是建立在深刻理解业务的基础上的,经常贴近用户,深扎在行业中,从用户提出的一个个需求,了解和把握行业趋势,嗅觉敏锐,日积月累,厚积薄发。在某一天,苹果或者其它的东西也许就砸中了你的头(希望不是砖头)……
总之,不懂业务的程序员不是一个好程序员,不懂业务的企业是一家没有前途的企业。