通过对敏捷开发方法的讨论和高校在软件开发过程中所面临问题分析,讨论了在高校软件开发中如何进行敏捷开发方法的实践内容。
1引言
近几年各高校的软件开发团队参与学校信息系统开发的比例不断下降,开发出来的信息系统没有经济价值或使用价值。甚至有些高校信息化当中软件开发面临着严重的生存危机。高校虽然有优秀的人才队伍和研究基础,但比IT企业缺乏管理经验,在软件开发过程等方面没有统一的规律可言。因此如何建立符合高校的软件开发方法,使软件开发变得更有效率,如何让高校软件开发继续在信息系统建设当中起重要作用,是目前高校信息化部门面临的重要问题。
2敏捷开发方法研究
2.1了解敏捷方法
2001年Kent Beck和其他16位知名软件开发者、软件工程作家及软件咨询师共同签署了“敏捷软件开发宣言”。该宣言声明:个体和交互胜过过程和工具;可工作软件胜过综合的文档;客户合作胜过合同谈判;响应变化胜过遵循计划。也就是说,虽然传统开发方法中的一些文档信息很有价值,但敏捷更看重沟通、可运行软件、客户以及灵活性。此外参与这次宣言的人描述了12条关键原则,即敏捷的关键在于持续地交付可工作的软件,同时也允许和支持不断变化的需求,它鼓励各种项目关系人的相互沟通,改变协作的态度,把客户作为开发组成员,并意识到不确定的世界里计划是有局限性的。
2.2敏捷过程研究
采用措施方面敏捷方法是从传统的工作分解结构到基于优先级实现故事(在敏捷方法中软件增量称为故事)和需求的“以交付价值为中心”的转变。
管理文化方面敏捷方法关心的是团队责任和团队活力两方面,目标是如何在规定的时间框架内完成尽可能多的工作。
需求、架构和设计方面敏捷团队所投入的时间和资源不太多,相反团队的大部分注意力集中在尽早交付可集成的有价值的需求模块。
代码构建方面敏捷团队首先集中精力解决最高优先级的功能模块。
质量保证方面测试不再是生命周期的一个阶段,而是持续的行为,测试人员的主要工作是系统测试,他们关注的是自动化测试。
规划方面敏捷方法采取的是制定整体规划和为迭代制定的细致规划。在开发过程中并不仅制定一次规划,在每次发布和每次迭代的前期都要进行规划。
敏捷方法是固定时间并且根据时间定义范围,所以只有一个变量保持不变,即构建的范围不变。这就使团队能够自由地根据需要进行组织,将精力持续集中在到期需要完成的软件增量上。
3敏捷开发方法在高校软件开发中的实践
3.1高校在软件开发方面所面临的问题
(1)很难建立过程管理机制
建立有序的软件过程管理机制需要很大成本投入。目前,高校软件开发中普遍存在的问题是项目不够大,开发人员少,开发出来的软件质量低。在这种情况下学校很难下决心改进高校软件开发过程机制,虽然认识到软件开发的必要性,但只是采取观望的态度。在高校,技术理论领域的人才是充足的,但管理领域的人才却甚少,特别是在软件过程管理领域有经验人才非常有限。
(2)很难实行项目管理
由于高校信息化部门的组织结构的特殊性,开发团队只能是临时组建。而且管理者也没有专门的软件项目管理经验,对项目管理的指导效果不明显,大部分情况是主开发者充当项目经理角色。由于主开发者的管理视野非常有限,同时没有所依靠的过程管理机制,只能在开发者的角度分析问题,很多项目管理问题很难及时解决。这种情况通常导致混乱级别的软件项目管理,项目成功的可能性比较少,所开发出来的软件质量不能保证。
(3)很难保持沟通的有效性
由于高校的项目不够大,而且人员有限,一般情况下开发者独立完成从需求到部署的全部软件过程。开发人员通常担当多种角色,所考虑的部分比较多,当然需要沟通的问题也不少。但是没有团队开发意思的高校软件开发环境中,互相之间的沟通和协作是完全不可能的事情。
因此,利用敏捷开发寻找一个平衡点,用柔性方法管理软件项目的整个进程,巧妙地平衡短期利益和长期利益,用尽可能少的时间来完成尽可能高质量的软件。
3.2敏捷软件开发方法在高校软件开发当中的实践
在高校软件开发中实践敏捷方法时要考虑一下几个方面内容:
(1)由于高校软件项目规模比较小、开发人员有限等特点,开发团队临时组建的情况比较多。敏捷开发中鼓励重构开发团队,而且要求必须有3个角色:产品主管,作为客户代理并制定解决方案;开发成员,能够创建高质量的代码;集成测试人员,测试自动化和QA功能。敏捷开发中,高效团队的特点是:团队中有合适的人;团队是被领导,而不是被管理;团队了解他们的任务;团队不断进行交流和合作;团队对自己的工作结果负责。
(2)开发计划是有序软件开发的前提,但开发计划是随着时间不断变化的。长远的详细的开发计划书对大部分高校项目中作用不够明显,反而他们需要的是短期的灵活的实施计划。敏捷方法有两个级别的计划。发布级计划是对主体和高级别特征的概述;迭代级计划是更详细的计划,一般把目标划分成了一些小任务,不会超过一两天。合起来看这两个级别计划提供了长远和短期目标,为敏捷方法的有序实践提供前提。
(3)在高校软件开发中很少有专门的测试人员,一般都是代码构建人员直接进行测试工作。这种开发模式接近敏捷开发的迭代过程。在敏捷团队中,开发人员要有在短的时间盒内创建一整套的测试和工作代码的能力,即迭代开发能力。
(4)在敏捷方法中提高软件质量的一种方法是更小、更频繁的发布。通过频繁的发布,让客户体验新的软件增量,持续获得来自客户的反馈。敏捷团队通过这些反馈意见进行下一轮的迭代开发。
(5)高校软件开发项目规模不大等特点,使持续的集成变为可能。敏捷开发通过持续的集成,持续的发现问题,持续的重构代码,持续的降低风险,结果使代码质量得到持续的改进。
(6)在敏捷宣言的重要原则之一是“团队应定期反省如何能够更有效,然后相应的调整和调节其行为。”在敏捷方法中团队要清除其持续提高生产力的障碍。具体方法是对迭代级别和发布级别的计划进行定性和定量评估。
4结论
敏捷软件开发方法已经在很多领域取得明显成就,因它自身的有效性,在软件开发方法中已经成为发展趋势。而且目前的高校软件开发情况很适合于比较灵活性的开发方法。在高校软件开发中应该根据实际情况,运用敏捷原则来有效的权衡时间、人员和成本,使软件开发变得更加敏捷、更加高效。对高校软件开发团队来说,实施敏捷方法的所有必备条件不是很难实现的,而且很多条件是已经具备的,重要的是怎样把敏捷思想应用到实际的开发当中,并持续的锻炼这种思想,使这种敏捷思想成为主导软件开发的重要哲学。
作者:蔡珉官 来源:计算机光盘软件与应用 2013年6期