我大学学的专业是通信工程,设置的课程里没有软件工程相关的课。毕业后从事软件测试工作,作为测试人员,与开发人员沟通是重要的工作内容之一,所以做测试的十多年来,接触了很多的开发人员,有些开发人员留下了深刻的印象,当然这个印象有好的也有差的。
在这些开发人员中,有些人fix bug的速度超快,还不会引入新的bug,有点像武侠里的小李飞刀,刀无虚发,出刀必致命,用三个字形容:“快”、“准”、“狠”。
而有些开发人员fix bug 的时候吭哧吭哧花费了很长的时间,QA提报的bug虽然解决了,又引入了新的bug,整个过程拖泥带水。
到底为什么差异这么大呢?诚然,和经验有一定的关系。久经沙场的老将,一眼能看出门道。
最近在抽空学习软件工程的课程,突然领悟到开发人员有没有系统地学习过软件工程?有没有学好?这个也是影响开发人员能力和素质的一个重要因素。
开发人员里不乏各种专业毕业的,相当一部分是非科班出身,也没学习过软件工程。
这种开发人员fix bug 时没有系统性的理论做指导,fix 一个是一个,经验没办法积累和系统化,所以会出现上面所提到的情况。
下面是一些典型的例子:
开发时没有分析没有设计,上手就写,后期难维护,加班熬夜去填“坑”;
缺少理论指导,遇到新项目不能举一反