`
isiqi
  • 浏览: 16074956 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

培训新人实录

阅读更多

在讲解了许多相关的概念的东西,新人自己也看了很多Java方面的书和项目所需要的一些相关文档后,我决定了解一下他的开发水平,于是就出了个题目,包含几个小的功能,打印出来(做证据)给他,让他试着做一下。

大约用了三天时间,期间要求我给过若干提示(都是技术方面的),告诉我完成了。演示程序,我发现有的功能根本不是我想要的,有的功能根本达不到我的要求(还好我有证据)。我试着操作一下,Bug百出。然后我又看代码,只有一个类,所有功能都写在里面,没有任何注释,变量全是1234等数字。

如果我是客户,对于这样的东西,我只能让推倒重做了。

这个结果比我预想的要糟糕的多。不过也正常,新人刚从学校出来,没有任何开发经验,完全跟做作业没什么区别。拿到作业题目,马上写完交差,结果,得了个60分,很满足的扔一边去了。

正好借此机会多教点东西吧。于是我就给他讲了一下最最基本的开发流程,从分析需求开始,直到交付代码。然后推倒重来了。由于新人有之前的失败的惨痛教训(程序必须重写),效果不错。

1.对于需求,要仔细分析,一条都不能漏。不能自己瞎猜,不能确定的要及时沟通交流。对需求进行整理并分类,记录在某些地方,以便以后进行确认。(反面教材,拿到需求就闷头开始做。)
2.调查需求相关知识。对需求所用到的不了解的相关知识进行调查。
3.进行设计。即使不写各种设计文档,不画各种UML图,起码也要在草稿上把package划分一下,各种类设计一下,各个类之间的关系想一下。(反面教材,一个类搞定所有东西。)
4.编码过程。先搭好整个框架,然后添加各个功能的具体代码。最好先写好测试用例。期间对代码进行不断重构,提高代码质量。注释一定要写。搞不定的地方多多思考,不要太依赖别人。(反面教材,一个类搞定所有功能,变量方法名混乱,无任何注释,无测试用例,总说"坐这里帮我把这块搞定吧"。)
5.觉得代码都写的差不多了,好歹自己做一下功能测试,并且对照需求看是否偏离或者遗漏,有问题就修改,直到不能再发现问题。(反面教材,不作测试,赶紧交差。)
6.觉得没问题了,至少找经验丰富的人员进行一下代码review,尽可能多发现问题,直到修改完毕。(反面教材,代码写完,赶紧交差。)
7.交差。起码这个时候再拿到QA那边,问题已经不多了。代码质量也比较高了。

当然上面的过程写的比较直白,没有用特别的专业用语,也裁减了很多流程,正式的CMMI流程比这个要复杂的多(要有很多很多的正式文档)。但是经过这样再普通不过的流程之后得到的程序,与之前的相比,已经是天壤之别了。经过这次培训,新人确实得到了很大的提高。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics