浅谈敏捷项目管理在软件开发中的应用
软件研发中的敏捷开发与迭代式开发模式

软件研发中的敏捷开发与迭代式开发模式在软件研发领域,敏捷开发和迭代式开发模式是两种常用的方法。
它们都旨在提高开发效率和项目成功率。
本文将探讨敏捷开发和迭代式开发模式的特点、优势及其在软件研发中的应用。
一、敏捷开发模式敏捷开发模式是一种迭代、增量开发方法,能够快速响应需求变化并灵活适应不断变化的项目环境。
敏捷开发模式注重迅速交付可用软件,并通过与客户的密切合作,及时反馈和调整开发方向。
敏捷开发模式的核心价值观包括个体和互动、工作的软件、客户合作和响应变化。
敏捷开发模式的特点如下:1. 需求灵活调整:敏捷开发模式允许在开发过程中灵活调整需求,根据实际情况进行优先级排序,并及时响应变化。
这使得软件开发能够适应项目的实际需求,提高开发效率和质量。
2. 增量交付:敏捷开发模式强调每个迭代周期内交付部分可用软件,以实现快速反馈和客户验收。
这种增量交付的方式使开发团队更容易掌握项目进展,减少风险,并使客户能够尽早使用软件。
3. 高度透明:敏捷开发模式要求开发团队与客户之间保持密切的协作和沟通,确保需求的准确理解和项目的透明度。
通过日常站会、迭代评审等方式,加强团队之间的沟通和协作,减少沟通成本和风险。
敏捷开发模式在软件研发中的应用广泛。
尤其适合需求不明确或需求变化频繁的项目。
通过敏捷开发,可以更好地应对市场竞争和技术变革,减小项目风险,提高软件质量和客户满意度。
二、迭代式开发模式迭代式开发模式是一种将软件开发过程划分为多个迭代周期进行的方法。
每个迭代周期包括需求分析、设计、开发、测试等开发阶段,并以可交付的软件版本作为迭代结果。
迭代式开发模式注重每次迭代周期内的软件开发和反馈,通过不断迭代,逐步完善和优化软件。
迭代式开发模式的特点如下:1. 渐进开发:迭代式开发模式通过多次迭代循环,逐渐完善软件功能和质量。
每个迭代周期交付一部分功能完整的软件,方便针对用户反馈进行修改和优化。
2. 有限制的规划:迭代式开发模式以一定时间范围的迭代为基本单位,每个迭代都有明确的目标和范围。
Scrum敏捷方法在软件项目管理中的应用

870 引言软件项目管理应用方法最早出现于20世纪60年代,最早的瀑布法成为当时社会环境下所有软件公司的普遍开发方法,现代社会技术的发展改变了现有的硬件环境,也让软件项目的管理面临要求更高的局面。
原有的开发方法存在明显缺陷,让阶段和阶段之间存在着一定程度的矛盾。
再加上软件项目开发过程当中本身存在的变化和不确定因素,尤其是日益变更的用户需求和计算机硬件环境的改变,对此确定软件项目管理措施也具有明确的现实意义。
1 Scrum敏捷方法与软件项目管理1.1 Scrum敏捷管理方法的具体特征敏捷项目管理概念与敏捷软件开发之间存在的密切联系,而敏捷软件开发的深度发展,使得某些极端项目的管理理念变得更加精确的具体,所以在有效的方法被提出之后,该管理概念也成为项目管理方面的一种统一化称谓。
“S c r u m ”在英文里所指代的是橄榄球运动的“争球”,所以该技术将软件开发比作一个橄榄球队伍,队伍有着相应的比赛目标,并且在开发过程当中利用相应的技术和方法进行自主规划,通过互相交流合作,借助弹性化的问题解决方式来处理团队遇到的各种问题,确保团队中的每个人员都能达到既定的目标。
从20世纪90年代开始,很多企业就用此类方法进行复杂产品的开发,且用户在框架当中的地位和作用也将发生改变,能够用技术手段完成过程构建,并且在调整的过程当中确保项目的行进方向不偏移最终目标。
总体而言Scrum能够以经验过程控制理论为依据,对软件产品开发过程的可预见性风险展开提前控制,具有高透明度和检验特征。
如果在检验环节发现某个方面无法达到既定的标准,或是导致产品可能无法满足要求,那么团队内部就会以此为基础对过程展开调整。
在一些复杂的动态环境当中,各项工作之间本身具有关联性,它作为一种轻量级的软件开发框架,能够定位最高优先级的需求,在现有设计流程总结基础上,不断适应团队变化让有效工作最大化,每个参与者都能对自己的工作进行总结,将工作状态发挥至最佳水准。
敏捷开发方法在企业软件开发中的应用

