曾经问过不少程序员,你希望掌握的技术多一些还是业务知识多一些,结果可想而知,90%的程序员都强调了技术的重要性,只有部分人谈到业务也相对重要。
主要的观点包括以下几个方面:
1、程序员就是做开发的,必须加强技术的积累
2、业务一般与程序员无关,应该是与系统分析、项目设计者相关
3、目前找工作,招聘要求上看重的也是技术,其次才是熟悉某某行业领域的优先考虑。
接下来,我们看看程序员在不了解业务的情况下一般怎么做
1、项目中存在很强的业务领域专家,该专家能够解决所有业务问题,这个时候,程序员只要听专家的即可。但这种情况在企业中是少之又少的。
2、详细设计已经很好了,完全可以按照详细设计中规定的做,一般公司也不可能做到。
3、更多的情况是,业务不懂、沟通困难,做出的功能点、模块,不是客户需要的,在此反反复复,这也是项目延期的一个重要因素,关键的是程序员从此沦落为普通的程序员,无法体现其价值。
那么,程序员什么时候开始学习业务呢?我把程序员划分为3个阶段:
第一阶段:刚开始工作,几乎是一张白纸,学校学习的东西,只能作为基础,距离软件企业要求的开发素质差的很远,这个时候,技术是第一位的,是吃饭的家伙,但并不是什么都学,那样的话只会增加吹牛时的资本而已,但这个时候要有业务的意识,具体的就是以技术为主,以业务为辅。
第二阶段:工作有一段时间,有一些开发经验,在加强技术的同时,可以逐渐了解业务,要抱着这样的心态:技术再牛,最终都要为业务服务,技术如果没有了依附,就没有了用武之地,其可能就是昙花一现。技术的价值体现在业务的展现上,程序员的价值体现在项目的价值上,而不仅仅是技术本身。如果一个项目成功了,公司收入颇丰的同时,也为客户带了了巨大的收益,这个时候,程序员可以自豪的说,某某项目是我做的。
第三阶段:程序员应该有了自己的发展定位,一般是以下几个方面:向技术经理、总监方面发展;向系统分析、架构方面;想项目经理等管理岗位发展。但无论哪个方面,业务都是非常重要的,只有把握了业务的本质,才能保证项目的真正成功。
下面谈谈学习业务的几种方式
1、没有人带,完全靠自学,可以买书、上网等。
2、公司有相关业务专家,通过公司内部课程学习
3、请专业人士到公司讲课
4、向客户学习,这种是成本最小、见效最快的方式
其实,要学好业务,关键是自身思想上要有所认识,不要应付了事。另外,并不是什么业务都学,一般来说,每个公司有其特定的领域,把这方面学好就足够了。
首先,要自己掌握业务的基本术语和流程,我见到过有些程序员有着学习业务的热情,但其对业务知之甚少,一有不懂的就去问客户,用户都被问烦了。如果你已经掌握了基本的业务知识,在此基础上再去问用户,和客户交流,客户就会觉得很踏实,因为你既懂技术、又懂业务,把项目给你做放心。
其次,要多做沟通。程序员的自闭性比较高,不善于沟通,这是通病,在学习业务上也是,闷头苦读,一知半解,把业务内容学习完了就结束了,沉淀下来的很少。要记住,客户就是你最好的老师,要多和客户沟通,学习,这样才可能和客户形成朋友关系,最终获益的当然是自身了。