时间:2022-04-25 20:09:04
序论:速发表网结合其深厚的文秘经验,特别为您筛选了11篇软件开发培训总结范文。如果您需要更多原创资料,欢迎随时与我们的客服老师联系,希望您能从中汲取灵感和知识!
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)36-8332-02
1 背景
工信部近日印发《软件和信息技术服务业“十二五”发展规划》,规划明确了“十二五”的发展思路和发展目标,确定了10项发展重点和8项重大工程。而据业界预计,到2015年,我国软件行业收入将突破4万亿元,年均增长25%以上,出口突破600亿美元。
2 项目实施的必要性和可行性分析
外包人才的缺口从结构层次来看,不是局部的人才短缺,而是全方位的供应不足。正规院校培养出来的学生能掌握基本的软件开发技术,但缺乏软件开发工作经验、项目交流和团队合作锻炼,需要经过相当的项目知识与技能培训。超过60%的高校开设了计算机专业。但是,适应外包企业需要的大学毕业生很少,大学毕业生常常需要企业花大力气培养,而企业希望招来就用,不愿自己培养人才增加成本。本软件开发、测试实训室应此目的设置,目标培养中低端软件人才。
3 建设实训中心项目的可行性
职业教育与普通教育相比有四个特点:一是教育性质和目标不同。重在对准备就业的学生传授职业知识,培养职业技能,陶冶职业道德,提高职业能力和劳动素质教育。二是教育内容与要求不同。以提高学生的专业知识与技术能力为主,重在让学生懂得做什么、怎么做,使学生学有专长,毕业后投身于社会经济建设的实践活动。目前尽管有部分学生升学,但就总体看,其教育内容与要求未变。三是课程模式与结构不同。其课程模式注重实践教学环节,课程结构注重强化学生技能的应用性、针对性和职业性。四是学校功能与任务不同。要求实施职业教育的学校必须具有实训实操的条件,否则职业教育很难获得应有的效果。
4 软件开发和测试实训室建设目标
软件开发技术实训可以包含四类实训课程:
软件开发实训:包括完整的生命周期的软件开发过程
软件阶段实训:选取软件生命周期其中某个阶段独立工作(例如编码工作)的实训;
软件测试实训:包括软件开发过程随行测试和独立的软件测试技术实训;
软件项目管理:这是关于软件技术高级培训。
实训装备:
硬件设备:5组服务器;50台工位电脑;网络和交换设备;5组光盘刻录、扫描仪和打印机等辅助设备;1套投影和无线扩音设备;互联网接入;软件平台:Windows 和Linux服务器平台,mySQl、SQL Server数据库系统、J2EE和.net开发平台和课程相关的软件工具;LoadRunner 、WinRunner等常用测试工具;项目管理工具MS Project;办公系统 Ms Office 管理软件:实训管理软件
实训方法:采用模拟企业运营方式将教练和学员混编成项目组方式完成软件开发和测试实训;打破学科界线和知识体系,以项目目标驱动安排教学内容,编制教材和教学课件,教学内容来源于合作企业以往的实际项目,由企业和学校共同对原项目分解、重组、封装形成教学课件,以实际项目文档为基础编制实训文档。
实训课程:本实训室分设以下类型实训课程
素质教育类课程:敬业精神、团队合作
企业标准类课程:ISO9000和CMM认证,企业化管理制度
项目管理类课程:项目管理方法和项目管理系统使用;
软件开发、测试类课程:包括软件生命周期理论、文档编制和理解、软件工具、编码和测试方法、系统部署、和版本管理等;
实训过程:
先期培训:素质类、企业标准、项目管理、背景知识等
基础培训:由教师教授课题涉及的基本方法、工具和规范;
开题培训:由专业项目管理人员做课题报告,解释项目要点;
5 实训课题:软件开发实训
本实训室培训软件开发人员和软件测试人员,实训方法可以将学员分组,在同一项目中分别承担软件开发和软件测试工作,也可以独立执行软件开发和软件测试实训课程
软件开发实训包括一下实训模块:
1)背景和基础知识:包括软件开发规范,软件企业ISO9000和CMM认证,学校软件工具等;
2)搭建开发环境:能够配置自己的软件开发环境,包括安装操作系统和开发工具包;能够配置自己与别人的协同开发环境,包括网络配置,文件共享,安装远程打印机等;
编写代码:使学员能够读懂详细设计,掌握开发工具的配置与使用,掌握开发语言的基本知识和数据结构,了解简单的算法,会设计简单的界面,并应用常见控件,具有数据库编程的初步能力;
图1
3)测试:使学员除了掌握测试的理论知识外,还应该学会编写单元测试案例,编写单元测试文档,在执行单元测试的时候,记录测试结果,并分析错误原因,以利于下一步的调试。
学员应掌握以下具体技术、平台和工具,Windows系列和Linux操作系统;Visual Studio工具;Borland 公司工具,SQLServer,Oracle ;Apache+tomcat,Web Logic 等;TCP/IP,创建网络连接,网络打印;基于UML的详细设计文档,面向对象分析和设计;单元测试,黑盒测试,白盒测试,设计测试案例等;执行测试并调试错误,系统和配置技术;
软件测试实训包括以下实训模块:
计算机及常见操作系统、软件设计语言基础、 数据库基础、软件工程基础、软件测试基础、自动化测试:包括OSI模型、TCP/IP模型及常见网络协议,常用软件平台、工具使用LoadRunner 、WinRunner测试工具使用,各种测试规范
6 总结
在当今社会信息化的进程中,综合应用各种新技术的系统软件功不可没的,软件开发和测试使全社会的信息管理、信息检索、信息分析达到了新的水平,因此,学习软件开发、测试的相关基础知识,对于信息时代的每一个成员都是十分必要的。
参考文献:
[1] 杨文宏,李心辉.面向对象的软件测试[M].北京:中信出版社,2002.
1敏捷开发方法的出现
软件工程是20世纪70年代提出来的概念。传统的软件开发方法有瀑布模型、螺旋模型、喷泉模型、RUP4类,它们注重文档的完整、程序的易读性、结构的完整性,属于重型软件开发方法。在过去的一段时间,传统软件工程的方法很好地适应了软件开发的需求,其不仅关注软件构造方式的完美型,同时也注重总体的可预测性,以文档为驱动,按照需求分析、概要设计、详细设计、编码、测试、软件交付的流程来进行开发。在软件产业不是很发达、软件开发人员稀少的过去,这样严格的开发流程无疑是很适用的[1]。随着市场环境的变化,传统软件开发方法面临着严重的挑战。一方面是用户需求的多样性、个性化和快速变化,另一方面则是来自激烈的市场竞争对软件的质量和价值提出了更高的要求[2-3]。这就要求软件开发需要以更灵活的手段来应对不断变化的需求,用更短的时间和更低廉的代价将产品推向市场满足用户需要,由此人们开始对软件开发过程的本质重新进行思考和探索,在20世纪90年代,一系列轻量级开发方法相继被很多软件大师提出。2001年2月在美国犹他州的雪鸟滑雪场召开了软件开发大会,本次会议了“敏捷宣言”,包括4个核心价值观和12条基本原则,这标志着敏捷开发的诞生。相对于传统软件工程,敏捷开发主要有3个重要特点:(1)敏捷开发是“适应性”而非“预设性”的,传统软件工程试图对一个软件开发项目在很长的时间跨度内做出详细的计划,然后依据计划进行开发,这类方法在计划制定完成后拒绝变化,而敏捷开发欢迎变化,甚至允许改变自身过程来适应变化;(2)敏捷开发是“面向人”的而非“面向过程”的,它们试图使软件开发工作能够利用人的特点,充分发挥人的创造力和主动性;(3)敏捷开发是“产品驱动”而非“文档驱动”,开发过程只需要较少的过程文档,在软件的迭代开发过程中,一直保持软件产品的可用状态,以产品的增量来衡量进度的实际状态。敏捷开发的诸多优点吸引了越来越多的软件企业研究敏捷开发,积极实施敏捷转型。
2敏捷转型的反模式
尽管敏捷开发方法已经提出多年,但实施过程中还是出现大量的疑问和难点,在传统型软件企业里面还大量存在敏捷转型的失败案例。这些失败案例可以总结为6条失败教训,即敏捷转型的反模式。
2.1缺少管理层支持
敏捷宣言告诉我们,“围绕被激励起来的个人来构建项目,给他们提供所需要的环境和支持,并且信任他们能够完成工作。”在转型过程中,同样要求管理层需要关注团队成员的状态,为转型工作提供足够的资源保障。
2.2转型目的缺失或不明确
管理层必须明确希望从敏捷得到什么,如果对要解决的问题都不清楚,那么努力的效果就会大打折扣或无功而返。“别的公司或别的项目那样做”并不足以成为自己采用的理由。所以敏捷转型必须紧盯自己的问题,弄清楚为什么希望做出改变,进而再启动敏捷转型。
2.3组织结构与角色和敏捷不相容
敏捷宣言提到“最好的架构、需求和设计出自于自组织的团队”。在传统软件企业中需求分析、编码开发和测试常常分属不同的行政部门,这样的组织架构容易阻碍自组织团队建立,让敏捷团队的成员感觉仅仅能够做局部优化。
2.4指导不足
敏捷转型过程中,需要向团队成员讲述敏捷的思想和方法,过少的培训甚至没有培训,将让团队感到迷茫。在实践过程中,还会存在很多疑问或误区,还需要有经验的敏捷教练现场一对一指导。
2.5将敏捷等价为Scrum
敏捷的范畴比Scrum要大得多。Scrum本身并不涉及工程卓越、业务目标、大型团队扩展或者技术发展等。在转型过程中,需要从改善工程实践入手。否则,团队初期的Scrum的活动显得很热闹,但因为代码问题迟迟无法解决,质量和效率没有得到根本的改善,过程依然痛苦。
2.6对工程实践缺乏足够认识
工程实践对于解决代码问题具有直接的帮助,但每一种工程实践都有其门槛,需要付出学习成本才能掌握。不加选择的实施,将会带给团队难以承受的压力,而导致成员的抵制。这些问题都会导致敏捷转型的失败。而失败又会带来连锁反应,一方面让转型的软件开发团队大大降低对敏捷的热情和信心;另一方面,也会给其他周边的团队带来负面影响,使其充满疑虑、裹足不前。
3敏捷转型策略
针对敏捷转型的反模式,就可以有针对性地制定转型策略。
3.1宽松环境
敏捷转型是在项目交付过程中实施的,团队成员需要付出额外的工作和努力。改进活动需要时间、资金、办公环境的支持,甚至改进过程中会遇到挫折和失败。团队的管理层对此有清晰的认识,保持关注、积极支持、容忍失败,建立一种宽松的转型氛围。
3.2转型小组
敏捷教练通常对于敏捷价值观有深刻的理解,对敏捷管理实践或技术实践有非常好的掌握,并且具备一定的沟通和引导技能。这种角色对于传统团队的转型是非常关键的,起到引导实践、转变思想的作用。在传统团队内部通常难以独立培养敏捷教练,需要从外部引入,帮助团队转型。以教练为核心加上团队内部骨干建立转型小组,可以帮助转型工作顺利开展。
3.3痛点驱动
传统团队在研发过程中通常受制于自身的能力和外部的压力,遇到各种问题。常见的问题包括:(1)维护代码规模大,遗留故障多,团队陷于质量的焦油坑;(2)用户需求多、变化快,驱使团队过于追求进度,却无法充分理解用户需求;(3)分工壁垒严重,开发人员和测试人员之间对抗造成大量浪费活动;(4)团队成员技能提升缓慢,加班过多,士气低落。转型小组一起分析团队现有问题,再与团队成员开诚布公地探讨,通常会得到强烈的共鸣。不以引入新概念、新模式为目的,而以痛点驱动的态度面对问题,敏捷开发的起步就容易得到支持。
3.4实践选择
经过多年的业界探讨和尝试,敏捷方法论层面Scrum,XP和精益看板得到了广泛认同。但即使这样,从这几个方法论里面挑选合适的敏捷实践仍然不是件容易的事情,先做什么后做什么同样也是难以抉择的事情。盲目的实施实践只会加重团队的负担,而难以获得期望的效果,并将开发团队陷于交付和改进的双重压力中。而转型的初衷是在短期内付出可以接受的学习成本,提升过程能力从而获得长期的交付能力提升,因此,短期内的改进必须要获得可见的成果。通过多个项目的探索和实践,总结出敏捷转型初期的3个关键实践:Scrum、用户故事、持续集成。从管理、价值、交付3个关键方面可以帮助团队在短期内以较小的成本奠定敏捷开发的模式的基础,并可以在此基础上持续自我提升。Scrum是一种轻量化的敏捷软件开发管理框架,每隔1~4周,每个人都能看到能实际工作的软件,并且据此决定是这个版本还是继续开发以加强其功能,这样将原先的长周期的开发过程切割成若干个小段,用户反馈速度大大提升。有了轻量化的管理框架,团队的基本的工作模式、协作方式就会发生明显变化。用户故事(UserStory,US)是从用户的角度来描述用户渴望得到的功能,能把一个功能像讲故事一样叙述出来,不仅描述了产品需求、业务价值,同时还包含了一系列验收标准。一个好的用户故事包括3个要素:(1)角色,谁要使用这个功能;(2)活动,需要完成什么样的功能;(3)商业价值,为什么需要这个功能,这个功能带来什么样的价值。通过使用用户故事,可以增进开发人员与业务人员的沟通,帮助开发人员充分理解需求含义,并确保每个迭代都能关注用户期望的高优先级需求。没有用户故事就难以有真正意义上的迭代,也无法做到敏捷开发所倡导的快速反馈、快速学习和快速价值交付。持续集成是极限编程里面的重要实践。采用完全的自动化构建过程,使得一个开发团队在一天中多次构建并测试软件。持续集成鼓励软件开发项目团队在一天内多次提交代码,同时保证每次签入操作都不会损害已经通过的构建。这样做的目的就是为了快速反馈,使得缺陷及早被发现,并能以可视化手段快速反馈。有了持续集成作为质量安全网,团队的缺陷可以快速反馈和解决,作为工作产品的软件版本就可以一直保持在可工作状态。
3.5敏捷培训
要让团队正确实施敏捷实践,转型小组需要实施多层次多类型的培训。给团队的敏捷培训可以分为3个类型:(1)敏捷价值观的导入培训,向所有团队成员解释敏捷从哪里来的,它是什么、不是什么,与传统软件开发的异同点及其背后的原理,这样可以让团队成员能够在理论层面理解敏捷;(2)敏捷实践方法的培训,有针对性地向各角色介绍敏捷实践方法的要领;(3)本地化敏捷管理要求的培训,即为了使敏捷方法在团队落地而制定的各种管理要求,需要宣贯给团队成员,例如Scrum的活动计划和执行要求、用户故事书写规范、持续集成纪律等。通过一系列培训及时准确地传递敏捷的思路与各种要求,促进团队建立共识,提升实践能力。
3.6迭代改进
敏捷转型不是一蹴而就的,转型小组的改进工作需要按照敏捷开发的模式迭代前行。每个阶段制定切实可行的目标、范围和计划,定期组织回顾总结。通过透明化的成果展示获得管理层支持,及时发现风险改进工作安排,保证转型工作始终在平稳和可控的轨道上。
4结语
敏捷开发是一系列轻量级方法论的集合,具有共同的价值观。敏捷转型行为是由策划的敏捷方法引入到传统开发团队中,合理应用可以显著提升团队交付的效率、质量及个人能力。敏捷多种方法论及其实践都有其特点和学习成本,这就给敏捷转型带来了诸多风险和难点。本文在大量实践的基础上,针对转型中的反模式,提出了系统化的敏捷转型策略以帮助传统团队成功转型。需要注意的是,短期的敏捷转型任务完后,转型小组中应该能培养出内部教练,以便有能力引入更多的方法实践,帮助团队向更卓越的目标前行,而团队需要保持敏捷的意识和习惯,形成持续改进的良性循环。
参考文献
[1]科恩.用户故事与敏捷方法[M].李国彪,滕振宇,译.北京:清华大学出版社,2010.
1 概述
由于空中交通管理行业的特殊性,安全性以及高技术性等特点,相关软件的自我研制与开发就成为必然,各级空管局也相继成立了软件开发团队。但由于软件开发并不是空管局的核心业务,所以机构小、待遇低、升职机会少、管理水平跟不上成了软件开发团队普遍遇到的问题,并由此导致高水平人才留不住、开发人员职责分配不当、开发流程不规范、难以积累管理和技术经验等等问题。
2 人员岗位管理
2.1 “选” 空管局在招聘软件开发人员时一般会遇到两方面问题:一是相比专业软件开发企业工资待遇偏低,难以吸引有三年以上开发经验的中高级人才加盟;二是部门人员编制少,每个开发人员都要掌握多种业务和不同的技术。确定了人员招聘的范围,接下来是怎样从众多的应聘者中挑选出团队所需,如图1所示。
图1 软件开发人员招聘试用过程
在招聘阶段,综合能力笔试和全方位的面试是必须的。笔试要对应试人员的数学能力、逻辑推理能力、归纳总结能力、语言文字能力等基本素质进行考查;面试针对的则是业务能力,技术能力,语言表达能力,应变能力等等。
2.2 “育” 虽然软件开发并不是空管系统的主业,但员工的培训却不能忽视。首先,应该经常进行交叉培训。交叉培训不仅快速、低成本的提高了部门员工多方面的技术技能,而且也促成了员工的“备份”,在某一员工离职时不至于出现技术断档。其次,软件是个高速发展的行业,要有针对性的进行新技术的培训。最后,空管业务的培训也十分重要,一个软件成功的开发永远离不开对相关业务的精通。
2.3 “用” 如今的软件行业岗位分工已经越来越细化。要想充分发挥每位员工的能力就要了解每个人的喜好特点,针对员工的个人能力分配合适的岗位和任务,做到知人善用。
2.4 “留” 留住人才有一整套的手段和方法。薪酬是很多软件开发人员首要看中的,要保持员工队伍的稳定,薪酬至少要在人力资源市场中的平均薪资水平。发展方向是另一重要因素。在员工建立自己的发展方向时,不仅要尊重他们自己的想法同时也要帮助他们发掘自己的特点,找到自我喜好和部门发展方向的契合点,让员工和部门共同发展。
2.5 岗位配置 岗位配置是涉及软件开发效率、软件开发进度、软件开发过程管理和软件产品质量的重大问题。面对软件部门人员少、项目杂等特点,将开发人员分成组内成员和公共成员两部分,如图2所示。
一般每个项目都成立一个独立的程序员小组,根据项目的大小和完成任务的时间设2至5人。程序员小组实行“主程序员”负责制,负责组织、规划、协调和审查小组内的全部技术活动。“主程序员助理”是主程序员的助手,除了协助主程序员的日常事务外,在必要时能代替主程序员的领导工作。这种一主一副的配置在最大程度上保证了项目开发的连续性和完整性。其他“程序员”负责模块代码编写和测试。
3 开发管理
3.1 开发规范 开发规范的有效建立和严格执行是提高软件开发质量,降低开发周期,增强代码的可重用性、易读性,使软件便于维护,使开发人员之间便于交流和协作的一个最有效的手段。开发规范包括:变量名、函数名、文件名、模块名等名称的命名规范;保证代码简洁、清楚、易读的代码规范;保证类关系清晰,有良好组织、严格区分的类组织规范;用户界面规范;测试规范;bug调试规范等等。
3.2 技术积累 技术积累是软件开发团队提高开发效率的关键因素,它不仅为将要开发的功能或模块提供了技术模版和参考,同时也大大降低了人员流动对团队、对项目开发带来的不利因素。技术积累并不是一堆代码的简单累积,它应该具有如下特点:首先,它应该能实现特定的功能并能被重复使用;其次,在多个项目中使用并被充分验证;再次,有详尽的技术说明文档,易于学习和使用;最后,被清晰的组织和索引,易于查找和引用。
3.3 配置管理 软件配置管理是一套规范、高效的软件开发基础结构。作为管理软件开发过程有效的方法,软件配置管理可以系统地管理软件项目中的多重版本;全面记载软件开发的历史过程,包括为什么修改,谁作了修改,修改了什么;管理和追踪开发过程中危害软件质量以及影响开发周期的缺陷和变化。通过配置管理工具的使用,打破了开发人员各自为政的开发模式,减少了代码冗余,提高了软件重用率,使整个项目组更容易完成统一编码、统一测试、统一部署、统一升级。
3.4 项目管理 项目管理包括:决定项目启动时间,确定项目范围,制定项目任务的重要性和优先顺序等等。项目管理运行机制没有一个统一的标准,它的建立需要长时间的摸索和积累并且要充分结合本部门发展的自身特点。
4 结语
(1)建立自组织团队。传统的管理方式具有命令和控制的特点,经理制定目标和计划,团队负责完成,发挥不出员工的创造力,影响了企业的效率。软件开发的敏捷开发要求员工自我管理,个人控制时间和目标,员工能参与流程和项目决策。
(2)用户故事在需求管理中的应用。软件开发企业最大的敌人不是用户,而是变化。瀑布模型难以适应目前软件市场需要,因此软件开发工作要取得用户的参与,顺应市场的变化。
(3)用户故事的度量,它能为产品投资收益提供估计结果,辅助产品决策。对故事点大小讨论时,能鼓励团队成员重复讨论,充分理解需求。故事点度量方式一致,提高统计团队工作效率。
(4)持续集成。它能提高项目构建自动化程度,将人力成本更多投放到开发任务。项目更有可见性,构建结果更加丰富,一目了然。团队对开发产品更有信息。
(5)掌握迭代,为员工提供稳定的生活节奏,保持一致的周期循环流程,沟通过程中控制时间。
(6)坚持反馈和改进,了解自身情况,改善团队效率。
精益生产的目标为提高质量和消除消费。看板原则要求生产降低库存量、降低生产周期、生产基于交叉培训和单元并对过程进行持续改善。如同超市进货一样,当货架上货物少于设定值,供货商会及时将其填满。将看板管理与敏捷软件开发结合起来,能够达到效率和质量的有效结合,软件产品周期频繁,能达到按天级别。
2.项目看板方法流程设计
增量迭代开发开发流程存在着三点问题。
(1)每个迭代的用户故事较多,产品经理和开发工程师认为很多功能没有价值,而项目经理认为需要跟踪的项目较多。
(2)对于为期四周的迭代观念不统一,部门不同,期望值不同,测试人员认为时间不充分,产品经理认为需要等待太长时间。
(3)部门之间缺乏协作,缺乏透明的项目进展和进度,太多时间花费在流程上。敏捷软件开发有三个典型流程,分别XP、Scrum及看板,经过比较,看板原则可以解决迭代用户故事较多的情况,对于规模小及优先级别高的用户故事能够迅速完成,并满足产品经理对产品的预期。
2.1 基于看板管理的敏捷软件开发流程方案设计
看板一般应用于汽车生产等工业领域中,在敏捷软件开发中看板管理只是理论上行得通,但是在实际上还缺乏经验。而且其受到产品特点、客户差异及企业文化的影响。其流程主要为,(1)定义并可视化流程;(2)限制WIP数量,流程可视化于物理板能够让项目透明,让团队对目前的任务充分明确。限制WIP数量则能让团队在思考时排除千扰,提高个体效率,项目工作不以来时间计划,而是取决团队能力;(3)拉动式生产,每个团队成员只需要对自己环节加以关注,等待任务-完成工作-到下一环节等待区^这种方式推动了产品开发前进步伐。
2.2 看板流程准备和实施
(1)是动员和人员培训,先获取领导层的理解和信任,再向所有员工培训敏捷开发和看板方法,最后,每个部门进行讨论。
(2)制定需求管理环节,产品经理提出产品需求,创建用户故事,技术团队估算用户故事工作量。通过需求分析,工程师能够获取信息,完成研发工作,产品经理全程辅助开发和测试,解答相关问题。
(3)开发流程改造,主要变化在对程序代码的管理方式进行改变,主要有主干和分支两种。
(4)测试流程改造,主要表现为两个方面,一方面提高系统自动化测试率来加快回归测试的进度,另一方面增加测试环境满足功能测试需求。
(5)项目管理流程的建立。
2.3 看板流程的实施
当所有准备工作完成之后,看板方法第36增量迭代之后,可以正式实施。产品经理将用户故事进行排列再制成任务卡,贴在用户故事一列,完成需求分析会议。开发组建立功能分支进行开发,测试组应用功能测试环境对用户故事进行测试,直到产品。团队成员每天早上聚集看板附近,明确自己的任务,下班前,项目经理将每天的任务卡状态变化汇总。敏捷流程要求强调团队自组织和员工自我管理,但是不可忽视项目经理的作用,项目经理能够组织人员,梳理工作节奏,保证沟通流畅,促进项目进展。
【中图分类号】G40-057 【文献标识码】A 【论文编号】1009―8097(2009)07―0049―03
当前国内的论著和教材中提出的教学软件设计与开发模式大体可以归为两类。一类是对教学系统设计模式修改而来的,如对ADDE模式的修改;另一类是在软件工程的线性开发模型中插入教学设计环节的,例如“项目定义教学设计系统设计脚本编写素材准备软件编辑试用评价产品出版”。这两类模式都忽略了教学设计与软件工程的内在联系,不能很好地指导教学软件开发。
教学软件既是一种教学材料,又是一类应用软件。作为教学材料,属于教学系统设计的对象,作为应用软件,是软件工程的产品。 因此教学软件开发过程中有两条并行交叉的过程。本文在分析开发过程的基础上,提出两者结合的开发模式。
一 教学软件开发过程分析
1 教学材料的系统设计
在教学系统设计中,教学材料的开发是放在整个系统中考虑的,是一系列的相关分析和决策的结果。
教学系统设计有多种模式。图1所示的是美国学者迪克(Walter Dick)和凯里(Lou Carey,James O. Carey)提出的模式,这个模式有广泛的应用。
对于整个设计过程,可以分为两个阶段,即分析阶段和决策阶段。分析阶段的结果是编写出绩效目标。以绩效目标为依据,设计者开始做出的决策,形成如下的设计文件:
评价学习的试题和量表;
教学内容和活动的顺序与组织方案;
教学材料和教师手册的初稿;
对教学和教学材料的形成性评价方案;
对教学和教学材料的总结性评价方案。
2 教学软件产品的开发
教学软件产品的开发要遵循软件工程的规律。软件工程是“采用工程化的原理与方法对软件进行计划、开发和维护。” 目的是提高软件开发的效率和可靠性。软件开发的基本模型如图2。
这样的线性过程不适合于教学软件开发。首先这种模型是以编写程序代码为中心的,而教学软件除了程序代码,还有大量的媒体元素,如图像、动画、音频、视频等。这些元素的制作是与程序编写并行或交叉进行的,该模型反映不出媒体制作的工作过程。其次是在教学软件设计的初期,由于教学本身的复杂性,设计者不可能完全确定设计的细节,不可能在分析阶段解决所有的分析问题,经常需要在开发过程中修改他们的设计,该模型没有考虑到开发过程中的不确定性。
在对软件开发模型改进的过程中,人们提出了快速原形法、增量模型、螺旋模型等,这些模型的共同特点是把软件开发看作多次循环改进的过程,在多个循环过程中有多次的评估和修改,或是从软件的核心逐步丰富。图3示意了原型法与螺旋模型结合。无论是哪种模型,都有软件开发的基本步骤:分析、设计、开发、测试。
3 教学系统设计与软件开发模型的结合
教学软件与管理软件、工具软件等功能性商用软件最显著的不同,是不能用“功能”来衡量。例如一个文字处理软件,如果测试者能够用软件录入文字,实现任何格式的排版就表明该软件的功能实现了,而教学软件无论运行多么流畅,严格地讲都不能说它具有了功能,因为教学软件的作用效果,不是自身表现出来的,这是具有不确定性的。因此对教学软件,开发是否成功要看教学性,而不是“功能”,而教学性要靠教学系统设计来保证。
无论是从教学系统设计的角度,还是从软件工程的角度,教学软件开发过程都可以分为两个阶段,一个是设计阶段,一个是开发阶段。两个阶段之间有反复调整修改的环节。教学系统设计的理论和方法,主要应用在设计阶段,以实现软件的教学性,为开发提供蓝图。软件工程的思想和方法,贯穿整个设计和开发过程,但重点是开发阶段的组织与管理,以实现软件的技术性能。一个好的教学软件开发模式,应该以教学系统设计为基础,结合软件工程的思想和方法。对这种结合可以用图4示意。该图的内圈表示教学设计过程,外圈表示软件开发过程,两个过程是同时启动同步进行的,交织成一个软件开发循环周期,但是在各个阶段两者的重要程度和工作任务的分量不同。
二 教学软件开发模式描述
1 模式的构成
该模式是借鉴美国学者Stephen M. Alessi和Stanley R. Trollip提出的模式,结合国内实际情况和我们的工作经验提出来的,见图5。
这个模式在整体上是软件开发的螺旋模型中的一个周期,也可以看作增量模型的一个构件的实现过程,这取决与软件开发的任务和条件。这个模式具有一定的普遍性,适合教学软件专业开发,也可供学校的教育技术人员和各科教师制作课件参考。
设计与开发模式有三个要素和三个阶段。三个要素是标准、评价和管理,三个阶段是计划、设计与开发。三个要素始终与三个阶段相互作用,是指在制作的全过程中都要注意,是全过程的活动原则,保证项目的成功。计划和设计两个阶段用环形表示阶段内部有反复的修改,开发阶段用竖的框架表示多项工作可能会并行或交叉开展。
这个模式涉及到开发者和用户两个方面,开发者包括教学设计人员、教学与培训专业人员、媒体素材制作人员和美工人员、程序编写和测试人员、项目管理人员等。在专业开发中,用户是指接收产品的客户,如学校、培训机构或出版商。在学校或培训机构内部开发时,用户是指使用软件的教学者,通常是教师。
2 模式的特点
(1) 基于标准的过程
从项目一开始,开发者与用户等共同明确软件最终产品所有方面的一致的标准,每个开发人员都知道应该怎么做,始终坚持确定了的标准。
(2) 实证的方式
全过程是初步设想、评价、修改的反复循环,直到最后完善。在计划和设计阶段需要完成两个原型,体现了原型法的思想。软件开发虽然有理论指导,但是最保险的还是不断地试验修改,直到合适为止。在全过程中坚持按标准评价,既不拔高也不降低。
(3) 全过程管理
软件开发中有一种现象是偏离原定方案,到了最后又耗费时间、人力和财物进行修改。好的项目管理能保证方案实施,坚持既定标准。
(4) 重视决策阶段
该模式中把计划与设计分为两个阶段,在全过程中花费较多的时间,意图是制作人员多花一些时间讨论,提出初步设想,做出正确决策,然后进行技术实现。这样不仅能少走弯路,提高工作效率,更重要的是能开发出体现教学设计魅力的软件,而不是炫耀技术水平和艺术效果的展品。
(5)倡导集体协作
全过程贯穿了集体协作的工作方式。首先是因为设计与开发所需要的技能与知识不是一个人能全部具备的,决策需要集思广益,需要有各方面专长的人合作;其次是协作方式能够在参与者共同监督下,保证原定的标准与方案。
3 模式的要素
(1) 标准
标准是一个好的项目的起点和基础,规定了开发人员持续努力所要达到的质量。在典型的情况下,一套标准来自两个方面。第一,是由开发人员提出来的,开发人员都应知道质量标准,并且在全过程中遵守;第二,是由客户或教学人员提出来的,往往比较具体,例如规定了总体印象、内容详细的程度、字体、颜色等等。来自两方面的标准一般是不会冲突的,能够协调为一套标准。
(2) 评价
标准只有在软件开发中坚持才有用,这就要求对所做的每一件事进行评价,每个人员也必须执行标准,以标准来衡量自己所做的工作。如果等到项目接近完成时,才来看是否应用了标准,既不现实,也没有用处。
进行全程评价关系着项目的质量,通过设计与开发过程中反复的设想、试验、评价、修改,使每一步工作都符合质量,则最终的产品才能具有高质量。
(3) 管理
成功与不成功的项目的差别很大程度上在于管理。对整个软件开发项目的资源、经费、时间等要从始到终严格控制,进行的良好管理,否则项目容易偏离预定计划和标准。加强项目管理,首先是要制定好计划,其次是要做好监控工作,最后是要保持项目组成员之间以及与用户之间的交流和沟通。
4 模式的阶段
(1) 计划阶段
计划阶段奠定多媒体教学软件开发项目的基础,形成总体设想,以保证项目各方面顺利进行。
计划阶段应确定项目的目的,也就是学习者完成软件学习后应掌握的知识、技能及应形成的能力、态度等。目的的确定涉及到教学内容范围,学习者的起点知识技能,以及一般特点。明确工作的限制条件也是必要的,例如运行软件的计算机环境,用户对信息呈现的特殊要求、软件内容的指定范围等。
计划还包括收集资料,明确所需要的资料是否都能得到,能否改编或自制,如果有些资料不可能解决,决定是否需要改变软件的内容。计划阶段应开展头脑风暴活动,项目组成员共同讨论,形成对软件的内容、结构、外观、风格等方面的初步设想,用原型或文字描述出来。在这一阶段需要频繁地与用户沟通,应编制一些文件,包括项目说明、计划书、项目标准等,使项目管理有章可循,并得到用户认可。
(2) 设计阶段
设计阶段进行软件的教学内容的组织,明确软件的教学目标,形成对软件的具体描述,为技术实现提供指南。
设计是软件开发的核心阶段,时间用得最多。在这一阶段,要综合应用教学理论,使用控制与交互的各种方法,体现信息呈现的要求。在设计过程中,制作人员之间,以及制作人员与用户之间,要继续交流,对软件最终的样式达成共识,完成原型和设计文件。
(3) 开发阶段
开发阶段使设计的结果最终转化为实际的产品。
这一阶段要运用各种技术手段,包括硬件设备和工具软件,利用和改编现有资料,制作文本、图像等多媒体素材,用编程或创作软件集成软件,经过多种不同水平的测试和试用后,最终完成软件。并且安排软件的总结性评价。
在开发阶段,素材制作、软件编程、手册编写等多项工作往往是并行或交叉开展的,素材创作和程序编写人员是工作的主体,但设计人员和用户仍以不同的角色参与制作过程,同时又在动用所有的技术资源,因此组织管理和质量控制十分重要。
参考文献
成立校企合作教师工作站是深入贯彻落实教育部、财政部《关于实施职业院校教师素质提高计划的意见》和教育部等部门《关于进一步加强高校实践育人工作的若干意见》精神的重要举措,是在“校培”层面上建立的保证教师进行企业实践锻炼长效机制,旨在培训一大批“双师型”教师,进一步推动和加强职业院校教师队伍建设,促进职业教育科学发展。教师工作站的目标就是让教师到生产一线,通过现场观摩、技能训练、专题讲解、交流研讨等形式实施,重点体验企业文化,了解企业生产组织方式、工艺流程、产业发展趋势等信息,熟悉企业相关岗位(工种)职责、操作规范、用人标准及管理制度等具体内容,学习所教专业在生产中应用的新知识、新技能、新工艺、新方法,增进对企业生产和产业发展的了解,培养广大教师的“职业气质”,并结合企业实践改进实践教学。
建立教师工作站同时也是安徽商贸职业技术学院(以下简称“我院”)国家高职骨干院校建设的一项重要任务,是学校推进校企深度合作的又一重要举措。教师工作站将为学校专业建设、课程建设、实训基地建设等方面提供更权威的信息和资
料,为学校创新人才培养模式,提升师资科研水平、
专业能力和社会服务能力以及紧密校企合作关系提供了一个良好平台。
二、高职院校软件技术专业建立
教师工作站的意义
我院的软件技术专业主要培养适应社会主义市场经济需要的,德、智、体全面发展的,具良好的职业素质、实践能力和创新意识,具备较强的基于 Java 技术和Android系统的应用软件开发能力、基本的软件测试能力,面向IT行业、软件企业,从事3G应用软件与动态网站的设计与开发、各类管理信息系统的初级编码、数据库系统的日常管理与维护、软件销售与技术支持等领域的工作,具有熟练技能的高素质技术应用型人才。[1]
其专业的人才培养方案中对于专业教师实践能力中指出必须具备“双师”素质,符合“双师”结构队伍要求,在企业一线从事过Java或Android系统开发人员。教师应密切关注行业、企业的发展态势,注意教育教学的理论研究与社会实践的紧密结合,以理论指导实践,以实践提升理论。
软件技术专业的教师工作站对教师而言,一方面有利于教师逐步向软件工程师或系统集成项目
管理工程师等复合方向发展,另一方面也有利于教师学习新技术,了解最新的软件开发技术和专业发
展趋势,增强指导教学实践的能力。高职院校的教师不仅要有专业理论知识,更要有能力培养出高素质的技能型人才。而校企合作教师工作站作为一个载体和基地,有较强的岗位实践经验,为软件技术专业“双师型”教师赴企业锻炼培养提供了尤为重要的平台。这种教师工作站兼顾了校企双方的需求,为校企之间开展紧密、继续的合作提供了条件。
三、专业教师如何开展教师工作站的工作
(一)明确进站工作目标
专业教师由于进站工作的时间不是很长,一般只有半年,不可能将企业所有方方面面的知识都学到手,所以在进站工作之前应当结合自身教学工作情况与系部主任及教研室主任沟通,明确进站工作目标。通常的目标有:掌握一到两门课的核心技术,能够胜任项目化课程的教学;对专业的人才培养方案进行调研,以便改进专业的课程体系;学习企业的经营管理模式,为校内实验或实训积累经验,等等。
(二)熟悉企业规章制度以及软件开发的流程
专业教师到企业后首先对企业的基本情况进行了解,熟悉环境,进行角色转换的准备。首先要了解公司组织结构、管理制度、业务范围,掌握企业工作流程。[2]其次要掌握企业软件开发的流程,如何做好需求分析,进行概要设计与详细设计,安排好编码与测试工作以及后期软件交付与验收。
(三)跟进企业软件开发项目
在熟悉了软件开发流程之后,教师如何有效地把握实际的软件开发,在今后的教学过程中实施项目化教学,了解切合社会需要的项目案例,最佳的办法就是跟进企业软件开发项目,在其中承担开发任务。在进站工作的半年时间里,笔者分别跟进了两个数字化校园项目,在其中担任配置管理员以及测试工作,着重提高了软件测试和UML系统分析与设计的能力,掌握了项目案例的第一手资料,在进站结束回到学校后,可以胜任两门课的项目化教学工作。
(四)积极参加企业技术培训
软件技术发展日新月异,在新兴的软件公司,人员流动频繁,不断有新的员工加入到企业中。各个部门经常会有目的性的组织一些技术培训,其中有些是系列性培训。通过参加这些培训,可以掌握最新最前沿的软件开发技术,学习使用最好最实用的软件开发平台,在以后的教学过程中可以将它们传授给学生,使之跟上软件技术时展的步伐,能够让他们在毕业时适合企业用人的需要。
(五)经常进行阶段性小结
在进站工作的期间,一方面的学习是企业给你的培训,另一方面由于企业员工自身工作也十分繁重,企业不可能派专人每天手把手对你进行辅导,大部分时间要靠自己利用企业的资源进行研究和探索。所以对于自己的所学应当及时地进行阶段性总结,以便巩固所学成果和开展下一阶段工作。总结的形式的是多样的,既可以撰写周记和月报,也可以抽时间与企业相关人员开工作汇报会或经验总结交流会,通过不断地总结和改进工作,提高在教师工作站的成效。
(六)做好实习学生的管理工作
教师工作站的企业往往也是学生校外的实训基地,教师应当妥善安排好学生学习和生活,培养学生的岗位适应能力与创新能力,结合专业实践和社会实践活动,实现学校教育与社会教育的交互结合,把“校企合作,工学结合”落到实处。
四、教师工作站工作经验的总结与推广
在结束教师工作站工作之后,教师应当将所学用于改进今后的教学,实施工学结合的人才培养模式。同时,要重视学生校内学习与实际工作的一致性,校内成绩考核借鉴企业实践考核,探索工学交替、任务驱动、项目导向、顶岗实习等有利于增强学生能力的教学模式。为此,一要完善课堂教学实训、阶段实训、综合模拟实训、产学合作、顶岗实习、社会调研等多种形式的实践教学体系,培养学生的岗位适应能力与创新能力;二要建设融实践教学、职业素质养成、职业能力培养、师资培训、技能鉴定等多功能于一体的校内外实习实训基地。以下将具体的从四个方面进行阐述。
(一)进行专业教学改革
高等职业教育肩负培养面向生产、建设、管理和服务第一线所需的高素质技能型人才的重任。软件技术专业人才培养必须从市场的人才需求调查入手,及时跟踪市场的人才需求变化,根据需求人才的职业岗位群及所需能力设计课程体系、安排教学内容。在撰写人才培养方案时,借助于在教师工作站对软件技术专业职业岗位的能力、知识要求的准确把握,制订出符合企业需要的人才培养方案,使软件技术专业的教学改革能够紧紧地围绕培养目标以岗位需求为导向、专业以行业发展为定位、课程设置以能力培养为本位、教学过程以职业活动为主线、质量评价以职业规范为标准。通过人才培养模式、教学方法改革,突出学生职业能力培养,提高学生的综合素质。
(二)邀请企业专家走进课堂
通过进站学习交流,在以后的教学过程中,邀请一部分专家走进课堂,有效参与学院的专业建设、课程改革、学生实训以及一定数量的专业课教学等工作,学生由此可以零距离地获得企业一线高技能人才的指导,缩短了他们在学院习得的知识与企业实际工作的距离,让学生清晰地知道企业用人的标准,明确学习的目标,激发自己的学习积极性,为他们今后进入企业打下了坚实的基础。同时,这些企业专家通过教学实践活动,对学院专职教师起到“传、帮、带”的作用,促进、提高了学院广大专职教师的实践教学能力和水平。[3]
(三)鼓励学生到企业去实习锻炼
目前软件的应用已经深入到企业、政府及我们日常生活的方方面面,其中大量的开发是由中小型软件企业承担的。由于中小型软件企业在体制、人力资源投入力度和关心程度等方面存在差异,开发软件产品时与专业软件企业有很大的不同,因此对中小型软件企业的软件项目管理进行研究,有助于提高软件项目管理水平,增强客户的满意度。
1软件项目管理与中小型软件企业
软件项目管理既具有一般项目管理的属性,又具有其特殊性,软件项目管理的重点在于标准的制定和推行。为了加强我国软件业的国际竞争力,需要发展一大批具有遵循开发过程与注重质量的文化氛围的企业。而制定和推行标准的目的正是要引导软件企业逐步走向成熟,使其工程和管理水平稳步提高,同时为它们提供全方位的服务,以支持软件产业的整体发展。
软件项目管理在20世纪70年代中期引起了广泛的注意。美国国防部通过研究发现了所谓的“软件危机”,即“管理是影响软件研发项目全局的因素,而技术只影响局部”。目前国内的中小型软件企业,由于其企业规模,研发能力等限制,造成其软件开发管理的问题非常普遍。不恰当的组织结构,工作流程不规范,缺乏项目管理概念和软件工程概念等是中小型软件企业面临的主要问题。
1.1中小型软件企业中软件开发的特点
国内的中小型软件企业虽然涉足软件开发业务,但对软件的认识停留在“程序员编代码”的水平上。对企业内部的软件开发缺乏管理意识,具体体现在以下几方面:首先,项目负责人项目管理经验不足,项目功能相对较少,涉及面相对狭窄;其次,项目开发人员较少,人员结构简单;再次,项目进度缺乏控制,项目成本预算较难,缺乏完整的项目文档;最后,缺乏后续维护。
1.2中小型软件企业中的软件开发组织
与专业软件公司的软件开发组织相比较,中小型软件企业中的软件开发工作机构小、人员少,开发人员待遇低,难以吸引高水平的人才,人才流失率达到50%以上。由于没有高水平的开发人员和技术管理人员,软件工作状况处于初级水平,软件开发不能按照软件工程的要求执行。
软件系统建立过程中需要多方面的人员:需求方人员、懂得软件项目管理的人员、软件程序员、系统分析员。普通企业由于对软件生产不了解,往往由软件需求方人员对软件工作直接管理。这个工作显然超过了其能力范围,不符合软件工作的相关原则。业务人员作为项目的负责人,既不能合理地计划软件开发工作,也不可能管理好软件工作中的各种风险,这将使软件开发处于无序的风险状态之中。
1.3中小型软件企业中的软件开发沟通
在需要团队协同工作的今天,沟通可以说已经变得无比的重要。在软件业,沟通可以说是快速学习和掌握新知识,达到技术上更高层次的最佳途径。如果小组成员在协调上出了漏洞,会导致很大的问题,所以项目负责人必须随时监控开发人员的工作,包括内容是否与要求发生偏差,进度是否滞后等等。
项目组与组织之间、项目组与项目组成员之间,甚至与一个项目组的不同成员之间,如果没有足够的沟通意识和沟通制度、沟通工具,就有可能造成信息不畅,从而加大项目失败的风险。中小型软件企业开发人员少,意味着不同人员的程序之间交互、接口相对少一些;缺少文档资料或者文档资料不规范也是软件项目管理中的普遍问题。由于讨论时忽略了某些情况,当大家都按当时的分工完成属于自己的工作后,才发现各个模块组合起来却不能形成一个完整的系统。其根源在于没有一个负责协调的人员不断监控整个开发过程。一旦有人中途退出开发队伍,其他人加入时,新来的人难以理解以前别人做好的代码,索性自己从头做起。
1.4中小型软件企业中的软件开发工作流程
与一个标准的软件开发流程相比,中小型软件企业内部的软件开发“节省”了不少步骤。例如不经过单元测试而直接进入系统测试等。由于这种测试不完全,真正运行系统,当调用某模块时,可能大部分时候都是正常数据,极少出现边界情况,但某些边界情况容易被忽视,很久之后才被发现。但是如果对每个模块进行单元测试时都进行边界测试,就会很容易消除这些隐患。
2中小型软件企业软件开发过程改进模型
软件开发模型是软件开发全部过程、活动和任务的结构框架。它能直观表达软件开发全过程,明确规定要完成的主要活动、任务和开发策略。一个企业的管理,大公司有大公司的方式,小公司也有小公司的模式,如果把别人的经验生搬硬套到自己身上,可能会适得其反。同样,管理一个软件项目也一样,大项目和小项目的方式不可能完全一样。但从另一个角度来看,项目的大与小并没有本质区别,很多方法是共通的。因此为了改进软件开发过程,可参考模型如图1
2.1制定软件开发规范
一切沟通与交流,首先都要有可见的依据,这可以从制定软件开发规范入手。具体可以从以下四个方面制订:软件开发工作流程规范、产品文档规范、软件开发文档规范、开发管理文档规范。编写规范,可以参考国家标准的计算机软件工程规范,也可以结合开发经验制定出适合本企业使用的开发规范。
详细制定这些文档使用方法和规则,要保证文档便于书写、形式一致,这不仅要有文字描述,还应制定相关文档模板,形式上要保证简洁明了、实用、符合使用习惯。根据项目规模的不同,还可以制定不同的文档模板,小型项目可以写一个相对简化的小型项目文档,复杂项目可以使用较全面和大型的文档模板。
2.2软件开发人员培训
软件开发中人的因素占有很大的比重,因此对软件人员的培训是非常重要的。一个团体的软件水平并不是个别程序员的程序水平,而是整体的认识和系统建设的水平。可以先在内部对软件开发人员进行培训,内容包括软件工程、己经制订的各种规范、项目管理知识。通过共同分析软件工程对软件开发和开发者的益处,可以得到开发人员的认同,以便共同遵守和执行初期规范,更好地完成开发目标。
2.3加强软件生产过程规范性
软件开发是一个知识密集型领域,对人才的依赖很强。加强生产过程的规范性并规范管理,可以加强人的执行能力。
在中小型软件企业中,很少有成本核算和严格的进度控制。影响项目的因素也比较多:需求的提出比较随便,甚至业务需求还不明确的时候就要求程序员开始编程序,没有合理的措施控制透彻的分析业务需求;时间进度由领导规定,而不是根据需求客观确定,这样使软件质量根本无法保障。因此要通过加强管理使软件开发过程可视化,软件开发工
作协调、有效。
在规则明确、组织机构确定、有一定的理论认识之后,可以通过一些管理要求,强制执行软件工程的一些基本过程,要求的提出要简单明了。例如:项目要有正式立项启动、项目结项,有时间控制要求、计划要求。要求项目有开发计划,计划中确定开发工作的人员保障、开发周期、开发进度计划,并允许项目进行中在一定范围内调整计划与进度。上级领导也应出面协调和帮助解决相应问题。
2.4软件配置管理机制
软件开发不是一个短期行为,但是,由于许多开发工作因缺少管理而成为个人行为,对于软件成果没有保护意识,更不能达到软件的共享与重用。通过“统一配置管理”这一具体的做法,能够强化软件完成后的总结工作。
建立基本的软件配置管理机制,在开发中和开发后都要求程序员及时备份源文件。进行这项工作要首先选择一套适合的配置管理软件,如Visual SourceSafe、cvs(Concurrent Versions System)等。项目主管应该要求程序员在开发全过程中使用软件来管理源文件,在全过程的配置管理的基础上,整个项目组更容易完成统一编码、测试组装产品等工作。
以上步骤,可以保障内部开发工作达到初级的项目可视化,在软件开发部门内部建立起对满足业务需求完成的信心,以满足业务需求的承诺。通过这些工作,可以在企业内获得对软件规范性的一定认识以及对执行方式的认同,这对软件开发工作会有不同程度的帮助。
2.5持续改进过程和管理模型
2信管专业的计算机教育总体规划
2.1课程体系设置
课程体系是帮助学生建立完整知识结构的前提条件,如何理顺本专业的课程体系是提高计算机教育水平的关键问题[3]。根据信管专业的培养目标,相应的计算机教育理论体系应分为计算机基础课程模块、信息管理课程模块、计算机软件开发核心课程模块和信息系统应用模块4个层次。(1)计算机基础课程模块,包括计算机专业的基础课程:C/C++语言程序设计、数据结构与算法、操作系统、计算机组成原理和计算机网络技术等。(2)信息管理课程模块,包括信息加工、管理、使用方面的课程,如信息化概论、信息资源开发与管理、信息组织、信息检索等,或根据院校特点开设有领域特色的信息化概论课程,如医院信息学等。(3)计算机软件开发核心课程模块,主要学习各种常用的系统开发技术,包括C#应用编程、Java网络编程技术、Web数据库应用系统开发等。(4)信息系统应用模块,包括管理信息系统、信息系统分析与设计、信息系统安全、信息系统项目管理。
2.2专业方向的设置
本专业的社会岗位需求多层次。在企事业单位信息化建设实施中,既需要信息系统开发人才,也需要信息化工程管理人才,信息化系统实施后还需要网络管理和维护人才。因此在培养模式上设置3个专业方向,分别为:系统开发方向、网络管理方向、信息管理方向。3个方向的知识结构有所不同:系统开发方向培养技术型人才,主要掌握各种系统开发技术;网络管理方向培养工程型人才,主要掌握网络工程管理和信息安全维护;信息管理方向培养复合型人才,主要学习如何用信息系统支撑先进的管理思想。3个方向都必须将信息系统应用模块的课程作为必修课程,将管理思想和计算机技术知识有机地协调配合起来。与前两类人才相比,复合型人才更具有竞争力。他们具有信息分析能力与企业管理创新的知识,是具有驾驭信息资源知识与能力的新型管理人才。学生可以根据自己的兴趣来选择发展方向,无论哪种类型人才,掌握一种系统开发技术都是进入企业就业的敲门砖。根据以上两点,我们设计了信息管理与信息系统专业的计算机教育的课程体系,每一层开设具有代表性的课程。
3建立提高软件开发能力培养体系的改革实践
3.1创新基础课程教学,注重程序设计逻辑思维训练基础课程是一个专业的基石,基础是否学好直接影响学生对后续课程的学习兴趣和未来的职业定位。因此要强化基础教学,鼓励教师进行创新教学,引入先进可行的教学方法,并在教学中注意培养学生的职业关键能力。所谓学生的职业关键能力是指学生从事软件开发职业所具有的职业素养,包括逻辑思维能力、举一反三能力、自学和独立解决问题能力、对软件开发工作的兴趣等。在基础课程中,程序设计课程是软件开发人才培养课程体系中不可或缺的组成部分,它的教学效果直接影响着软件开发人才培养的成败,其最终目的是培养软件工具应用者的程序设计能力和程序设计思维。在授课过程中,教师往往陷入一个误区:过于注重语句、语法等程序设计语言所涉及基本概念的讲解,忽视在构建程序过程中应用于分析、解决问题的一种逻辑思维的训练,忽视对整体知识综合应用能力的训练。这种“只见树木,不见森林”的教学就是造成学生动手解决实际问题能力差的直接原因。因此程序设计课程教学中应注重把握两个方面的平衡:(1)专业技能培养目标要清晰。教学不仅要注重单项知识的讲解练习,更要加大对应用整体知识的能力训练及解决问题的思维训练。(2)专业技能教学要与职业关键能力培养有机结合。在教学组织形式上,吸纳软件企业的工作模式应用于教学;在教学设计上,应把持知识的整体与局部关系,灵活应用各种教学方法和手段来优化课堂教学。学生在学习、实践的双环节中,也要完善自身知识结构,构建自主工作行为。
3.2以项目驱动教学法来设计应用类专业课程
项目驱动式教学法是一种行为引导式的教学形式,是以项目为主体的职业行为引导的教学方式,是一种通过组织学生真实地参加项目设计、履行和管理,完全在项目实施过程中完成教学任务的过程[4]。项目教学法通过项目对学生进行工程设计和综合能力的全面培养,是实现高校毕业生和企业无缝衔接的最好的教学方法之一。在面向应用的专业课程中,网络编程技术、Web数据库应用等课程比较适合项目教学法,这些课程直接面向应用,与日常生活和工作息息相关,偏重于实践,学生比较感兴趣。首先选择合适的项目。教师所选的项目要贴近实际,可以从科研课题、技术开发项目或社会实际需要中选择,项目规模适中,太大或太复杂都不利于教学。所选项目最好是教师熟悉或亲自开发过的,这样对项目的开发流程和可能遇到的问题有充分的认识和准备,能在学生学习过程中给予指导和帮助,有利于项目教学法的顺利开展。其次制订教学计划。教师要制订教学计划,案例项目中要包含该课程的主要知识点,同时准备相关的学习资料,以供学生在项目开发中查阅,拓展其知识面,培养学生独立解决问题的能力和自学能力。然后实施项目教学法。在开展一门全新课程时,学生一定是感到抽象和困难的。教师先将项目分成几个模块,每个模块的功能应该类似,选取其中一个模块逐步进行分析、演示其开发过程;学生进行项目模仿开发。模仿是一个很好的学习过程,学生从中既可以掌握各个环节的知识点,又可在项目的成功中增强自信,激发创作兴趣,从而主动学习并拓展知识面。在一个完整的模块演示教学完以后,大部分的课程知识点也已经完成教学,学生将参照模仿或自我创新来完成其他模块的编写,然后把各个模块整合起来,形成一个完整的项目。在这一过程中,学生不但快速完整地学习到一个系统的开发过程,还可以举一反三,运用到其他案例项目上。最后进行项目总结和评价。项目完成后,组织教师对学生项目进行评价,给出指导和建议,并进行项目总结和知识的归纳,鼓励学生对项目进行完善和扩展,扩充知识点,增加分析问题、解决问题和自我学习的能力。项目教学法将一个应用课程的教学建立在一个工程项目的完整开发过程上,充分体现了“做中学”和“学中做”的特点,有力地调动了学生的兴趣,激发了学生潜力,使枯燥无味的理论学习变成了一次有实际意义的工程实践。学生不但获得了宝贵的工程实践经验,还锻炼了独立分析、解决问题的能力和自学能力,也通过项目的成功开发增加了软件开发的兴趣,利于日后选择从事软件开发或相关行业的工作,从而达到培养学生职业素养的目的。
3.3建立与企业无缝衔接的实践教学平台
实践教学环节在这里指毕业生在最后一年或两年所进行的生产实习或顶岗实习。这是本科教育的最后一个重要环节,它将决定毕业生能否获得真正的实践经验,胜任工作岗位,赢得就业。正如前文所述,目前大多数信息管理专业的毕业生存在种种缺陷,以致就业比较困难。那么症结就在于将毕业生推向社会前的最后一个实践环节没有做好。为了改变现状,建立一个与企业无缝衔接的实践教学平台将是一个很好的解决方案。与企业无缝衔接是指学校按照企业对人才的要求进行培养,如订单式培养或岗位性培养,用真实的项目或工作环境打造、锻炼人才,使其既有理论又有管理实践经验,同时具有本专业的职业关键能力和发展潜力。建立与企业无缝衔接的实践教学平台的途径有:1)校企合作办学,共同培养学生,缩短与企业的“最后一公里”路程。目前社会上有许多培训机构可以对学生进行就业前的技术培训,价格不菲,但还是很受欢迎。因为培训机构能提升他们的能力,带给他们实际的实践经验,从而增加就业机会,甚至可以推荐就业。尽管学校在教学和体制上做了许多改革和努力以使我们的毕业生尽量找到工作,但社会的需求是多变的,技术的进步是变化的,学校的脚步总是落后的,当然也包含个人对自我要求,因此技术培训机构才会盛行。与社会培训相比,有些软件培训机构则和学校进行合作办学,帮助培养学生。由于培训机构的项目实践环境比较真实,甚至是培训机构所接项目的一部分,而且师资是来自一线的开发人员,所营造的实践教学环境自然比学校教师所营造的要好,使学生将来更能适应工作环境。与培训机构联合办学是“双赢”的,首先,培训机构获得了长期稳定的生源,可以降低同行业的培训费用,这对学生是有益的。其次,学校通过培训机构合作,首先促使本校教师学习先进的技术提高教学水平,第二,使本校学生更好地就业或发展,树立荣誉,发展更多生源,促进本专业的发展,第三,可以监督培训机构使其保持高质量的教学培训水平,否则不继续合作。此外,校企合作办学机制应该是灵活的,学生可以依据所选的专业方向自由地选择参加或不参加。校企合作办学是一个趋势,例如青岛大学计算机学院就与印度IT公司合作,订单式培养软件开发人才,学费每年高达9000元,招生人数多达350人。所以作为学校一方可能要更多地考虑自身在职业教育上的缺陷,为本校学生提供多方位的选择,特别在教育费用上,社会机构培训比校企合作办学的培训费用肯定更昂贵。2)培养“双师型”教师,丰富实践教学内容,与前沿技术发展接轨。实践教学平台不仅要有接近实际的教学内容和成熟有效的教学模式,还要有教学经验丰富和技术过硬的“双师型”教师,才能保证实践教学效果。与培训机构合作固然好,但专业的发展不能依靠外力,还要提高自身的软硬件实力。长久来看,建立一支技术过硬、教学水平高的“双师型”实践教学队伍是必需的,这是提高学校的软实力。
3.4促进科技创新体系建设
鼓励学生参加各种科技创新活动,例如管理类竞赛、计算机软件应用大赛等。对于参赛获奖的学生给予一定的学分和奖励,也鼓励教师积极参与学生的科技创新辅导,无论获奖与否都给予教师一定的工作量奖励,从而形成一个积极进取的科技创新环境。鼓励学生考取相关的职业证书。信息管理专业学生可以考取的职业资格证书有:工业与信息化部组织的“全国计算机软件开发专业人才(高级/中级)”证书、全国信息化工程师岗位技能证书(软件管理)(中级)、信息系统项目管理师、网络工程师、信息系统监理师、人力资源与社会保障部组织的“助理企业信息管理师(三级)”证书、企业人力资源管理师(四级)。职业证书表明了一个行业的职业标准,通过考取职业证书的学习,使学生了解市场对就业者的劳动技能要求、促使自己提高职业修养,建立全面系统的职业知识体系。
2学校投入不足
软件实训过程中需要使用最新软件开发技术和开发工具,这些软件和工具往往对计算机配置要求也很高,为了保证能正常快速地运行这些软件,实训室中的计算机就需要和软件保持同步更新,学校很多实训室存在老化和更新不及时的现象,造成很多新的软件不能安装和运行、或者运行速度慢的情况,影响了课程教学质量和学生学习的积极性。在高职学生进行软件开发的过程中,教师不仅仅要指导学生,还要对学生的开发工作进行监督和对开发进程进行监控,以保证学生软件开发工作的进度以及所开发软件系统的质量。这需要教师投入大量的时间去跟踪和监督,但是我们大多数教师都承担了很繁重教学任务,实训也似乎成了教师业余时间的工作,很难满足学生的需求,也不能很好地监控每一个小组所有成员的开发工作。
项目管理是在一定的约束条件下,以高效率地实现项目业主的目标为目
的,以项目经理个人负责制为基础和以项目为独立实体进行经济核算,并按照项目内在的逻辑规律进行有效的计划、组织、协调、控制的系统管理活动。
2、为什么要有项目管理?
没有项目管理,项目也有可能成功。但没有管理的项目,很难保证项目
的利润空间,对公司来说,亏损的风险就大。所以我们要有项目管理,以保证公司在总体上是盈利的,注意不是每一个项目都要盈利。
另外,有了项目管理,就有了管理改进的基础,无论刚开始的项目管理多么糟糕,只要有管理,就有了改进的可能性,至于能不能得到改进,以及改进的快慢,则取决于两个因素:一个是人,特别是各级管理者;另一个是利益。关键是“利益”,准确的说是“利益的分配”,在权责利明确的前提下,人才能充分的发挥作用。还需要指出的是“利益”是多元的,这里的多元不仅指利益的具体形式,而且指利益的受众是多元的,包括客户方相关人员个人的利益。
3、项目管理的发展与现状。
今天,项目管理作为一种现代化管理方式在国际上已获得了广泛的应用,从最初的国防、航天、建设工程领域,迅速发展到电子、通信、计算机、软件开发、金融等行业以及政府机关的项目管理工作。随着计算机、网络系统的迅速发展,项目管理技术的不断进步,项目管理软件产品层出不穷,其功能、特点、应用对象也各不相同。当前,越来越多的企业和组织在内部推广项目管理的理论方法及管理模式,如果都采用项目管理软件进行管理,效果就更加明显,可以节省大量的资源和财富。国外90%以上的项目管理都采用软件进行,但我国在这方面的应用还不到10%。新世纪项目管理在中国的迅速兴起,给软件企业的发展带来了前所未有的发展机遇。
项目管理在软件开发中的应用的成因
随着信息技术的飞速发展,软件产品的规模也越来越庞大,个人单打独斗的作坊式开发方式已经越来越不适应发展的需要。各软件企业都在积极将软件项目管理引入开发活动中,对开发实行有效的管理。从概念上讲,软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。实际上,软件项目管理的意义不仅仅如此,进行软件项目管理有利于将开发人员的个人开发能力转化成企业的开发能力,企业的软件开发能力越高,表明这个企业的软件生产越趋向于成熟,企业越能够稳定发展(即减小开发风险)。同时,随着软件开发规模及开发队伍的逐渐增大,软件开发不再是向过去那样一二个开发人员即可解决的事情。迫切需要一种开发规范来规范每个开发人员、测试人员与支持人员的工作,每个项目组成员按约定的规则准时完成自己的工作。同时采用规范化管理,专业分工也可以降低对开发人员的要求,从而降低产品研发成本。
软件开发是一项复杂的系统工程,牵涉到各方面的因素,实际工作中,经常会出现各种各样的问题,甚至面临失败。如何总结、分析失败的原因,得出有益的教训,对一个公司来说,是在今后的项目中取得成功的关键。
早在20世纪60年代中期,人们就发现软件的生产出现了“问题”,主要表现在生产过程不规范,缺乏管理。后来,人们在软件工程方法学中引入了工程的概念、原理、技术和方法,这种思想在一定程度上解决了软件生产过程中遇到的问题。但是直至80年代还是没有提出一套管理软件开发的通用原则,软件管理不善的问题依旧在大范围内存在。
目前的软件开发正逐步趋向于复杂化、多元化,大多数开发团队中都会出现同时开发多个版本、开发/维护工作并存、多地点同时开发等情况,给软件开发管理带来了前所未有的困难。如果管理不善,必将造成版本混乱,各个开发人员的工作相互交叉、干扰,整个开发团队的工作在一种无秩序的不良状况下运行,严重影响软件产品开发的进度和质量。
因此,随着软件开发的深入、各种技术的不断创新以及软件产业的形成,人们越来越意识到软件过程管理的重要性,管理学的思想逐渐融入软件开发过程中,应用开发的项目管理日益受到重视。而项目管理技术的发展与计算机技术的发展是密不可分的,随着计算机性能的迅速提高,大量的项目管理软件涌现出来。它们可以用于各种商业活动,提供便于操作的图形界面,帮助用户制定任务、管理资源、进行成本预算、跟踪项目进度等。
软件项目管理常见问题及解决方案
对于软件开发项目中,经常出现两种极端情况,一种是创造了新的生产率和质量的纪录;一种则完全是一场灾难,不是被取消就是拖延很长时间。前者如在很短的时间内,为了赶进度,在几乎不可能的时间内开发出一套软件产品,创造了软件开发的记录,满足了上级所要求的上机日期,由于开发时间太短,过于仓促,上机时,问题百出,试运行时间长达几个月或一年半载的,而且程序一改再改,维护工作量大。
后者,如某套系统未弄清楚需求,或因设计问题,开发失败。通过提炼这些成功和失败的例子,软件项目成功或失败的根本原因可能会更清晰一些。
目前我国大部分软件公司,无论是产品型公司还是项目型公司,都没有形成适合自己公司特点的软件开发管理模式,虽然有些公司根据软件工程理论建立了一些软件开发管理规范,但并没有从根本上解决软件开发的质量控制问题。这样导致软件产品质量不稳定,软件后期的维护、升级出现麻烦,同时最终也会损害用户的利益。
分析目前项目管理需要改进的问题可以从几种相关角色的角度去考虑:项目经理、项目组成员、公司管理人员、市场人员、客户等。
问题一:缺乏项目管理系统培训(相关对象:项目经理、管理人员)
项目经理在项目管理方面的培训较少或不够系统。项目经理或管理人员不了解项目管理的知识体系和一些常用工具和方法,所以在实际工作中没有项目管理知识的指导,完全依靠个人现有的知识技能,管理工作的随意性、盲目性比较大。在软件企业中,以前几乎没有专门招收项目管理专业的人员来担任项目经理(甚至很少是管理专业的),被任命的项目经理主要是因为他们能够在技术上独当一面,而管理方面特别是项目管理方面的知识比较缺乏。
解决方案:项目经理接受系统的项目管理知识培训是非常必要的,有了专业领域的知识与实践,再加上项目管理知识与实践和一般管理的知识和经验的有机结合,必能大大提高项目经理的项目管理水平。应实行项目经理知识技能资格考核制度,让项目经理自觉补充学习项目管理的知识和一些常用工具和方法。
问题二:项目计划意识问题(相关对象:项目经理)
项目经理对总体计划、阶段计划的作用认识不足。项目经理认为计划不如变化快,项目中也有很多不确定的因素,做计划是走过场,因此制定总体计划时比较随意,不少事情没有仔细考虑;阶段计划因工作忙等理由经常拖延,造成计划与控制管理脱节,无法进行有效的进度控制管理。没有计划或者是随意的不负责任的计划的项目是一种无法控制的项目。
解决方案:在高技术行业,日新月异是主要特点,因此计划的制定需要在一定条件的限制和假设之下采用渐近明细的方式进行不断完善。提高项目经理的计划意识,采用项目计划制定相关各种知识、技术、工具,加强对开发计划、阶段计划的有效性进行事前事后的评估。
问题
三、管理意识问题(相关对象:项目经理)
部分项目经理没有意识到自己项目经理的角色,从总体上去把握管理整个项目,而是埋头于具体的技术工作,造成项目组成员之间忙的忙、闲的闲,计划不周、任务不均、资源浪费。在软件企业中,项目经理大多是技术骨干,技术方面的知识比较深厚,但无论是项目管理知识,还是项目管理必备的技能、项目管理必备的素质都有待补充和提高,项目管理经验也有待丰富。有些项目经理对于一些不服管理的技术人员,没有较好的管理方法,工作不好安排的工作只好自己做。另外由于工作分解结构设计的合理性,项目任务无法有效、合理地分配给相关成员,以达到“负载均衡”。
解决方案:加强项目管理方面的培训,并通过对考核指标的合理设定和宣传引导项目经理更好地做好项目管理工作。技术骨干在担任项目经理之前,最好能经过系统的项目管理知识,特别是其中的人力资源管理、沟通管理的学习,并且在实际工作中不断提高自己的管理素质,丰富项目管理经验,提高项目管理意识。
问题四:沟通意识问题(相关人员:项目经理、项目组成员)
在项目中一些重要信息没有进行充分和有效的沟通。在制定计划、意见反馈、情况通报、技术问题或成果等方面与相关人员的沟通不足,造成各做各事、重复劳动,甚至造成不必要的损失;有些人没有每天定时收邮件的习惯,以至于无法及时接收最新的信息。
解决方案:制定有效的沟通制度和沟通机制,对由于缺乏沟通而造成的事件进行通报作为教训提醒,以提高沟通意识;沟通方式应根据内容而多样化,讲究有效率的沟通;通过制度规定对由于未及时收取邮件而造成损失的责任归属;对于特别重要的内容要采用多种方式进行有效沟通以确保传达到位,例如除发送邮件外还要电话提醒、回执等,重要的内容还要通过举行各种会议进行传达。
问题五:风险管理意识问题(相关人员:项目经理)
项目经理没有充分分析可能的风险,对付风险的策略考虑比较简单。项目经理在做项目规划时常常没有做专门的风险管理计划文档,而是合并在项目计划书中。有些项目经理没有充分意识到风险管理的重要性,对计划书中风险管理的章节简单应付了事,随便列出几个风险,随便地写一些简单的对策,对于后面的风险防范起不到什么指导作用。
解决方案:通过学习项目管理知识掌握风险识别、量化、对策研究、反应控制的工具和方法掌握项目风险管理所必备的知识。通过加强对项目规划中风险管理计划的审核提高项目组的风险管理意识。总结本行业项目中常见的风险及其对策作为风险管理计划中必要的风险内容,并切实评估相应对策的有效性和可行性。
问题六:不重视项目经验的总结(相关人员:项目经理、管理人员)
项目经理在项目结束时有些是因为自身对写文档工作的兴趣或意识,或
者是因为紧接着要参加下一个项目,总体对项目总结的重视程度不够。有些是项目总结报告一再拖延,有些是交上来的报告质量较低,敷衍了事。
解决方案:在制度上鼓励和加强项目经验总结工作,使得项目总结及时并且具有指导意义而不是走过场。
问题七:项目干系人相关问题(相关人员:项目经理、项目成员、客户)
在范围识别阶段,项目组对客户的整体组织结构、有关人员及其关系、
工作职责等没有足够了解以致于无法得到完整需求或最终经权威用户代表确认的需求。由于项目经理的工作问题,客户参与程度部不高,客户方相关责任人不明确或对范围和要求责任心不强,提出的要求具有随意性,项目前期对需求的确认不够积极;或者是多个用户代表各说各话、昨是今非但同时又要求项目尽早交付;项目后期需求变化随意,造成项目范围的蔓延,进度的拖延,成本的扩大。
解决方案:项目的目的就是实现项目干系人的需求和愿望。项目干系人管理应当从项目的启动开始,项目经理及其项目成员就要分清项目干系人包含哪些人和组织,通过沟通协调对他们施加影响,驱动他们对项目的支持,调查并明确他们的需求和愿望,减小其对项目的阻力,以确保项目获得成功。
问题八:项目团队内分工协作问题(相关人员:项目经理、项目成员)
项目团队内部有时由于各阶段不同角色或同阶段不同角色之间的责任
分工不够清晰而造成工作互相推诿、责任互相推卸的现象,有时各阶段不同角色或同阶段不同角色之间的责任分工比较清晰但是各项目成员只顾完成自己那部分任务、不愿意与他人协作。这些现象或多或少地造成了项目团队内部资源的损耗,从而影响了项目的进展。
解决方案:项目经理应当对项目成员的责任进行合理的分配并清楚地说明,同时应强调不同分工、不同环节的成员应当相互协作,共同完善。
以上对软件开发项目管理中出现的问题的分析还不够深入,也无法列举所有遇到或将遇到的问题,解决方案也要根据实际情况进行调整,希望引起对这些问题更多的思考和改进。
结束语:项目管理虽然没有非常高深的理论,但要真正实施起来,也绝非易事。对于软件开发企业而言,这不是一个小的改变,而是一种变革,企业需要为此付出艰苦的努力,宣传并树立公司范围内的项目管理文化十分重要。从而在实践中锻炼提高,解决各种各样的问题,使项目管理工作越做越好。
1 现状分析
当前信息化建设浪潮席卷全球,中国也制定了“加速发展信息产业,大力推进信息化,以信息化带动工业化”的发展战略。随着信息技术的发展,信息化给企业生产和管理带来了根本性变革,信息技术将企业组织的各种经营管理职能和机制有机结合起来。对企业来说,一个重要的挑战就是如何改造企业使其有效地运用信息技术,适用信息社会,在全球竞争中立于不败之地。信息化建设不仅存在技术问题,更需要管理的协调配合,管理的科学化对信息系统有着至关重要的影响。信息管理与信息系统专业是一个管理科学与计算机信息技术相结合的专业,所培养出来的学生应该是既懂管理又懂计算机技术的应用型人才,在当前企事业单位的信息化建设中应最能发挥本专业人才所具有的专业技能和职业素养。
然而,信息管理与信息系统专业毕业生在应聘工作岗位时却常常遇到尴尬情况:管理技能不如管理专业的学生,计算机技能不如计算机专业的学生,人才市场上很少有专门为信息管理与信息系统专业量身定制的就业岗位。当前我国进入信息化建设的期,需要大量的信息化建设人才,但从我国信息化建设现状来看,企业内部在信息化建设方面的岗位需求没有进行专业细分,它将管理信息系统软件的分析、设计、开发、引进、实施、维护和信息管理等工作需求统归为做软件。因此,企业招聘应届毕业生的入门要求就是能够编程,包括企业内部覆盖销各职能部门的信息系统软件,也包括企业各层次网站系统开发。而政府机关、事业单位则以网站系统开发和工作流管理为主。
对信息管理专业人才来说,软件开发技能是未来就业的敲门砖,而管理理论思想和方法的掌握则是其未来成为企业CIO的奠基石。笔者将探讨如何进行信管专业计算机课程教育改革,提高学生的软件开发能力,增加就业机会。
2 信管专业的计算机教育总体规划
2.1 课程体系设置
课程体系是帮助学生建立完整知识结构的前提条件,如何理顺本专业的课程体系是提高计算机教育水平的关键问题。根据信管专业的培养目标,相应的计算机教育理论体系应分为计算机基础课程模块、信息管理课程模块、计算机软件开发核心课程模块和信息系统应用模块4个层次。
(1)计算机基础课程模块,包括计算机专业的基础课程:C/C++语言程序设计、数据结构与算法、操作系统、计算机组成原理和计算机网络技术等。
(2)信息管理课程模块,包括信息加工、管理、使用方面的课程,如信息化概论、信息资源开发与管理、信息组织、信息检索等,或根据院校特点开设有领域特色的信息化概论课程,如医院信息学等。
(3)计算机软件开发核心课程模块,主要学习各种常用的系统开发技术,包括C#应用编程、Java网络编程技术、Web数据库应用系统开发等。
(4)信息系统应用模块,包括管理信息系统、信息系统分析与设计、信息系统安全、信息系统项目管理。
2.2 专业方向的设置
本专业的社会岗位需求多层次。在企事业单位信息化建设实施中,既需要信息系统开发人才,也需要信息化工程管理人才,信息化系统实施后还需要网络管理和维护人才。因此在培养模式上设置3个专业方向,分别为:系统开发力’向、网络管理方向、信息管理方向。3个方向的知识结构有所不同:系统开发方向培养技术型人才,主要掌握各种系统开发技术;网络管理方向培养工程型人才,主要掌握网络工程管理和信息安全维护;信息管理方向培养复合型人才,主要学习如何用信息系统支撑先进的管理思想。3个方向都必须将信息系统应用模块的课程作为必修课程,将管理思想和计算机技术知识有机地协调配合起来。
与前两类人才相比,复合型人才更具有竞争力。他们具有信息分析能力与企业管理创新的知识,是具有驾驭信息资源知识与能力的新型管理人才。学生可以根据自己的兴趣来选择发展方向,无论哪种类型人才,掌握一种系统开发技术都是进入企业就业的敲门砖。
根据以上两点,我们设计了信息管理与信息系统专业的计算机教育的课程体系,每一层开设具有代表性的课程,如图1所示。
3 建立提高软件开发能力培养体系的改革实践
3.1 创新基础课程教学,注重程序设计逻辑思维训练
基础课程是一个专业的基石,基础是否学好直接影响学生对后续课程的学习兴趣和未来的职业定位。因此要强化基础教学,鼓励教师进行创新教学,引入先进可行的教学方法,并在教学中注意培养学生的职业关键能力。所谓学生的职业关键能力是指学生从事软件开发职业所具有的职业素养,包括逻辑思维能力、举一反三能力、自学和独立解决问题能力、对软件开发工作的兴趣等。
在基础课程中,程序设计课程是软件开发人才培养课程体系中不可或缺的组成部分,它的教学效果直接影响着软件开发人才培养的成败,其最终目的是培养软件工具应用者的程序设计能力和程序设计思维。在授课过程中,教师往往陷入一个误区:过于注重语句、语法等程序设计语言所涉及基本概念的讲解,忽视在构建程序过程中应用于分析、解决问题的一种逻辑思维的训练,忽视对整体知识综合应用能力的训练。这种“只见树木,不见森林”的教学就是造成学生动手解决实际问题能力差的直接原因。因此程序设计课程教学中应注重把握两个方面的平衡:
(1)专业技能培养目标要清晰。教学不仅要注重单项知识的讲解练习,更要加大对应用整体知识的能力训练及解决问题的思维训练。
(2)专业技能教学要与职业关键能力培养有机结合。在教学组织形式上,吸纳软件企业的工作模式应用于教学;在教学设计上,应把持知识的整体与局部关系,灵活应用各种教学方法和手段来优化课堂教学。学生在学习、实践的双环节中,也要完善自身知识结构,构建自主工作行为。
3.2 以项目驱动教学法来设计应用类专业课程
项目驱动式教学法是一种行为引导式的教学形式,是以项目为主体的职业行为引导的教学方式,是一种通过组织学生真实地参加项目设计、履行和管理,完全在项目实施过程中完成教学任务的过程。项目教学法通过项目对学生进行工程设计和综合能力的全面培养,是实现高校毕业生和企业无缝衔接的最好的教学方法之一。在面向应用的专业课程中,网络编程技术、web数据库应用等课程比较适合项目教学法,这些课程直接面向应用,与日常生活和工作息息相关,偏重于实践,学生比较感兴趣。
首先选择合适的项目。教师所选的项目要贴近实际,可以从科研课题、技术开发项目或社会实际需要中选择,项目规模适中,太大或太复杂都不利于教学。所选项目最好是教师熟悉或亲自开发过的,这样对项目的开发流程和可能遇到的问题有充分的认识和准备,能在学生学习过程中给予指导和帮助,有利于项目教学法的顺利开展。
其次制订教学计划。教师要制订教学计划,案例项目中要包含该课程的主要知识点,同时准备相关的学习资料,以供学生在项目开发中查阅,拓展其知识面,培养学生独立解决问题的能力和自学能力。
然后实施项目教学法。在开展一门全新课程时,学生一定是感到抽象和困难的。教师先将项目分成几个模块,每个模块的功能应该类似,选取其中一个模块逐步进行分析、演示其开发过程;学生进行项目模仿开发。模仿是一个很好的学习过程,学生从中既可以掌握各个环节的知识点,又可在项目的成功中增强自信,激发创作兴趣,从而主动学习并拓展知识面。在一个完整的模块演示教学完以后,大部分的课程知识点也已经完成教学,学生将参照模仿或自我创新来完成其他模块的编写,然后把各个模块整合起来,形成一个完整的项目。在这一过程中,学生不但快速完整地学习到一个系统的开发过程,还可以举一反三,运用到其他案例项目上。
最后进行项目总结和评价。项目完成后,组织教师对学生项目进行评价,给出指导和建议,并进行项目总结和知识的归纳,鼓励学生对项目进行完善和扩展,扩充知识点,增加分析问题、解决问题和自我学习的能力。
项目教学法将一个应用课程的教学建立在一个工程项目的完整开发过程上,充分体现了“做中学”和“学中做”的特点,有力地调动了学生的兴趣,激发了学生潜力,使枯燥无味的理论学习变成了一次有实际意义的工程实践。学生不但获得了宝贵的工程实践经验,还锻炼了独立分析、解决问题的能力和自学能力,也通过项目的成功开发增加了软件开发的兴趣,利于日后选择从事软件开发或相关行业的工作,从而达到培养学生职业素养的目的。
3.3 建立与企业无缝衔接的实践教学平台
实践教学环节在这里指毕业生在最后一年或两年所进行的生产实习或顶岗实习。这是本科教育的最后一个重要环节,它将决定毕业生能否获得真正的实践经验,胜任工作岗位,赢得就业。正如前文所述,目前大多数信息管理专业的毕业生存在种种缺陷,以致就业比较困难。那么症结就在于将毕业生推向社会前的最后一个实践环节没有做好。为了改变现状,建立一个与企业无缝衔接的实践教学平台将是一个很好的解决方案。与企业无缝衔接是指学校按照企业对人才的要求进行培养,如订单式培养或岗位性培养,用真实的项目或工作环境打造、锻炼人才,使其既有理论又有管理实践经验,同时具有本专业的职业关键能力和发展潜力。
建立与企业无缝衔接的实践教学平台的途径有:
1)校企合作办学,共同培养学生,缩短与企业的“最后一公里”路程。
日前社会上有许多培训机构可以对学生进行就业前的技术培训,价格不菲,但还是很受欢迎。因为培训机构能提升他们的能力,带给他们实际的实践经验,从而增加就业机会,甚至可以推荐就业。尽管学校在教学和体制上做了许多改革和努力以使我们的毕业生尽量找到工作,但社会的需求是多变的,技术的进步是变化的,学校的脚步总是落后的,当然也包含个人对自我要求,因此技术培训机构才会盛行。与社会培训相比,有些软件培训机构则和学校进行合作办学,帮助培养学生。由于培训机构的项目实践环境比较真实,甚至是培训机构所接项目的一部分,而且师资是来自一线的开发人员,所营造的实践教学环境自然比学校教师所营造的要好,使学生将来更能适应工作环境。与培训机构联合办学是“双赢”的,首先,培训机构获得了长期稳定的生源,可以降低同行业的培训费用,这对学生是有益的。其次,学校通过培训机构合作,首先促使本校教师学习先进的技术提高教学水平,第二,使本校学生更好地就业或发展,树立荣誉,发展更多生源,促进本专业的发展,第三,可以监督培训机构使其保持高质量的教学培训水平,否则不继续合作。此外,校企合作办学机制应该是灵活的,学生可以依据所选的专业方向自由地选择参加或不参加。
校企合作办学是一个趋势,例如青岛大学汁算机学院就与印度IT公司合作,订单式培养软件开发人才,学费每年高达9000元,招生人数多达350人。所以作为学校一方可能要更多地考虑自身在职业教育上的缺陷,为本校学生提供多方位的选择,特别在教育费用上,社会机构培训比校企合作办学的培训费用肯定更昂贵。
2)培养“双师型”教师,丰富实践教学内容,与前沿技术发展接轨。