高校学生团队软件开发项目指导方法研究

2018-10-20 09:36陈悦
新生代·下半月 2018年9期
关键词:软件开发

【摘要】:计算机专业的学生毕业后的就业方向大多和本专业相关,而用人单位是十分看重学生在校期间的实践经历的,因此对学生进行真实场景下的实际项目开发训练,既是对学生在校期间理论课程学习的一个实践检验,也是为学生将来就业打下坚实的基础。学生在校期间并不缺乏实际项目,缺乏的往往是系统性的软件项目开发的指导,这也是目前高校普遍存在的问题,如何在新形势下更好的对学生团队进行实际项目指导是一项重要的课题。该文从学生、高校、企业等多个主体的角度进行综合分析,结合当前软件开发的发展形势,探索新形势下高校学生团队软件开发指导的有效方法,该方法在真实项目开发场景下的运用得到了良好的效果。

【关键词】:软件开发 项目指导 学生团队

1 高校对学生进行实际软件开发项目指导的必要性

从企业的角度来看,大学生刚从学校毕业,实践经验有所欠缺这点可以理解,但企业营利性的特点决定了它总是愿意招聘具有实际项目经验的毕业生,因为有实践经验就意味着企业可以在培训新员工的开销上得到降低,意味着招聘到的员工马上可以或者稍加培训就可以进入到实际工作的状态,企业必然更青睐具有实际项目经验的高校毕业生,因此企业希望未来的员工在学校阶段就能够接受正式员工在实际工作中开发项目那样的指导。

从学生的角度来看,他们渴望参与到实际项目开发中并且得到充分的指导。现在学生中流行着这样一种观点,在学校学到的知识出到社会后基本用不上,之所以会让学生产生这样的错觉,除了误传以及學生自身学艺不精的原因以外,其实学校也该反思原因,虽然课程的设置都是经过科学论证的,但为何学生不买账?究其原因,学生毕业进入到社会以后,在软件开发公司接触到的都是实际的开发项目,使用到的技术往往比课堂上讲授的更多而且更新,工作的压力逼迫着他们要不断学习更多更新的东西,但学校里面更多的是授之以渔而不是授之以鱼,因此并不是学校学的用不上,而是学生需要的更多,从这个角度上看,高校确实有必要在学校和社会之间铺设更合理的缓冲带,因此高校加强对学生在实际软件开发项目上的指导是十分必要的。

2 探索高校对学生进行实际软件开发项目指导的方法

针对高校在学生实际软件开发项目指导方面存在的问题,提出以下一些解决方法:

一、有前期项目经验的学生团队。这一类的队伍相对来说是比较好指导的,首先,有前期的项目经验,不管是真实的项目还是试验性的项目,这些都能成为团队成员的经验储备;其次,有前期的项目经验,说明团队成员之间已经经过了充分的交流与磨合,或者已经具备了团队开发的交流能力,这就大大减少了成员之间磨合花费的时间。对于这一类型团队的指导,关键在于任务的合理划分,分配,以及在大方向上的指引。首先是任务的合理划分,对于一个小型的项目,一个人几乎就可以承担起项目方方面面的工作,但是对于中型甚至大型项目,再想通过单打独斗式的开发已经是不可能的事情,而实际项目的规模往往不会小,因此,如何对项目进行合理的划分是关键的,有两个要点需要把握,第一点是粒度的把握,所谓粒度就是划分之后单个任务的大小规模,粒度过大或者过小都有问题,过大的粒度会导致任务与任务之间的交集过大,这意味着不同人接手的不同任务之间存在着过多重复的部分,导致了重复工作;此外,粒度过大也不利于多任务的并行执行,从而由于等待时间过长也导致开发总时长增加。但是粒度过小也不好,任务划分得过于精细,一个是不利于任务的快速划分,另外一个过小的任务装配起来的时间开销也会相应的增加。第二点是并发度的把握,并发度和粒度也是相关的,前面讲到粒度过大不利于任务的并行执行,除了粒度要适中以外,项目的合理分解也十分关键,好的分解可以把能并行处理的部分和不能并行处理的部分划分出来,并形成一个表示项目进度的有向无环图,这样一来,既能让团队各个成员同时开发项目,又能把那些无法并行的、卡住项目进度的环节重点推进。任务划分完成之后,接下来就是任务的分配了,对于有前期项目经验的团队,任务分配相对容易,可以根据团队成员以往的开发经历进行同类型任务的分配。最后还有一个关键问题,作为项目指导的老师,虽然不直接参与项目的开发,但是必须要能够掌握项目总体方向,可以通过每周一到两次的会议及时掌握项目的进展情况,如果遇到了影响项目进度的问题可以及时解决。

二、没有前期项目经验或经验不足的团队。这种情况不能直接套用第一种情况的方法,作为项目指导的老师首先应该对项目进行梳理,把学生现阶段能做的事情和不能做的事情区分开来,基础性的框架设计任务对于没有项目经验的学生来说是现阶段不能做的事情,比如数据库的设计,即使学生在课堂上学习过一两个案例,但是在实际项目中这样的案例是远远不够的,不仅广度不够,深度也不够,如果硬要把这样的任务分给学生,企图让他们在锻炼中成长,只会导致项目的根基不稳,大厦轰然倒塌只是时间的问题。所以作为指导老师,一定要在这些关键环节亲力亲为,不能撒手不管,在核心环节上不一定要把工作全部做完,但一定要把主干做出来,枝叶部分可以让学生去填充,这样一来基础打牢固了,学生也能从中学到东西。再有一个是标准的问题,不同的学生在开发中会有不同的标准,比如有的变量或者函数命名是通过下划线连接各个单词,而有的则不通过下划线连接,而是采用首字母大写的方式区分各个单词,这样一来不同代码合并在一起会有很大的问题,作为指导老师就应该制定好统一的标准,后面的开发就必须按照制定好的标准进行,如果团队成员产生异议要及时排解异议达成共识,以免在后面发生更大的问题。

【参考文献】

【1】 冯天骁, 樊志强, 胡雅杰. 互联网软件开发中的团队合作和团队管理——学生感想篇[J]. 计算机教育, 2009, No.105(21):53-54.

【2】 李远. 敏捷管理方法在软件开发中的应用[D]. 北京邮电大学, 2008.

【3】 范俊辉. 软件开发项目进度管理[J]. 数字通信世界, 2018(2).

作者简介:陈悦(出生年份—1984),男,汉族,广西梧州。硕士研究生,研究方向:数据挖掘、图像处理、软件开发,单位:梧州学院,广西、梧州市。

猜你喜欢
软件开发
基于安卓平台的移动式教学模式研究
软件开发中JAVA编程语言的应用
信息安全环境下的计算机软件开发研究
核电厂定期试验管理软件开发
FPGA软件开发过程中编码规范的作用