敏捷开发方法在企业软件开发中的应用一、前言敏捷开发方法是一种软件开发方法,其流程和方式相较于传统软件开发方法更具灵活性。
相对于传统的瀑布流开发方式,敏捷开发方法更注重迭代过程中的协作、变化响应能力以及快速交付价值,这也使得它成为越来越多企业关注和应用的开发方式。
本文将从敏捷开发方法的定义、原则、特点和在企业软件开发中的应用等方面进行分析和讨论。
二、敏捷开发方法概述敏捷开发方法指的是一种迭代敏捷开发方法,它强调人和软件之间互动和协作,重视软件的运作和合作,而非过多依赖于流程、工具和文件等。
该方法主要应用于需要对软件开发变化做出快速响应的项目环境,如需求变化频繁、市场竞争激烈等领域。
敏捷开发方法从2001年开始在敏捷联盟中提出,目前已成为了软件开发中的常见方法之一。
三、敏捷开发方法的原则要想理解敏捷开发方法,首先要理解其原则。
敏捷开发方法包含12条原则,这里列举其中几条重要的:1.迭代性和增量性:敏捷开发方法强调持续交付,运用迭代开发方式使得项目能够快速响应变化,保持较高的交付效率。
2.用户满意度:敏捷开发中,将用户和开发者视为双方合作的伙伴,根据用户的实际需求来确定软件的功能和优先级。
3.频繁的交付:敏捷开发方法倡导在项目周期内频繁地交付业务价值,而非等待最终实现后交付。
4.协同工作和自组织能力:在敏捷开发方法中,凭借协同工作和自组织能力,开发团队可以更好地合作,解决问题,取得更好的项目成果。
四、敏捷开发方法的特点相对于传统的瀑布流软件开发方式,敏捷开发方法有以下几个特点:1.强调迭代开发方式:敏捷开发方法采用迭代开发方式,可以快速响应需求变化,保持较高的交付效率。
2.注重可扩展性与维护性:在敏捷开发方法中,开发者注重设计和实现可扩展性和易维护性更高的软件。
3.灵活性和适应性:在敏捷开发方法中,变化被视为正常的现象,开发团队会快速适应变化和调整软件开发方案。
4.重视用户的实际需求:在敏捷开发方法中,开发团队会紧密地与用户合作,确定他们的需求和软件的功能和优先级。
敏捷方法在项目管理中的应用

敏捷方法在项目管理中的应用一、引言在当今快速变化的商业环境中,项目管理变得越来越重要。
传统的项目管理方法往往过于刻板和缓慢,无法适应市场的快速变化和客户需求的多样性。
而敏捷方法作为一种新兴的项目管理方法,正逐渐受到越来越多企业的关注和应用。
本文将探讨敏捷方法在项目管理中的应用,并分析其优势和挑战。
二、敏捷方法的概述敏捷方法是一种以迭代和增量方式进行项目管理的方法。
它强调快速响应变化、持续交付价值和团队协作。
与传统的瀑布模型相比,敏捷方法更加灵活、适应变化和客户需求。
敏捷方法的核心原则包括:个体和互动高于流程和工具,工作软件高于详尽的文档,客户合作高于合同谈判,响应变化高于遵循计划。
三、敏捷方法的优势1. 快速响应变化:敏捷方法通过迭代开发和持续交付的方式,能够更快地响应市场变化和客户需求的变化。
团队可以根据实际情况进行调整,及时解决问题和调整方向,从而提高项目的成功率和客户满意度。
2. 提高团队协作:敏捷方法强调团队协作和交流。
通过持续的沟通和协作,团队成员可以更好地理解项目目标和需求,减少沟通误差和冲突,提高工作效率和质量。
3. 增加项目透明度:敏捷方法通过可视化工作进度和问题,增加项目的透明度。
团队成员可以清楚地了解项目的状态和进展,及时发现和解决问题,提高项目的可控性和可预测性。
4. 持续改进:敏捷方法鼓励团队进行持续改进。
通过每个迭代的回顾和总结,团队可以及时发现问题和改进措施,不断提高工作效率和质量,实现项目的成功。
四、敏捷方法的挑战1. 需求变化的管理:敏捷方法强调快速响应变化,但这也带来了需求变化的管理挑战。
团队需要及时识别和理解变化的需求,平衡变化和稳定,避免频繁的变更对项目进度和质量造成影响。
2. 团队协作的挑战:敏捷方法依赖于团队的协作和交流,但团队协作并不总是容易实现的。
团队成员可能来自不同的部门和文化背景,沟通和协作的问题可能会影响项目的进展和质量。
3. 需求的优先级和价值:敏捷方法要求团队按照客户需求的优先级和价值进行工作,但如何确定需求的优先级和价值并不总是容易的。
论文题目 基于

