一、基本概况
我到a公司(按作者要求隐去公司名称,a公司为国内有名的公司)实习,通过近三个月的实习,参与实习项目的开发和同事门的交流学习,了解了a公司和软件公司的开发基本情况。
(1) 项目组共有30人左右
(2) 项目组分为需求分析部门,核心技术部门(主要负责设计工作),开发部门,项目管理部门(测试,项目文档管理)
(3) 项目使用j2ee技术
二、调查结果
在实习期间,我被安排在开发部门做代码编写工作。负责完成由核心技术部门完成的基于需求分析部门的设计。
开发部门有10几位同事,大部分为毕业1~2年。大家的工作效率都比较高,在部门经理的安排下能及时的完成设计部门的设计。一开始,项目的进展十分顺利。
随着项目的推进,出现了一些问题。主要因为在各个部门的协调上存在着不一致。需求部门不能很好的维护其需求文档的权威性,也就是说需求没有做到位。在和客户(由于本系统面向的是全省的电力局,在与客户的沟通上也存在问题,比如宁波和绍兴的客户对系统的需求有较大的差异)的沟通上没有协调好各客户之间的差异。这直接导致了需求频繁变更。而需求的变更直接导致了设计的变更,然后便是开发的修改。这大大的影响了系统开发的进度。比如数据库结构的修改次数很多,这直接影响到系统的结构,适应数据库变更的代码修改工作量相当大。
在这个时候项目组有部分人离开了,熟悉系统的开发人员的离开对整个项目组来说更是雪上加霜。这时cto及时调整了需求分析部门的工作方法,不发布不成熟的文档,一旦需求发布,需求部门应全全负责。设计部门进一步完善设计文档,开发部门暂时停止新功能的开发,做代码审查,以完善既有代码的正确性。同时引进新员工补充开发团队。这在一定程度上缓解了项目的问题,使项目团队能正常运转起来。
在项目前期的开发过程中,测试部门没有介入,在项目完成80%后,测试组开始测试工作。这时遇到了大量问题,包括功能与需求的不一致,测试人员的需求理解的偏差,甚至测试工具软件的问题,这很大程度上影响了项目的进度。最后开发部不得不停下新模块开发工作,而转过去帮助测试部门完成测试。
三、体会
通过这次实习,在具备代表性的a公司中,我体会到了当前国内软件公司面临的部分问题,比如规范不足,缺乏良好的软件工程体制等等。更让人担忧的是即使确定了理论方面的指导,在实习开发过程中也很难实施。我觉得这与参与开发的人员本身的素质有很大的关系。为了彻底解决这些问题,高等教育应该完善自己的教育体制,使高等教育的毕业生具有更高的软件工程意识。