公务员期刊网 论文中心 正文

软件开发敏捷管理方法研究

软件开发敏捷管理方法研究

摘要:21世纪是计算机崛起和发展迅速的时代,面对着用户多样化、个性化的需求,软件开发必须积极适应这一变化,从项目、技术等多方面灵活应对,以提高软件的适应性,降低开发成本。传统的软件开发理论已经失去了作用,而敏捷管理方法为这一问题更好地解决提供了有益的指导,它能够有效地提高软件的质量,更好地提升用户的满意度。

关键词:敏捷管理;软件开发;应用

随着信息技术的发展,用户对软件的需求也逐渐提高,这就对软件开发者提出了更高的要求。由于传统软件开发理论的不足,软件开发一般耗时较长,用户从中的收益较小,而敏捷管理方法以实践为基础,为软件开发提供了新的思路,充分提高了软件的适应性,有效地满足了用户的需求。

一、敏捷管理方法概述

软件开发的难度随着用户的需求在逐步提高,市场竞争的激烈化也刺激着软件开发者必须使用新的软件工程管理理论。目前,敏捷管理方法包括极限编程、自适应软件开发等,这些方法都以用户的需求为中心,减少了所需要的文档,提高了软件的灵活性。敏捷软件开发主要有一下几条原则:要尽早、持续地交付有价值的软件供用户使用;即使到了开发后期也能够满足客户的需求,为客户的利益着想;经常性的交付可工作的软件;在软件开发期间,开发人员要和业务人员积极沟通;为软件开发者提供他们所需要的环境,给予充足的支持;在开发团队内部,要面对面的交流,以提高信息传递效率;软件开发必须保证可持续的、恒定的开发速度;积极关注技能的创新;从最简的工作开设等。这些原则涵盖了敏捷管理的核心思想,颠覆了传统的重载软件的过程,显示了以人为本、以技术为支持、注重实效的思想,国内外的实践也证明了敏捷管理方法在软件开发中的重要作用。与传统的管理方法比较,敏捷管理主要有以下几个优点:

①较强的灵活性。敏捷管理方法较为灵活,以现有的事物为基本管理职责,由市场驱动竞争力的储备,能够有效地满足用户需求的变化。

②错误率低。敏捷管理方法将设计工作与编码工作融合到了一起,能够及时发现错误。

③项目风险较低。敏捷管理方法提高了有价值、可运行软件的速度,使用户能够尽早地使用软件。

④能够提高人员的能动性。敏捷管理为员工提供了充足的资源,对客户的个性需求有较强的应对能力。⑤降低了成本。敏捷管理方法降低了文档的维护成本,面对面的信息交流也较低了交流成本,同时轻快开发过程也降低了时间成本。

二、敏捷管理方法在软件开发中的应用

1、团队管理

软件开发不是由个人单枪匹马就能够完成的,它需要团队的合作,因此,“以人为本”是团队管理的基本原则。团队管理需要以项目为中心,为开发人员提供必要的环境和技术支持,同时还要给予积极的鼓励。一方面,要“恩威并济”。团队管理需要融入一定的纪律,保证软件开发的标准性,同时也要容忍一定的个体变化。在传统的管理方法中,严格的纪律保证了很多行业的高生产力,但在软件开发中,如果项目负责人单从自身的角度出发制定严格的标准,而忽视了员工的独特思想,则很可能造成很多不利的影响。另一方面,促进团队合作。敏捷软件开发需要促进人与和人之间、小组和小组之间的合作,不再以命令的形式调节他们之间的关系,而是以互信为基础。第三,提高开发人员的荣誉感。团队管理的困难之一在于提供适应性强的奖励机制,如果单纯以奖金的形式进行奖励,长时间也会影响团队的动力,因此,需要以更好的形式激励团队。为员工提供一定的荣誉感,能够让员工真实感受到自己劳动成果的价值,能够更加有效地激发员工的主动性、积极性和创造性。第四,提高信息的反馈效率。敏捷管理方法较为灵活,但评估起来较为困难。国内外的实践表明,在管理过程中实施积极的、经常性的反馈,并认真分析评估反馈结果能够及时地、清楚地了解团队的精神状态和项目进展情况,从而为项目负责人优化管理方法提供了科学的参考。反馈方法较多,如检测用户故事的完成数、验收测试通过率等,另外也包括每周的评估等。启动团队是软件项目开发的重要步骤,每一个团队的启动都需要一定的时间和过程,是工作关系的构建,只有做好启动团队工作才能够有效地促进项目开发目标的实现,确定团队和员工的工作目标。一般的,从组建团队开始,调查员工的基本情况,如工作能力、人际关系等,然后分配责任,最后在启动项目前,召开团队会议,制定团队目标、做动员等。

2、开发管理