软件开发过程的敏捷方法在项目管理中的应用探析一、引言随着信息技术的飞速发展,软件开发已成为企业和组织中不可或缺的重要组成部分。
然而,传统的瀑布模型软件开发方法往往面临着开发周期长、适应性差、需求变更困难等问题。
为了解决这些问题,敏捷开发方法逐渐兴起并得到广泛应用。
本文将从软件开发过程的角度,探析基于敏捷方法的项目管理在软件开发中的应用。
二、敏捷方法的概述敏捷软件开发是一种以迭代、增量和协作为核心的软件开发方法。
与传统的瀑布模型相比,敏捷方法更加注重实效、用户参与和灵活性。
敏捷方法的核心原则包括响应变化、人与交互、工作软件、可持续发展等。
常见的敏捷方法包括Scrum、XP(eXtreme Programming)、Lean等。
三、敏捷方法在项目管理中的应用1. 项目需求管理在传统的瀑布模型中,项目需求通常在项目启动阶段被固化,并很难进行调整。
而敏捷方法通过项目的迭代开发,能够更好地适应需求的变化。
团队可以在每个迭代周期内,根据反馈和需求变更,对项目需求进行调整和优化。
这样可以降低项目失败的风险,提高项目交付的成功率。
2. 项目沟通与协作敏捷方法强调不同角色之间的沟通与协作。
团队成员之间通过日常站会、迭代计划会议和需求评审会议进行沟通与交流,及时解决问题,保持项目的进度和质量。
此外,敏捷方法还鼓励客户和用户的积极参与,使得软件开发更加贴近实际需求。
3. 项目进度和质量管理敏捷方法通过迭代开发的方式,有助于项目管理者进行有效的进度和质量控制。
每个迭代周期结束后,都会有一个可工作的软件版本交付。
这样的交付周期能够让项目管理者及时了解项目进展情况,及时进行调整和控制。
同时,敏捷方法还强调自动化测试和持续集成,保证软件开发质量。
四、敏捷方法的优势和局限性1. 优势•灵活性:敏捷方法能够快速适应需求变化和市场变化,提高项目成功率。
•可视化:敏捷方法通过迭代交付,能够让项目管理者更好地了解项目进展和风险。
•用户参与:敏捷方法鼓励用户的积极参与,使得开发出的软件更加符合实际需求。
敏捷软件开发方法的典型应用场景

