时间:2022-11-09 03:28:33
绪论:在寻找写作灵感吗?爱发表网为您精选了8篇软件开发培训总结,愿这些内容能够启迪您的思维,激发您的创作热情,欢迎您的阅读与分享!
关键词:敏捷转型;反模式;软件开发
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.
[2]保罗•杜瓦尔,史蒂夫•迈耶斯,安德鲁•格洛弗.持续集成:软件质量改进和风险降低之道[M].王海鹏,译.北京:机械工业出版社,2008.
图1英特尔软件网络社区
为表彰英特尔® 软件网络社区中最活跃的成员对我们一如既往的支持,我们推出了英特尔® 黑带软件开发计划。通过授予“英特尔® 黑带软件开发人员”荣誉称号,表彰那些具有出色的英特尔® 技术专业知识,并对社区建设有突出贡献的成员。他们乐于与他人分享知识和专业技能,在论坛提供帮助和支持,发帖并积极参加社区活动,极具领导地位。
为确保“英特尔®黑带软件开发人员”评选的严谨与可靠,英特尔® 软件网络成立了专门的评选委员会,成员包括我们的软件开发工具专家、资深应用工程师及社区经理。委员会定期召开例会,提名新的成员,审核、验证他们在过去一年中对英特尔® 软件网络社区的贡献。评选标准包括成员向社区贡献内容的质量和数量(即专业技术水平)、在社区内的领导地位及为社区带来的支持成员三个方面,最后评选出的英特尔®黑带软件开发人员会得到相关奖励。
在最近一次的评选中,杨剑锋博士、周伟明先生、李铎锋先生成为中国首批荣获“英特尔®黑带软件开发人员”称号的社区成员,如图2所示。他们拥有精湛的专业技术知识,为社区发展作出了杰出贡献。
图2三位“英特尔® 黑带软件
开发人员”
在首批荣获“英特尔®黑带软件开发人员”称号的成员中,杨剑锋老师来自武汉大学。杨老师积极参与英特尔的高校合作计划,从师资培训、课程开发与教学,到网上的英特尔学术社区建设,他都投入了大量精力,开展了细致的工作,是目前英特尔学术社区乃至英特尔®软件网络上积分最高、贡献最多的成员。
杨剑锋老师
2007年,多核相关课程在国内高校尚处于起步阶段,杨剑锋老师在武汉大学主持了“多核架构及编程技术”课程的开发。课程组老师经过努力,将业界的最新技术与电子通信遥感等学科相结合,引入课程教学,为培养适应时展的实用技术人才作出了巨大贡献!同年,该课程荣获英特尔―教育部精品课程。基于“合作、发展和创新”的主题,英特尔与武汉大学建立了多核技术联合实验室,将其作为推广多核课程内容开发与教学的种子院校之一,相继于2008和2009年在武大举办了两次多核师资培训,协助华中、华西、西北等高校教师进行多核课程建设,受到各位专家的好评,也为多核技术的推广贡献了力量。杨老师在师资培训结束后总结了相关经验,在英特尔学术社区上发表了博客,与大家分享。
2008年秋,在包括杨剑锋老师在内的众多高校教师支持下,英特尔®学术社区中文版正式,为“英特尔多核大学合作计划”提供了网上支持,给老师们提供了与英特尔专家和全球高校教师交流学习的平台。2008年底,杨老师受邀担任了英特尔学术社区网络研讨会的嘉宾,与全球90
余位教师分享了武汉大学等国内高校开展多核技术教学的情况,交流了成功经验和需要解决的问题。这是中国高校教师第一次在英特尔学术社区中与全球教师互动交流,让全世界其他地区的老师们了解了中国高校在新技术领域内开展的工作。自2008年以来,杨老师受邀参与包括英特尔、微软、IBM、Nvidia、Sun、AMD、Adobe等公司技术专家及加州大学伯克利分校、乔治亚理工、北爱荷华大学等教授组成的全球并行教育工作小组,参与并行教育的讨论,加强了中国并行教育的国际流。
2009年6月,杨老师在英特尔®学术社区上了由他主持开发的“多核架构及编程技术”教育部―英特尔精品课程,包括所有的教学幻灯片、实验代码、指导用书及课程建设参考资料,与全球教师共享;还特别了课程组倾力开发的部分题库及动手实验和教学录像。这些教学资源为学生学习多核知识提供了巨大支持,也为兄弟院校开展教学提供了极具价值的参考,实现了英特尔®学术社区“学习、进步、分享、创新”的理念。
2009年底,作为英特尔®软件网络中积分最高、贡献最多的成员,杨剑锋老师荣获“英特尔®黑带软件开发人员”称号。
为帮助更多英特尔® 软件网络成员尽快成为黑带软件开发人员,英特尔® 软件学院为软件开发人员提供了丰富的技术培训课程,帮助他们掌握和应用英特尔的最新技术及经验,提升产品开发技能。学院依托英特尔®软件和
服务事业部的强大师资力量,沿袭英特尔用户需求至上的传统;与国内多家知名公司、大学建立起长期的合作关系,已成为面向软件开发及管理的优秀一站式培训服务基地。
在未来的日子里,英特尔将一如既往地致力于为中国的软件开发提供最优质的培训服务,推动我国IT产业的持续发展,也期待更多的软件开发人员获得“英特尔® 黑带软件开发人员”称号!
杨剑锋,本科、硕士、博士均就读于武汉大学电子信息学院,现任武汉大学电子信息学院副教授,主要从事多核技术、嵌入式系统及网络通信等方向的科研与教学工作,同时承担多核和嵌入式相关课程的实验教学,2008年担任全国大学生电子设计竞赛嵌入式专题邀请赛专家组成员、评委。
关键词:项目管理;软件;开发应用;问题;对策
现在,信息技术发展速度越来越快,在这种背景下,企业需要应对信息化变化的挑战就必须高度重视软件的开发在具体项目中的应用。但目前一些企业在软件的开发与应用中存在着许多不容忽视的问题,需要我们认真研究并努力解决。
一、项目软件管理的基本内涵
1、什么是项目管理
项目管理是在一定的约束条件下,以高效率地实现项目业主的目标为目的,以项目经理个人负责制为基础和以项目为独立实体进行经济核算,并按照项目内在的逻辑规律进行有效的计划、组织、协调、控制的系统管理活动。
2、为什么要有项目管理
没有项目管理,项目也有可能成功。但没有管理的项目,很难保证项目的利润空间,对公司来说,亏损的风险就大。所以,我们要有项目管理,以保证公司在总体上是盈利的,注意不是每一个项目都要盈利。
二、项目软件管理的发展现状
现在项目管理作为一种现代化管理方式在国际上已获得了广泛的应用,从最初的国防、航天、建设工程领域,迅速发展到电子、通信、计算机、软件开发、金融等行业以及政府机关的项目管理工作。随着计算机、网络系统的迅速发展,项目管理技术的不断进步,项目管理软件产品层出不穷,其功能、特点、应用对象也各不相同。从概念上讲,软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。
软件开发是一项复杂的系统工程,牵涉到各方面的因素,实际工作中,经常会出现各种各样的问题,甚至面临失败。如何总结、分析失败的原因,得出有益的教训,对一个公司来说,是在今后的项目中取得成功的关键。目前的软件开发正逐步趋向于复杂化、多元化,大多数开发团队中都会出现同时开发多个版本、开发维护工作并存、多地点同时开发等情况,给软件开发管理带来了前所未有的困难。如果管理不善,必将造成版本混乱,各个开发人员的工作相互交叉、干扰,整个开发团队的工作在一种无秩序的不良状况下运行,严重影响软件产品开发的进度和质量。
三、项目软件管理常见问题及解决策略
1、缺乏项目管理系统培训
项目经理在项目管理方面的培训较少或不够系统。项目经理或管理人员不了解项目管理的知识体系和一些常用工具和方法,所以在实际工作中没有项目管理知识的指导,完全依靠个人现有的知识技能,管理工作的随意性、盲目性比较大。在软件企业中,以前几乎没有专门招收项目管理专业的人员来担任项目经理,被任命的项目经理主要是因为他们能够在技术上独当一面,而管理方面特别是项目管理方面的知识比较缺乏。
解决策略:项目经理接受系统的项目管理知识培训是非常必要的,有了专业领域的知识与实践,再加上项目管理知识与实践和一般管理的知识和经验的有机结合,必能大大提高项目经理的项目管理水平。应实行项目经理知识技能资格考核制度,让项目经理自觉补充学习项目管理的知识和一些常用工具和方法。
2、项目计划意识问题
项目经理对总体计划、阶段计划的作用认识不足。项目经理认为计划不如变化快,项目中也有很多不确定的因素,做计划是走过场,因此制定总体计划时比较随意,不少事情没有仔细考虑;阶段计划因工作忙等理由经常拖延,造成计划与控制管理脱节,无法进行有效的进度控制管理。没有计划或者是随意的不负责任的计划的项目是一种无法控制的项目。
解决策略:在高技术行业,日新月异是主要特点,因此计划的制定需要在一定条件的限制和假设之下采用渐近明细的方式进行不断完善。提高项目经理的计划意识,采用项目计划制定相关各种知识、技术、工具,加强对开发计划、阶段计划的有效性进行事前事后的评估。
3、管理意识问题
部分项目经理没有意识到自己项目经理的角色,没能从总体上去把握管理整个项目,而是埋头于具体的技术工作,造成项目组成员之间忙的忙、闲的闲,计划不周、任务不均、资源浪费。
解决策略:加强项目管理方面的培训,并通过对考核指标的合理设定和宣传引导项目经理更好地做好项目管理工作。技术骨干在担任项目经理之前,最好能经过系统的项目管理知识,特别是其中的人力资源管理、沟通管理的学习,并且在实际工作中不断提高自己的管理素质,丰富项目管理经验,提高项目管理意识。
4、风险管理意识问题
项目经理没有充分分析可能的风险,对付风险的策略考虑比较简单。项目经理在做项目规划时常常没有做专门的风险管理计划文档,而是合并在项目计划书中。有些项目经理没有充分意识到风险管理的重要性,对计划书中风险管理的章节简单应付了事,随便列出几个风险,随便地写一些简单的对策,对于后面的风险防范起不到什么指导作用。
解决策略:通过学习项目管理知识掌握风险识别、量化、对策研究、反应控制的工具和方法掌握项目风险管理所必备的知识。通过加强对项目规划中风险管理计划的审核提高项目组的风险管理意识。总结本行业项目中常见的风险及其对策作为风险管理计划中必要的风险内容,并切实评估相应对策的有效性和可行性。
5、不重视项目经验的总结
项目经理在项目结束时有些是因为自身对写文档工作的兴趣或意识,或者是因为紧接着要参加下一个项目,总体对项目总结的重视程度不够。有些是项目总结报告一再拖延,有些是交上来的报告质量较低,敷衍了事。
【关键词】教学软件;教学系统设计;软件工程;开发模式
【中图分类号】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) 开发阶段
开发阶段使设计的结果最终转化为实际的产品。
这一阶段要运用各种技术手段,包括硬件设备和工具软件,利用和改编现有资料,制作文本、图像等多媒体素材,用编程或创作软件集成软件,经过多种不同水平的测试和试用后,最终完成软件。并且安排软件的总结性评价。
在开发阶段,素材制作、软件编程、手册编写等多项工作往往是并行或交叉开展的,素材创作和程序编写人员是工作的主体,但设计人员和用户仍以不同的角色参与制作过程,同时又在动用所有的技术资源,因此组织管理和质量控制十分重要。
参考文献
[1] 张军征.多媒体教学软件设计原理与方法[M].北京:科学出版社, 2007.
一、软件开发项目的人员组织形式及存在问题
(一)软件开发项目的人员组织形式由于软件开发人员个人素质与能力各不相同,因此,要对软件开发人员进行合理分工,充分发挥每个人的特长。同时,软件开发的组织结构应与软件项目开发模式、软件产品结构相对应,使软件开发方法、工具与人相统一,降低软件开发过程中,管理与质量控制的复杂性。可以按照树形结构对软件开发人员进行组织。树的根是软件项目经理和项目总技术负责人,可由一个人或一个小组担任。树的结点是程序员小组。为了便于项目管理,树的结点每层不超过7个,并在此基础上尽量降低树的层数。程序员小组可以按主程序员进行组织,由主程序员负责小组全部技术活动的规划、协调和审查。小组其他成员,如后备工程师,是主程序员的助手,必要时可以代替主程序员领导小组工作,以保持工作的连续性。程序员小组之间和小组内的程序员之间的任务界面必须清楚,并尽量简化。如微软公司的编程人员共分为5个等级,最高等级只有5人,WindowsNT,Windows2000操作系统的核心开发队伍只有10人左右。内核程序由核心人物亲自编写,而提供软件开发工具的队伍则多达2000人,编写各种程序模块的编程人员也有1000多人。
(二)存在问题1.人员流动性过大,人才结构不合理调查显示,软件管理人员平均年龄为33.3岁,普通软件员工的平均年龄为28.4岁,65%以上的受调查人员具备大学本科以上学历。由此可见,软件项目从业人员以高学历的年轻人为主。这就意味着,一方面,这些人有更强的学习创新能力,另一方面,也可能存在个人约束力差、眼高手低等不稳定因素,一些自认出色的从业人员对公司稍有不满就会离公司而去,造成项目人员流动频繁。再加上高级研发人员缺乏,一般编程人员过剩,更不利于员工培养和人力资源维护。2.绩效评估不合理许多软件项目缺少完整、系统的绩效管理机制,比如,对个人绩效评估的实践、考核结果大多只为评价员工工作态度提供参考,最终绩效考核变成员工出勤记录。软件项目缺乏绩效考核,不能充分反映出项目成员的付出,有一些项目虽然对项目的投入和项目进度进行绩效评估,但没有和激励机制结合在一起,这时,有无绩效评估结果一样,同样不利于团队建设和人员稳固性的增强。3.培训不足由于培训方式落后和培训管理手段不成熟等原因,软件项目一般对成员培训较少。项目成员认为在项目组中没有机会学到更多东西,无法提高自己的能力,导致软件项目人员流动频繁。而由于人员流动频繁,项目更不愿意为员工培训投入时间和金钱,当需要人时就直接聘用,由此形成恶性循环。
二、软件开发项目人力资源管理的有效策略
(一)招聘策略招聘是控制人力资源质量的第一步,也是人力资源建设和开发的重要步骤,是吸引优秀、适合人才的重要途径,作好招聘工作是保证人员质量的重要环节。项目组配合公司人力资源管理部门,积极参与筛选简历和面试评审环节的工作,根据项目需求挑选简历和设计面试考核问题。与往常面试题目相比较,根据项目需求的不同,在招聘面试过程中,适当增加对某方面能力的考核。不能达到能力要求的面试者,不予以录用。
(二)培训策略1.新员工培训新员工培训的具体内容包括:公司测试标准与规范,公司质量手册、程序文件,公司测试业务、人员、公司整体、各部门介绍,公司各项规章制度,公司办公与测试环境配置,测试基本理论、测试流程与测试案例(测试方案、测试计划、测试报告、缺陷报告等),工作流程、工作表格、测试文档的标准模板等。所有参与培训的人员要在培训后的入职考试中取得优异成绩,考试合格率要达到100%。2.内部技术培训由于各部门承担的测试项目类型不同,对员工技能要求也不同,因此,毎年各部门、各项目组也会根据自身需求,组织与测试项目相关的内部技术培训。
关键词:软件项目管理;软件企业;经济效益
1.规范的软件项目管理对软件企业经济效益的影响
软件项目管理主要对软件开发进度和软件开发质量产生影响,规范的软件项目管理能够极大加快软件开发进度和提升软件开发质量,降低软件开发中的返工率和维护成本,从而提升软件企业经济效益[1]。另外规范的软件项目管理还通过以下途径提升软件企业经济效益:(1)广泛吸引用户。规范的软件项目管理能够提升软件的运行质量,提升用户使用过程中的舒适度,从而吸引更多用户,另外规范的软件项目管理能够让软件中的图片、音频等更好地服务于软件自身功能,从而培养用户的忠诚度,提升软件的使用量从而逐渐提升软件企业的经济效益,尤其是对各类游戏软件,规范的软件项目管理能够提升游戏的整体观感并减少各类缺陷的数量,能够极好培养用户的忠诚度。(2)提升企业知名度。由于规范的软件项目管理能够缩短软件开发效率并提升软件质量,这会导致软件企业的知名度在业内快速提升,从而进行更多软件的开发,提升企业经济效益。(3)精简企业内部人员构成。规范的软件项目管理能够提升软件开发过程中的条理性、规范性,优化各部门间的合作模式,从而实现投入更少的人力资源就能完成开发任务这一目的,从而提升软件企业经济效益。(4)减少软件后期维护成本。众所周知,软件的后期维护会耗费软件企业大量的人力和物力。规范的软件项目管理,可以从源头上提升软件质量,减少后期维护的工作量;而前期规范的软件设计和评审,也可以减少后期维护的难度,从而为企业节约成本。
2.软件企业中软件项目管理的现状
要提升软件企业的经济效益,措施不外乎“开源”和“节流”两个方面,规范的软件管理能够将这两方面进行很好地融合与实现,然而当前的软件企业中的软件项目管理还是存在一些问题,问题主要体现在以下方面:
2.1缺乏系统培训
当前软件企业中项目经理通常为企业中技术涵养深厚的人,这些人能够很好地解决软件开发中出现的问题,但却无法对项目流程进行有效制定,虽然科学有效的系统培训能够解决这一问题,但是当前软件企业普遍不重视这一点。另外,缺乏系统培训问题还体现在软件开发中各部门的运行中,各部门不能制定出合理的项目管理流程,同时无法实现对软件开发质量进行有效控制,这会导致软件开发中各子系统的质量良莠不齐,无法充分保证软件的运行质量,对企业形象造成恶劣影响并阻碍了企业内部管理体系的正常建立,从而降低软件企业的经济效益[2]。
2.2管理意识低下
当前的软件企业软件开发过程中,普遍不重视对各类人员的有效管理,这对软件质量造成很大影响,另外很多项目经理并不对软件开发过程和整个软件项目进行规划和管理,而将精力主要投入到各类技术工作中。该问题会导致整个软件开发流程的混乱,软件开发中项目成员都按照自己的想法进行工作,最终导致软件开发过程的流畅度大幅下降,延长软件开发周期,从而降低软件企业经济效益。另外一些项目经理缺乏相应的项目管理知识,导致对从业人员的任务划分不合理,降低任务分配的有效性,并降低软件开发效率,从而降低软件企业的经济效益。
2.3项目规划存在漏洞
软件项目管理过程中最重要的就是对项目进行合理规划,在此基础上进行人员分配以及质量控制,但是当前的很多项目经理对软件项目规划的认识存在不足,或者意识到项目规划的重要性但却受限于自身素质无法进行有效规划,从而降低软件企业的经济效益。另外在项目规划过程中需要考虑各种可能对软件项目开发产生影响的因素,并且制定项目规划后需要按照实际情况对项目规划方案进行适当调整,然而当前的很多项目经理制定项目规划方案时较为随意,不考虑或很少考虑各类相关因素,并且项目规划时不考虑企业实际情况,导致软件开发过程混乱,降低企业经济效益。
2.4缺少沟通
当前软件开发过程中,常常采用多团队合作开发的模式,这种模式能够极大缩短软件开发的周期,但是一些软件企业进行软件开发时,各团队间严重缺乏交流,导致各系统间发生不兼容现象,提升了软件开发中的返工率,降低企业经济效益。另外软件开发过程中,项目经理应该通过与各团队的交流更好地统筹协调软件开发中的各项工作,但是当前的很多项目经理对这一点没有足够认识,导致其无法对各部门的工作进度和工作质量有详细了解,从而极大降低软件开发效率和质量,降低软件企业经济效益,甚至会让企业产生不必要的损失。另外,软件开发过程中缺少与客户的持续沟通,往往会导致软件产品无法满足客户需求,导致软件返工,也会增加企业不必要的成本。
3.提升软件项目规范性管理的措施
3.1提升项目规划的合理性
项目规划的合理性是提升软件项目规范性的基础,而要提升项目规划的合理性需要考虑以下因素:(1)客户的需求。在进行软件开发前,需要对用户的意见进行详细了解和解读,确定软件需求,在软件开发过程中,需要和客户保持持续沟通,以确保开发完成的功能是符合客户需求的。(2)职责分配。职责分配涉及两个方面,其一是企业进行项目经理人员选择,其二是项目经理对项目中人员的职责分配,保证软件开发过程的有条不紊。(3)员工自身素质。员工素质是软件开发质量的重要保障,所以企业在选择项目经理时要保证该人员具备相应的项目管理知识和经验,以更好地领导软件开发过程,而对于其他人员,需要对员工的编程水平、工作态度等方面有深入了解,从而更好地制定项目规划方案[3]。
3.2坚决执行阶段审核
阶段审核能够及时发现软件开发中产生的各项错误,从而能够在很大程度上降低甚至消除错误的程序代码对软件质量的影响,并且阶段审核能够让项目经理对软件开发人员的素质有更加深入的了解,从而能够帮助其进行项目规划方案的优化。另外阶段审核过程中,项目经理需要对各小组的软件开发进度进行了解和研究,对于实际开发进度落后于规划进度的小组要进行深入分析,找到发生这种现象的原因,并结合实际进度对整个团队的开发工作进行统筹协调。阶段审核中还应与客户保持沟通,以确保项目是运行在正确的方向上。
3.3合理确定小组人员数量和人员构成
软件开发过程中,小组人员数量和人员构成会对员工的工作效率、产品质量产生很大影响,所以在进行软件开发时,需要对小组成员进行控制,可以通过以下流程进行人员数量确定:(1)人员构成确定。当前软件功能复杂,需要根据小组任务进行人员选择,例如某软件对通讯要求较高,在相关模块开发的小组人员选择中,应在该小组中加入通讯人才,以更好地进行软件建设。(2)人员素质考察。人员素质考察包含领域很多,如编程能力、交流能力、对客户需求的理解能力,需要项目经理进行适当取舍。另外在对于不同的项目小组,需要尽可能保证组中拥有技术储备深厚的人员,以降低软件开发中各类错误的产生几率。(3)人员数量确定。在确定人员数量的过程中,需要充分考虑软件开发环境、工作量、工期等因素,通常情况下,每个小组成员数量在5~10人,并且应在小组内设置管理人员,实行分级管理制度[4]。
3.4优化项目规划方案
在软件开发过程中,为了保证项目规划方案的合理性,需要按照实际情况对项目规划方案进行优化,提升软件开发的效率和软件开发质量,从而提高企业经济效益。项目规划方案优化过程中,需要考虑以下因素:(1)项目工程量。项目经理需要能够对项目工程量有一定认识,并参考剩余工期进行项目任务规划,当发现开发的软件项目无法在工期要求时间内完成时,需要对造成这种现象的原因进行分析,并制定符合实际情况的项目规划方案。需要注意的是,项目规划过程中,对项目工程量的估算往往并不准确,因此对于工程量与工期之间的关系,应持续保持关注。(2)小组人员构成。不同小组工作任务不同,当某小组工作进度落后时,需要对相关原因进行分析,并可以通过激励组员、加入新成员、安排加班等方式提升小组的工作效率,由于这会对原有的小组体系和计划造成一定冲击,管理人员需要根据新的情况进行项目规划,提升各组的工作效率。(3)项目经理的管理素质。项目经理的管理素质是项目管理的基础,所以需要保证项目经理有较高的管理水平。项目经理在接手项目前应接受正规的项目管理培训,只有对项目管理体系有一定了解后,项目经理才能科学地安排项目计划。切忌凭直觉规划项目的管理方式。
3.5引入先进的软件项目管理模式
企业可以通过引入先进的软件项目管理模式,提升自身软件项目管理的能力及规范性。业界比较常见的软件项目管理模式有瀑布开发模式、快速应用开发模式、敏捷开发模式、DevOps部署方法等,企业可以学习并引入一种适合自己的软件管理模式并加以实施,以提高软件项目管理的规范性,提升企业经济效益。同时,企业还可以选择利用CMMI(即能力成熟度模型即成),评估并改善自身管理和开发的能力。此外,较高的CMMI评级认证也可以为企业带来更多的商业机会。
4.结论
综上所述,规范的软件项目管理能够提升软件开发过程的规范性和效率性,降低了软件开发的返工几率,提升软件质量、降低维护成本,从而让软件企业吸引更多的客户,极大提升了软件企业的经济效益。而要制定规范的软件项目管理体系,可以通过施行阶段审核、优化项目规划方案、合理确定小组人员数量以及引入先进软件项目管理模式等方式达成目的,实现软件企业的快速发展。
参考文献:
[1]钱瑞胜.软件项目管理现状与对策分析[J].企业科技与发展,2013(10):117-119.
[2]倪丽丽.软件项目管理的计划和控制方法研究[J].通讯世界,2017(10):222-223.
企业招聘应届毕业生的入门要求就是能够编程,包括企业内部覆盖销各职能部门的信息系统软件,也包括企业各层次网站系统开发。而政府机关、事业单位则以网站系统开发和工作流管理为主[2]。对信息管理专业人才来说,软件开发技能是未来就业的敲门砖,而管理理论思想和方法的掌握则是其未来成为企业CIO的奠基石。笔者将探讨如何进行信管专业计算机课程教育改革,提高学生的软件开发能力,增加就业机会。
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促进科技创新体系建设
鼓励学生参加各种科技创新活动,例如管理类竞赛、计算机软件应用大赛等。对于参赛获奖的学生给予一定的学分和奖励,也鼓励教师积极参与学生的科技创新辅导,无论获奖与否都给予教师一定的工作量奖励,从而形成一个积极进取的科技创新环境。鼓励学生考取相关的职业证书。信息管理专业学生可以考取的职业资格证书有:工业与信息化部组织的“全国计算机软件开发专业人才(高级/中级)”证书、全国信息化工程师岗位技能证书(软件管理)(中级)、信息系统项目管理师、网络工程师、信息系统监理师、人力资源与社会保障部组织的“助理企业信息管理师(三级)”证书、企业人力资源管理师(四级)。职业证书表明了一个行业的职业标准,通过考取职业证书的学习,使学生了解市场对就业者的劳动技能要求、促使自己提高职业修养,建立全面系统的职业知识体系。
4结语
【 关键词 】软件企业 项目管理 解决方案 问题
一、概述
随着互联网的不断发展及各个行业对软件需求的不断提高,软件开发的需求也就越来越高。软件行业本身是一个具有极端挑战和创造性行业,软件开发是一个复杂工程,牵动面非常广泛,其中包括很多不可抗拒的因素,在软件开发的实际过程中会遇到各式各样的问题,这些问题一旦处理不好不及时,就会导致项目的失败。在软件开发过程中,如何总结、分析问题找出解决的办法就尤为重要,是一个软件公司在今后的开发过程中取得胜利的关键。
二、软件开发过程中遇到的一些问题
(1)沟通意识问题
在项目中一些重要信息没有进行充分和有效的沟通。在制定计划、意见反馈、情况通报、技术问题或成果等方面与相关人员的沟通不足,或者传达错误,造成各做各事、重复劳动,甚至造成不必要的损失;有些人没有每天定时接收、查看邮件的习惯,对一些最新的信息无法及时接收。
(2)项目计划问题
项目经理对总体计划、阶段计划的作用认识不足,没有详细的时间安排和工作进展计划,总体计划制定比较随意,很多问题没有仔细规划;阶段计划也因为各种原因经常拖延,经常因为一些小问题而导致工期延误,造成计划与进程脱节,无法进行有效的进度控制。
(3)项目的系统管理
在软件企业中,以前几乎没有专门招收项目管理专业的人员来担任项目经理,被任命的项目经理主要是因为他们能够在技术上独当一面,而管理方面特别是项目管理方 面的知识比较缺乏。部分项目经理不能从总体上把握整个项目,而是埋头于具体的技术工作,造成项目组成员之间忙的忙、闲的闲,计划不周、任务不均、资源浪费。有些项目经理没有很好的管理方法,不好安排的工作只好自己做,使项目任务无法有效、合理地分配给相关成员,以达到“负载均衡”。
(4)软件开发项目风险管理意识问题
部分项目经理没有充分认识到项目风险管理的重要性,对计划书中风险管理部分应付了事,随便列出几个风险,随便地写一些简单的对策,对于后面的风险防范起不到什么多大作用。计划中列举的风险也不一定是项目开发中可能会遇到的真正风险。
(5)软件开发项目团队分工协作问题
项目团队内部有时由于各阶段不同角色或同阶段不同 角色之间的责任分工不够清晰而造成工作互相推诿、责任互相推卸的现象;有时各阶段不同角色或同阶段不同角色之间的责任分工比较清晰,但是各项目成员只顾完成自己那部分任务,不愿意与他人协作。这些现象都将造成项目组内部资源的损耗,从而影响项目进展。
(6)项目干系人问题
在范围识别阶段,项目组对客户的整体组织结构、有关人员及其关系、工作职责等没有足够了解以至于无法得到完整需求或最终经权威用户代表确认的需求;或者是多个用户代表各说各话、昨是今非,但同时又要求项目尽早交付;项目后期需求变化随意,造成项目范围的蔓延,进度的拖延,成本的扩大。
三、解决方案
(1)加强沟通交流
制定有效的沟通制度和沟通机制,提高沟通意识;采取多种沟通方式,提高沟通的有效性。通过制度规定对由于未及时收取邮件而造成损失的责任归属;对于特别重要的内容要采用多种方式进行有效沟通以确保传达到位,例如:除发送邮件外还要电话提醒、回执等,重要的内容还要通过举行各种会议进行传达。
(2)增强项目管理人员的计划意识
计划的制定需要在一定条件的限制和假设之下采用渐近明细的方式进行不断完善细化。提高项目经理的计划意识,采用项目计划制定相关知识、技术、工具,加强对开发计划、阶段计划的有效性进行事前事后的评估。
(3)采取有效措施加大对项目管理的培训力度
项目经理接受系统的项目管理知识培训是非常必要的。加强项目管理方面的培训,并通过对考核指标的合理设定和宣传引导项目经理更好地做好项目管理工作。技术骨干在担任项目经理之前,最好能经过系统的项目管理知识,特别是其中的人力资源管理、沟通管理的学习,并且在实际工作中不断提高自己的管理素质,丰富项目管理经验,提高项目管理意识。有了专业领域的知识与实践,再加上项目管理知识与实践和一般管理的知识和经验的有机结合,必能大大提高项目经理的项目管理水平。
(4)加强风险管理意识
通过学习项目管理知识掌握风险识别、量化、对策研究、反应控制的工具和方法,掌握项目风险管理所必备的知识。通过加强对项目规划中风险管理计划的审核提高项目组的风险管理意识。总结本行业项目中常见的风险及其对策作为风险管理计划中必要的风险内容,并切实评估相应对策的有效性和可行性。
(5)加强与项目干系人 的沟通和管理
项目的目的就是实现项目干系人的需求和愿望。项目干系人管理应当从项目的启动开始,项目经理及其项目成员就要分清项目干系人包含哪些人和组织,通过沟通协调对他们施加影响,驱动他们对项目的支持,调查并明确他们的需求和愿望,减小其对项目的阻力,以确保项目获得成功。
(6)加强项目团队内的分工协作
项目经理应当对项目成员的责任进行合理的分配并清楚地说明,同时应强调不同分工、不同环节的成员应当相互协作,共同完善。管理人员要以身作则,发挥模范带头作用。从整个项目的全局出发,统领整个软件项目管理工作。合理配置人力资源,使员工分工明细,团结协作,人尽其能,优势互补。管理人员作为企业的领导力量,应当具备强烈的责任心和团队意识,在发挥个人能力的同时注重挖掘人才和培养人才。
四、结束语
软件项目管理在软件企业中处于举足轻重的地位,它决定了软件项目的成败。因此,要预测项目管理中可能会遇到的一些常见问题,制定较为完善的应对策略并评估这些对策的有效性、可靠性。另外,还要利用项目管理技术,不断总结实践经验,坚持项目管理的改进,提高效益和品质,确保项目的顺利完工。
【参考文献】