以下是我最近写给几位实习生的邮件。在此记录下:
“
很感谢大家的执行力,较按时的完成了开发阶段的工作。我看到了大家为了确保团队进度不受延误所做出来的努力。
我想就此说下几点问题:
一、如何保证项目目标的按时完成。
开发项目延误的原因有各种各样,有兴趣大家可以去看下《人月神话》这样的软件工程的书来了解下。项目目标很重要,但现实很骨感。在过程中,会遇到各种各样的问题,如何在过程中确保目标能实现,变得尤为关键。是上网查资料解决问题,还是询问同事一起讨论解决,还是直接找老同事让他们帮忙解决呢?这没有一个优劣之分。但是当你有问题的时候,你一直卡着解决不了,但里程碑就在那里,又该如何处理呢?你们在这次项目中,表现出来的各种各样解决问题的方式,有哪些地方可以改进呢?如果重头来过,能否在时间上可以更快的完成任务呢?
二、团队的作用在哪里。
一个人能做的事情很少,团队能做的事情很多,希望大家能通过这次项目有比较深刻的体验。在学校的时候,很多人都会说,我很牛,我一个人能做什么什么,但是做一个系统靠一个牛人能做出来吗?有没有项目经理来分解任务和管理进度,有没有业务人员来做需求分析和业务建模,有没有架构师来搭架构和review代码,有没有高级程序员来帮解决问题,有没有测试人员来帮忙测试?过程文档这么多,需求文档、设计文档、测试用例、测试报告、用户手册、培训ppt,谁来写呢?一个项目的成功交付,一个人是完成不了的。不同的角色参与,各司其职,才能保证目标的实现。
这只是一个很简单的开发项目。如果进入真正的项目中,团队成员耦合度更高的时候,你们如何更好地在团队中发挥自己的作用和体现自己的价值呢?
三、如何做到120分,力求完美。
以下这些话主要针对程序员,供大家思考:
1、写代码的时候,如何保证代码的优雅性和可读性。当你发现逻辑很绕的时候,或者你觉得不顺的时候,是否需要重新梳理代码逻辑并且重构代码呢?
2、你是先写注释再写代码?还是先写代码然后再补充注释呢?注释起到的作用是什么呢?你在写类和函数的时候,是否每个都写上了注释?这些注释是否别人可以看懂?还是你自己才能看懂?每段代码之间,你是否加了空行?每段代码的前面,你是否写了注释?
3、你写完一个功能,有没有自己去测试过呢?测试了正向的,有没有去测试过反向的呢?为何给到别人测试的时候,总会测试出来一堆的问题呢?是否因为自己的一些思想误区或者思维惯式造成你不去测试那些地方。
我一直都说,做过四个项目才懂得怎么做项目。希望大家多思考多总结,力求在做第四个项目的时候恍然大悟。
”