敏捷软件开发方法的典型应用场景敏捷软件开发方法(Agile Software Development)是一种以迭代、循序渐进的方式进行软件开发的方法论。
相较于传统的瀑布模型,敏捷方法更加注重透明、灵活和快速响应客户需求。
在实践中,敏捷方法被广泛运用于各个领域,特别是在以下几个典型应用场景中具有显著的优势。
一、初创企业的快速迭代初创企业通常要面对市场动态变化快、需求不断变更的挑战。
敏捷方法的快速迭代特性能够帮助初创企业建立起快速学习和适应的能力。
通过将整个项目划分为若干个迭代周期,每个迭代周期内实现一个有价值的功能,初创企业能够根据市场反馈及时调整产品方向,并快速迭代推出适应市场需求的产品。
二、复杂软件系统的开发在开发复杂软件系统时,需求往往会面临变更和缺失的情况。
采用传统的瀑布模型难以满足这种不确定性。
而敏捷方法的迭代开发模式,可以在每个迭代周期内不断验证和调整需求,减少风险。
通过迭代的方式,开发团队可以逐步设计、开发和测试系统的各个模块,最终集成成一个功能完备的软件系统。
三、跨部门协作的大型项目大型项目通常需要跨多个部门的协同工作,而不同部门之间的沟通和合作常常成为项目进展的瓶颈。
敏捷方法通过多元化的角色设置和持续的信息交流,能够促进各部门之间的沟通和协同。
通过每天的短暂会议(Daily Stand-up Meeting),团队成员可以及时了解项目进展及问题,并及时进行解决。
这种敏捷的沟通方式,能够提高项目的透明度和响应速度,从而增强项目的成功概率。
四、市场推广和广告活动的项目市场推广和广告活动通常需要紧密的协调和灵活的反应能力。
敏捷方法的快速迭代和优先级管理特性,能够满足市场推广和广告活动项目的特殊需求。
通过快速迭代的方式,广告项目可以根据市场反馈及时调整宣传内容、推广渠道和广告方案,提升广告活动效果。
同时,敏捷方法的优先级管理也能够帮助项目团队明确目标和任务的重要性,合理安排项目资源。
综上所述,在初创企业、复杂软件系统开发、跨部门协作的大型项目以及市场推广和广告活动项目中,敏捷软件开发方法都具有独特的优势和应用价值。
敏捷软件开发项目管理实践
敏捷软件开发项目管理实践随着信息技术的快速发展,软件开发也变得越来越重要。
为了更好地贯彻软件开发,人们开始使用各种各样的项目管理方法。
其中,敏捷软件开发项目管理方法已经成为业内的主流,具有广泛应用的前景。
敏捷软件开发是一种注重团队合作、注重反馈、注重交付的软件开发模式,它将不同的工作流程组合在一起,从而明确了各个工作流程之间的分工和协作。
敏捷开发方法最早起源于20世纪90年代的软件开发实践,随着时间的推移,越来越多的企业和组织选择采用敏捷方法来开发软件。
敏捷软件开发项目管理方法的三大核心价值:1.客户至上敏捷开发方法允许客户随时参与项目开发,在开发过程中,客户可以随时提出意见和建议,从而确保软件产品能够真正地满足客户的需要。
在这种方法下,开发者可以更快地响应客户的需求,全力以赴地为客户提供最好的软件产品。
2.自我组织敏捷开发方法允许开发团队自我组织并自我管理,从而提高工作效率和工作质量。
具体来说,团队可以根据自身特点和需求决定如何完成任务,搭建自己的开发框架,制定自己的开发计划。
3.迭代式开发敏捷开发方法采用迭代式开发的方式,每个迭代都是一个小的软件开发过程,可以让开发者更加关注客户的需求,更好地参与软件开发中。
在这个过程中,开发团队可以根据客户反馈的结果进行不断地调整并不断完善软件,从而提高工作效率和工作质量。
如何实践敏捷软件开发项目管理?要实践敏捷软件开发项目管理,我们应该采用一下几种方法:1.团队建设敏捷开发方法强调自我组织、互相合作的基本原则,因此,必须建立一个高度团结的团队来共同完成任务。
在团队建设过程中,必须注意以下几点:(1)建立强大的领导力。
领导者必须拥有高超的技能、良好的组织能力和交流能力,以确保团队高效运作。
(2)树立团队精神。
团队成员必须意识到自己是一个团队中的一员,并始终保持团结、协作的态度。
(3)采用权威方式来建立团队。
领导者必须建立权威、公正、透明的管理机制来保证团队内部的公平性。
产品研发中的敏捷项目管理应用有哪些
产品研发中的敏捷项目管理应用有哪些在当今竞争激烈的市场环境中,产品研发的速度和质量直接影响着企业的竞争力和生存能力。
敏捷项目管理作为一种灵活、高效的项目管理方法,在产品研发领域得到了广泛的应用,并取得了显著的成效。
那么,产品研发中的敏捷项目管理应用具体有哪些呢?一、敏捷项目管理的核心理念敏捷项目管理强调适应性和灵活性,以应对不断变化的需求和环境。
与传统的项目管理方法相比,敏捷项目管理更注重团队的协作、快速反馈和持续改进。
其核心价值观包括个体和互动高于流程和工具、工作的软件高于详尽的文档、客户合作高于合同谈判、响应变化高于遵循计划。
二、产品研发中敏捷项目管理的应用1、短周期迭代开发在产品研发中,敏捷项目管理采用短周期的迭代开发模式。
将整个产品研发过程划分为多个短周期的迭代,每个迭代通常持续 1-4 周。
在每个迭代结束时,交付可工作的产品增量。
这种短周期的迭代开发模式能够快速验证产品的想法和假设,及时获取用户反馈,根据反馈进行调整和优化,降低项目风险。
例如,一家互联网公司开发一款新的移动应用,采用两周一个迭代的方式。
在每个迭代结束时,进行内部测试和用户体验测试,收集反馈,然后在下一个迭代中进行改进。
通过这种方式,产品能够不断优化,更符合用户的需求和期望。
2、团队协作与沟通敏捷项目管理强调团队成员之间的紧密协作和高效沟通。
在敏捷团队中,成员通常包括产品经理、开发人员、测试人员、设计师等,他们共同组成一个跨职能的团队。
通过每日站立会议、团队协作工具等方式,保持信息的透明和共享,及时解决问题和协调工作。
比如,在一个软件研发团队中,每天早上会进行 15 分钟的站立会议。
每个成员简要汇报昨天的工作进展、今天的工作计划以及遇到的问题。
通过这种方式,团队成员能够快速了解项目的整体情况,及时发现和解决潜在的风险和问题。
3、用户故事和需求优先级排序在产品研发中,敏捷项目管理采用用户故事的方式来描述需求。
用户故事是从用户的角度出发,对需求的简短描述。
Scrum敏捷开发模式的介绍与应用
Scrum敏捷开发模式的介绍与应用1. 介绍Scrum敏捷开发模式Scrum是一种敏捷开发模式,最初应用于软件生产。
它侧重于通过灵活、快速的迭代方法进行软件开发的管理,以便更好地满足客户需求和产品功能。
Scrum在行业内具有良好的声誉,因为它通过缩短开发周期和提高生产效率来增强团队的协作和创造力。
2. Scrum的核心特点Scrum敏捷开发模式有三个核心特点:Sprint,Product Owner和Scrum Master。
Sprint是团队开发的短期目标。
在每个Sprint中,团队将致力于实现一些具体的任务,同时不断地反馈和改进产品。
Product Owner是负责管理项目计划和优先级的人。
他/她的工作是确保团队开发的产品是真正满足需求的,并在开发周期中尽可能地提高价值。
Scrum Master是团队的负责人,他/她确保团队能够在所有方面高效地运转。
Scrum Master还是团队沟通和协作的主要推动力。
3. Scrum的优势Scrum敏捷开发模式的最大优势是其能够快速、灵活地适应客户需求变化。
通过迭代开发,团队能够及时地得到反馈,并在下一个Sprint中进行改进。
此外,Scrum还可以促进跨职能团队合作,提高效率和被动协作能力。
因此,它已成为当今IT行业最为流行的开发模式。
4. Scrum的应用场景Scrum适用于任何需要快速开发、需求经常变动、需要跨职能合作的项目。
特别是在软件行业,Scrum已成为最受欢迎的项目管理方法之一。
同时,Scrum还被广泛应用于其他领域,如生产制造、建筑、医疗和旅游业等。
5. Scrum的实现步骤实施Scrum需要经过以下步骤:(1)确定产品需求和目标;(2)创建Scrum团队;(3)制定Sprint计划和目标;(4)安排Sprint开发周期;(5)组织日常的Scrum会议,包括每日站会、Sprint回顾和Sprint规划会议;(6)确保团队的沟通和协作;(7)不断分析和改进。
项目管理中的敏捷方法与实践
项目管理中的敏捷方法与实践敏捷方法是一种快速、高效、灵活的项目管理方法,是近年来越来越受欢迎的方法。
敏捷方法的本质是秉承“变化优于计划”的原则,能够帮助团队以更快的速度响应变化并构建高质量的产品。
本文将介绍敏捷方法在项目管理中的应用以及一些实践技巧。
一、敏捷方法在项目管理中的应用敏捷方法在项目管理中主要应用在以下方面:1. 敏捷开发:敏捷开发是一种以迭代、快速响应客户需求和持续集成为特征的开发方法。
它鼓励团队有更频繁的交流和协作,不断优化产品和流程。
2. 敏捷项目管理:敏捷项目管理是一种以团队协作、快速响应变化、持续交付为主要特征的项目管理方法。
它与传统项目管理的区别在于,它强调团队在整个项目周期中的协作、频繁的交流和反馈,以便更快地做出适应于产品的变化。
3. 敏捷测试:敏捷测试是一种在开发早期就将测试工作融入到开发过程中的测试方法。
与传统测试不同的是,敏捷测试更侧重于通过持续测试、提供及时反馈等方式来确保产品的质量和可靠性。
二、实践技巧在实践敏捷方法时,以下技巧可以帮助团队更好地应用:1. 制定清晰的目标和计划:首先需要确立项目的目标和计划,明确团队的角色和职责,并且要将目标和计划与团队成员进行充分的沟通与协商。
2. 确保开发周期的灵活性:敏捷方法要求团队在项目过程中具有灵活性,能够根据市场或客户的反馈随时进行变更。
因此,开发周期不应过长,在一定周期之内要形成可交付的产品,以便及时响应市场变化。
3. 鼓励团队协作:敏捷方法强调团队协作和交流,让各个团队成员在工作中都能起到积极的作用。
因此,需要让各个小组之间保持良好的沟通和协作,及时共享信息和心得。
4. 持续交付:敏捷方法重视持续交付,把产品快速交付给客户,以尽快地验证需求的正确性和及时修改产品。
这要求团队的技能要非常强大,能够迅速地开发出原型,及时测试、修正。
5. 持续测试:敏捷方法鼓励团队在整个开发周期中通过持续测试来确保产品的质量和可靠性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浅谈敏捷项目管理在软件开发中的应用
摘要:本文先介绍了使用传统项目管理技术管理软件开发项目的方法,然后介绍了使用敏捷项目管理的初步实践,通过两者比较,提出了使用敏捷项目管理进行软件开发的方法。
一、使用传统项目管理技术管理软件开发项目的方法
按照《人月神话》的说法,软件开发是个焦油坑,书店里关于软件开发管理的书籍林良满目,各个软件开发组织也在尝试和应用不同的软件开发管理办法,希望寻找到“软件开发的银弹”。
在软件开发管理中,引入项目管理的办法,已经得到广大软件开发管理人员的一致认同,但对于具体实施何种项目管理办法,各个软件开发组织都有不同的答案,更多的迷茫,因为引入的项目管理办法不能从根本上解决软件开发项目面临的进度拖后、费用超支等问题,软件开发的银弹到底在哪里?
以下是笔者对国内软件开发组织不同项目管理成熟度的归纳和总结,大概可以分如下几类;1)小作坊、混沌形的,这样的组织还处在接单求生存的阶段,管理者还根本没有项目的意识,以满足客户需求、定制开发和回款为第一要务;2)尝试按照项目管理的思路与方法管理软件开发项目,但
发现推行困难,不得要领,目前很多中小型的软件开发组织都处于这个阶段;3)大型的软件企业,已经通过CMM|ISO认证、有足够的资源做保障,实行规范的项目管理做法,如一些软件外包工厂。
本文主要讲述处于第二个层次的软件开发组织的项目管理问题。
软件开发项目管理涉及非常多的内容,从软件开发本身的业务出发,有需求管理、变更控制、配置管理、测试管理、系统分析与设计等;从项目管理的知识领域角度,有范围管理、时间管理、沟通管理、人力资源管理等内容。
按照传统的经典项目管理方法,通过一定的项目管理模板与IT工具,总结多个项目的经验,笔者总结有如下经典步骤来完成项目管理的计划编制与进度控制过程:
计划编制的经典步骤:
①建立企业和项目资源库:这个是进行项目管理的基础工作。
②设置项目日历、资源日历。
③设置项目的主要里程碑点。
④在WBS(工作包)下列出工作清单(Task,Activity)。
工作分解结构(WBS)和作业是进行项目范围管理的途径。
⑤对每个Task估计工期。
⑥连接每个Task间的逻辑关系(SS,FS,FS,FF,延时)。
⑦加载完成每个Task所需要的资源和资源数量。
⑧进度计算后,看开完工里程碑是否符合合同或业主要求,看资源负荷是否过大。
⑨看进度计划是否需要调整。
⑩调整的方法为:压缩关键路径上Task的工期,多投入资源以缩短工期,分解较长工期的作业。
⑾看调整后的进度计划是否合适。
合适的话,则把第一份计划,保存为目标计划(Baseline)。
⑿张榜发布第一版本计划,通知项目干系人。
进度控制的经典步骤:
①确定进度报告的周期,以周计还是以月计。
②下发第一个报告周期内所有成员的Task清单(例如内容、质量要求、时间要求)。
③第一个报告周期结束时,各个成员反馈自己负责的Task实际进展(例如实际开始时间、实际结束时间、完成百分比、尚需工期、本期的资源消耗数量、工作结果的提交)
④汇总各个成员的进度报告,产生实际进度计划。
⑤把实际进度计划与目标计划(Baseline)做对比,监控主要的里程碑点是否还符合业主或合同的要求,周例会上针对每个员工的任务完成情况作对比。
⑥如果不符合,则调整计划,并存储为新的目标计划。
⑦下发下一报告周期项目成员工作内容清单(Task)。
⑧……循环往复,直到项目结束。
计划编制的其他技巧:
①团队成员依据责任分工,协同完成计划编制工作。
②编制多层计划(适用于大型的项目,项目群管理)。
③编制滚动计划(适用于工期很长的项目)。
上述方法对于任何传统项目或IT实施服务项目,都是适用的,而且可以达到很好的项目,也是实施项目管理的必由之路。
笔者对于本事业部所有的IT服务项目,都是使用这个方法进行管理,达到了项目进度控制的目的。
但对于软件开发活动,由于其与传统项目如工程建设项目的显著区别,在应用上述方法与步骤时,往往达不到理想的效果,很多软件开发组织在推行这套管理思路与方法的时候,也遇到了很多困难。
主要表现在:
1)传统项目的时间估算可能存在历史或经验数据,而软件开发的活动工期估算却是因人而异;
2)软件开发包含大量创新性活动,而这些创新性活动很难确定合适的工期;
3)经典的计划编制方法中,强调作业间的依赖性(逻辑关系),以作业间逻辑关系来推算和安排项目进度,而在实际的软件开发活动中,意义不大;
4)新型的软件开发方法,如迭代开发,很难就单个作业(功能点)反馈进度,因为某个功能开发在周期内是反复进行的,进度反馈可操作性差。
5)我们需要反思这样一个问题:“项目管理如何为一个项目增加价值”,因为很多开发人员把项目管理活动如工时填报、进度反馈做为额外的负担,认为项目管理师日常行政管理活动,不为项目增加价值;
反思传统项目管理技术在软件开发活动中的应用,我们发现:这样的做法过于强调计划管理和控制的自动调节模式,而对项目管理应该做的重点―实施―不够重视。
针对软件开发活动,传统计划存在一定的问题:如计划的动机通常来自于项目之外,即制定计划的目的可能是为了满足管理的要求,而不是基于需要完成的工作;制定计划的动机往往与控制欲望有关,而不是与实际工作的实施需要有关;制定计划的人不参与实际工作,项目经理为了控制
目的而制定的、以任务为基础的计划与开发人员的实际工作几乎没有任何联系;站在项目管理的角度,计划和控制成为了焦点,而具体做事被看作是最不重要的,项目任务的合法化优先于产生的结果。
上述问题导致项目管理活动与软件开发的具体活动存在脱节和两层皮的问题,客观上导致了管理费的增加,而看不到项目管理对于项目的真实价值。
二、使用敏捷项目管理的初步实践
在当前的市场条件下,为商业竞争的需要,开发团队必须有以更快的速度开发和交付质量更好、更具客户价值和创新性的产品。
软件开发的方式须由预见性(以计划为推动力)向适应性(对不确定性的探索)转变,以满足客户对创新的不断需求。
与此相适应,项目管理也需要强调速度、机动性和质量,一种区别于传统结构化、改良或创新的项目方法,敏捷项目管理就诞生了。
敏捷项目管理的核心是敏捷软件开发,与传统软件开发模式相比,敏捷软件开发突出如下四点:1)个体和交互胜过过程与工具;2)可以工作的软件胜过面面俱到的文档;3)客户合作胜过合同谈判;4)响应变化胜过遵循计划。
敏捷项目管理是侧重于实施的模式,而不是侧重于计划和控制的模式。
在敏捷项目管理中,项目经理的首要任务是促进产品构想的构思,并指导团队去实现该构想,而不是制定计划和进度表、控制进度,保证“计划”
得以实行。
当然敏捷项目管理不是反对计划的模式。
计划(和控制)是敏捷项目管理的组成部分,只不过它不是重点。
在做好做实需求管理、变更管理、测试管理、配置管理、分析与设计管理等业务的基础上,笔者在自己的团队中推行“以构架为中心、用例驱动、迭代开发”的敏捷项目管理方法。
试图在对传统项目管理方法反思的基础上,提高项目管理活动对于项目成功的真正价值。
“以构架为中心、用例驱动、迭代开发”三句话来自IBM的RUP软件开发过程,是一种重量级的软件开发过程指南。
需要有明确的责任分工和大量的过程文档,显然不适合中小型开发团队。
但却道出了成功进行软件系统开发的核心要素:缺乏良好的构架,软件可维护性差,质量不行;必须是用例(需求)驱动;迭代开发又称增量开发,指构建软件的方式,整个生命周期依次由几个迭代组成,每个迭代是自包含的迷你项目,他们由活动组成,例如,需求分析、设计、编程和测试。
每次迭代之后将产生一个迭代版本,这是一个部分完成的系统,但它是稳定的、完整的和被测试过的。
在流派上,敏捷包括Scrum、极限编程、统一过程(RUP)、Evo等方法。
结合团队实际情况,综合各种方法,进行了如下一些尝试性实践:2)采用迭代的开发方式:我们约定每次小版本的发布周期为1个月,每周进行一次迭代,经过4次迭代,小版本即可发布试用。
每次小版本包括若干需要实现的Feature,在每次迭代中,Feature细化为用户Story,而对于每个Story的实现,则再细化为具体的任务(Task)。
这样的划分,与WBS的
划分基本一致,不同的是,传统项目管理的Task很重要的一个属性是时间,以及作业之间的逻辑关系,而迭代开发中的这种划分,却是为了更好的完成任务,Task使用Size度量工作量的大小,并且使用看板管理每次迭代的总体进度。
3)变传统的计划编制与进度控制模式为直观的看板式管理办法:
通过把Feature、Story、Task以看板的形式,直观的体现在团队成员面前,团队成员可以更好的理解当前任务及进度,并且项目管理不自觉地已经蕴含在日常活动中,项目管理这支手看不不见了,但仍旧在起作用,团队的知识工作者则获得了更好地工作环境,公司获得了更高质量、更及时的的交付产品。
三、总结
通过敏捷项目管理的初步实践,团队的产品交付有了固定的频率,每次迭代出来的都是可以直接交付客户使用的版本,也防止了需求蔓延导致项目进度拖后挫伤成员积极性等事情的发生,极大的提高了团队成员的积极性和生产效率。
PowerOn各个小版本的交付周期平均缩短1.5个月,保证了公司为应对市场变化而提高产品研发效率的战略要求。
敏捷项目管理在传统项目管理的基础上,把项目管理的职能化“有形”为“无形”,适合知识型员工的、带有创新性质的中小型项目,为我们缩短产品交付周期、提高员工积极性,营造良好的团队文化提供了一条新的途径。