最近在首页看到shangh_r的几篇关于IT的文章,我这个IT老战士有一种鱼刺哽喉,不吐不快的感觉。IT行业可以说是唯一一个第一代移民能够出国后迅速拿下专业工作的一个领域。在加拿大移民中,这一特点尤为明显,许多来加拿大的国移根本不用在本地上学,凭着国内的文凭,直接进入IT职场。本人就是这样的。还有一些国内非IT专业的,90年代末,被当时IT火红火热的就业形势吸引,去大学读个本科甚至社区学院读个大专,也进入了IT领域,很多在现在的工作中游刃有余,我夫人就是这样的。所以我相信我的观点是可以反映这个神奇行业的实际情况的。希望我所写得,对各位的子女择业有所帮助。
对IT最大的谬误就是认为IT就是码工。实际上,现在的IT里面有N多的工种,我今天就主要谈谈软件开发这一块,估计这是IT从业人数最多的地方。
在60年代直致90年代,IT很大程度上就是码工。那时的软件处理的问题比较单一,比如工程中的有限元计算,只要将有限元计算的方法编程即可,而使用者也是有一定基础的工作人员。再比如银行系统,其使用对象是银行的工作人员,因为工作人员反复使用后,自己能熟能生巧,这样对界面的要求就比较低。
90年代中期开始,因为PC的发展,计算机开始走进千家万户,尤其是互联网的出现,使软件开发开始面向广大人民群众,软件也不在是一个单个运行的程序,而是由多个软件系统一起完成一项工作。比如个人网上银行,很多银行接受用户数据输入的系统,是和处理用户需求的系统分开的。两个系统的开发人员根本不是一个组的,甚至可能都不在一个国家。在这种情况下,IT从码工衍生出多种工种,主要有ITPM(项目经理)、BA(Business Analyst, 用户需求分析员)、SA(Solution Architect, 方案架构师)、AA或者Designer(Application Architect 应用架构师或者设计师)、Developers(开发员)和QA Analyst(Quality Assurance Analyst, 质量保证分析员)。下面我就逐一讲一下各个角色的工作。
ITPM是管理整个项目的,负责在各个组之间协调进度,向商业部门要钱,和商业部门以及各个开发组沟通。这个工作以前是开发组的经理兼的,随着系统的复杂化,现在成了一个单独的组,由此失去了对开发人员的表现评定权,因而成了一个求爷爷告奶奶的工种。人员来自开发人员、BA和商业部门,有时也有刚毕业的大学生。
BA是在商业部门的用户和开发人员之间的桥梁,主要工作是听用户讲他们要什么,然后将需求写出来给开发人员,同时也要教育用户,现在的系统有什么功能,新增加的功能是不是可行,成本是多少。当然可行性和成本是要和开发人员一起研究得出结论。以前这工作也是开发组的经理兼得,现在主要来源是开发人员和QA。因为主要和商业用户打交道,所以很容易变成ITPM。最大的本事是要能听用户在讲什么,以及在用户天马行空跑题时,要能有效地控制用户。另外就是要有本事和开发人员搞好关系,要有耐心。
SA决定开发的大方向,比如用什么电脑机器,什么样的语言,系统与系统之间怎么通信,用什么样的平台开发软件等。从业人员来自开发组。
AA或者Designer是在需求决定了以后,设计怎么将需求开发出来。从业人员来自开发组。
Developers就是码工,编制程序以实现用户的需求。从业人员来自毕业生,上升通道是AA,SA,BA以及ITPM。
QA是测试程序的,在熟悉了系统以后,可以去做BA。从业人员来自毕业生。
在我工作的公司,一个项目从开始到结束的流程大概是这样的:业务部门首先提出一个需求,大多数时候找ITPM,然后ITPM找到相关组的AA去探讨可行性,有时业务部门直接找AA去探讨可行性。如果改动非常大,或者对现有系统冲击很大,AA会建议ITPM找SA。一般来讲,这时AA会给一个大概的预算。如果业务部门觉得这个预算值得做,就去programme manager那里立项,决定什么时候做,然后BA就会开始工作,这段时间内,BA还是会跟AA一起探讨几种可能的方案和相关的预算。在需求完全确定之后,再由AA提出预算和设计,然后码工上,编程及测试,AA如果有时间的话做代码检查和测试。QA上,码工改错,有时AA将改错要求打回去,因为错误不是这次改动引起的。在这整个过程中,码工的工作只有20%。
现在,码工的工作从上面的流程可见,已经不是至关重要的了,而且大量的工作外包到了印度和中国。在2003那时候,很多人以为5年后,所有IT工作都会外包到印度,但12年下来到2015年的今年,西方国家,IT行业依然存在。我认为,一方面是因为需求在扩大,比如智能手机的app就是2003年时没有的,另一方面也是随着系统越来越复杂,码工的重要性在逐年下降,反而ITPM、BA和AA的工作变得越来越重要。如果仅仅将IT工作算作码工,显然是不符合业界情况的。
明天有空,我和再讲一下IT难不难,以及什么样的人适合做IT,同时解释一下为什么大陆出来的很多其它非电脑专业的也能做IT。