在敏捷软件管理中,多以迭代开发为主,但对管理人员的缺乏可操作性的指导,同时也缺少开发方法的阐述,缺少了单元测试、验收测试。由于项目团队的规模、人员构成、项目目标等方面的不同,软件开发项目没有统一的开发策略,只有结合具体情况制定开发策略才能够满足实际的需要。敏捷管理方法指导下的开发策略需要注意以下几个问题:第一,努力实现软件的可运行。从阶段性设计看,可运行的软件代表了团队的开发成果,为团队带来了成就感和信心;从用户的角度出发,只有给用户展示了可运行的软件才能够让他们真实地看到自己的需求是否得到了满足。第二,制定周密的开发计划。传统的软件开发在项目进度方面的掌握程度较低,系统正式完成的时间不确定,因此,敏捷开发要求将开发进度可衡量化,将每一个任务制定一定的点数,将所有任务的点数相加就是本次开发所需要的工作量,用所完成的任务点数比上总任务点数就是开发进度百分比。第三,尽量减少文档的数量。在开发时要根据实际需要增减文档的制定,降低项目的风险。第四,加强交流。敏捷开发要求开发成员之间要加强交流,保证数据采集、团队合作、软件设计的效率。第五,积极考虑客户的需要。敏捷开发要积极满足用户的需要,让用户直接参与软件开发的过程中,让客户亲临现场,与其探讨软件开发中的各种问题,提高软件的实用性。

3、需求管理

需求管理以掌握用户对软件的需求为目的,是项目启动的第一步,是一支指挥棒,以灵活的变动将“用户故事”和“现场客户”结合起来,表达了用户真正的、迫切的需求。“用户故事”是一种较为简单的搜集客户需求的新方式,独立表达了用户的需求,用户可以随时删除也可以随时加入,是一种概述性的描述;“现场客户”是指让用户代表亲临开发现场给予指导。用户故事与现场客户两种方法的结合,让客户对团队开发软件的细节有更加深入地了解,同时也能够给予必要的指导,节省了交流时间,提高了开发的效率。

4、规划

在对用户故事进行轻重排列后,从业务和技术方面逐一制定实现计划。在业务方面要积极考虑业务价值加大的用户故事;在技术方面,技术小组从技术难度及风险的角度出发,划分功能区,要将所存在的问题说明给客户,让客户做出选择。

5、迭代规划

敏捷开发要求尽可能为客户提供可工作的软件,因此,要尽量缩短迭代的周期,一般为1~4周。迭代的优先级由技术组确定,但其价值又客户决定。在第一次迭代中,小组要建立基本的开发设施,另外,要避免技术迭代,减少耗时。对团队开发来说,在历经几个月甚至几年的时间才有所突破,每一次的迭代都是一次成就,是一种较好地员工激励形式。

6、任务分配

在客户将用户故事提出后,开发团队商讨如何分界为几个任务,然后分配给开发人员。第一步,客户提出用户故事。客户将用户故事宣布告知给开发团队,团队成员可以提出问题,以充分理解客户故事。第二,讨论任务。开发团队在讨论过后将用户故事分成多个任务,做好接受任务的准备。第三,选定任务。团队成员选定合适的任务,做好估算工作。

7、软件设计管理

在敏捷设计中,迭代开发的过程要力求减少文档,另外,敏捷管理要努力实现全局视图和软件源代码一起演化,从当前的系统需求出发构建所需的基础结构,保持结构的简洁、干净,病富有表现力,同时还要提高其灵活性。在分配给开发人员任务之后,要测试代码,提高源代码的质量,让开发人员有更加充足的信心,同时,测试也能够迫使程序员从不同的角度观察所要编写的程序。软件开发都是由结对的程序员使用同一台电脑实现的,由一位出入代码,另一外观察代码及其需要改进的地方,两者可以交换角色,最后所生成的代码成果由两人共享。结对关系每天至少要改变一次,以减少两者的压力,提高编码质量,同时也能够促进他们编码技术的提高。

8、跟踪

跟踪能够让程序员、客户及管理者明确工作进度、质量等问题,同时也能够发现潜在的问题等。一方面,要跟踪资源,即计划和实际的对比、团队成员的人数、客户参与次数、测试人员数量、参与开发的计算机数量等,这些是软件开发的必要条件。另一方面,跟踪范围,即跟踪故事的变化情况。第三,跟踪质量,即测试表所显示的通过测试数及未通过测试数。第四,跟踪团队成员,即观察开发成员的问题、开发成员之间人际关系问题,看其是否全身心地投入等。

9、测试验收管理

当一个迭代完成后,用户会与团队商议下一步的需求。测试验收过程中,越早的发现问题,就能够缩短程序投入运行所需的时间,期间,客户需要提供验收测试,所提供的测试越多,项目进展速度就越快,价值也就越高。客户可以通过制定的形式采集所需要的素材,通过自动的脚本根据客户的需求运转。一旦某项测试通过需求,则决不允许该测试再次失败,随着测试的不断累积会形成一个测试集合,它能够测试系统的运行,一旦测试失败,系统的创建也就失败。因此,要保证需求的实现,避免其遭到破坏。

三、结语

敏捷管理方法渗透于整个软件开发过程中,是一个长期的信息构建原则,而不是某一个独立的事件它,适应了复杂软件开发的要求,同时也适应了软件技术发展的需要。随着客户对软件要求的不断提高,敏捷开发适应了复杂的环境,并且尽可能地保持软件开发的简单化和系统化,适合团队型的开发项目,它能够及时反馈信息,有效提高客户的满意度,也能够保证系统的质量。

参考文献:

[1]沈成莉.敏捷项目管理在软件开发中的实践应用[D].复旦大学2009

[2]唐俐威.软件开发的敏捷管理方法应用研究[D].哈尔滨工业大学2006

[3]向佐龙.敏捷管理方法在软件开发中的应用研究[D].武汉理工大学2007

作者:张斯楠 单位:渤海大学