我的第一份开发工作所在的公司在这方面做的很好。新员工报到后接受的第一个技术培训就是一个mini软件开发培训。一周的时间,一个小的团队开发一个小的软件,用这种方式让员工感受软件开发的整个过程和软件开发每个活动的工程方法。我第一次开发工作经历只有一年,我认为自己接受过的最有用的培训就是这个培训。
我到现在的公司做软件开发又已经一年。比较遗憾的是,我一直想再参加一次软件工程方法的培训,可是一直没有机会,我一直比较后悔在以前的公司没能把软件工程方法都掌握。现在公司的部门以上级别的培训较少,自己只参加过一次公司的企业文化培训和一次产品线的业务培训。最近部门来了很多新员工,很多都不是计算机专业毕业的,没有做过项目的应届生,我还记得一次代码走查会议上一个新员工问我“什么是代码走查”,我想每个阶段的文档在归档以前为啥必须经过评审他们也是不知道的。在项目的配置管理库上,我看过不少开发过程文档,文档风格各异,我想不是开发人员不想写好文档,而是不知道文档应该写成什么样子。我觉得需求分析应该是由专门的系统工程师完成的,可是我们的系统工程师们都是项目经理,是不做技术的。我觉得让开发人员写需求文档也可以接受,但是至少应该进行需求开发相关的培训。开发文档我们有模板,模板里面有例子,但是我觉得是需要进行专门的工程方法培训的,仅靠一个文档模板是不够的。关于开发流程,我曾经给部门的质量经理提过建议,我说我们需要给新员工进行开发流程的培训,要不开发人员都不知道整个开发过程,他说“我们不是有PMS任务吗”,这就是典型的“任务驱动”的思想,我想如果开发人员不认同某个开发过程,又怎么能做的好呢。
科室来了很多新员工,在征集科室培训需求的时候,他们也提出了这方面的培训需求。遗憾的是,我们老员工也没有谁参加过这个培训,也没有相关的资料提供给他们。我在想我们现在系统部的系统工程师们这方面也不一定很懂。
我们要提高软件开发效率,需要重视软件过程和工程方法。对软件开发人员进行相关的培训是不可少的。