《项目管理软件工程与安管实践.docx》由会员分享,可在线阅读,更多相关《项目管理软件工程与安管实践.docx(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、项目管理、软件工程与安管团队实践1、 培训目标l 了解掌握项目管理、软件工程的基础知识l 通过相关知识的理解增强团队意识和产品意识,并树立服务意识l 明确团队建设目标和产品建设目标,尽早建成优秀团队2、 项目管理基础知识2.1影响项目进程的因素l 软件过程模型:瀑布模型、迭代模型、形式化的变换模型l 项目干系人:积极参与项目、或其利益因项目实施或完成而受到积极或消极影响的个人和组织l 组织:客户单位、公司、部门、项目组、PMO等一切关联组织2.2 项目管理过程l 戴明环l 过程组2.3项目管理的内容l 整体管理l 范围管理l 时间管理l 成本管理l 质量管理l 人力资源管理l 沟通管理l 风险
2、管理l 配置管理l 需求管理l 知识管理l 外包管理l 采购管理2.4 项目管理的核心四要素及其关系l 产品建设的总成本大与小,总时间多与少,总体质量好与差受产品范围大小的制约l 在产品范围为一个定值时,成本、时间、质量的标准将此消彼长,在进行产品建设时需把握平衡,不应使某一个或两个要素的标准过度2.5 人力资源管理-团队建设与管理2.5.1 团队建设的目标l 提高团队成员的个人技能,以提高完成项目活动的能力l 提高成员之间的信任感和凝聚力,通过团队合作提高工作效率2.5.2 优秀团队建设所经历的阶段l 形成期:个体成员从不同的组织转变为团队成员,开始相互认识,并形成共同目标。个体成员通过各种
3、渠道和方式互相了解,找到属于自己的角色并开始承担起相应的团队任务。这一阶段团队往往会沉浸在对未来美好的期待中;l 震荡期:团队成员开始执行分配的任务,一般会遇到超出预想的困难,希望被现实打破,个体之间开始争执,互相指责,并且开始怀疑项目经理的能力并消极对待工作。这个阶段士气明显下降,冲突和不和谐是这个阶段的显著特征;l 正规期:经过一段时间的磨合,团队成员之间互相熟悉和了解,矛盾基本解决,项目经理能够确立正确的关系。这一阶段团队接受了这个工作环境,项目规程得以改进和规范化,控制和决策权从项目经理移交给了项目团队,凝聚力开始形成,每个成员为取得目标所作的贡献得到认同和赞赏,成员之间可以自由的,建
4、设性的表达他们的情绪及评论意见。在这个社会化过程之后,大家建立忠诚和友谊,甚至是超出工作范围的友谊;l 表现期:随着相互之间的配合默契和对项目经理的信任,成员积极工作,努力实现目标。这一阶段的工作绩效很高,团队有集体荣誉感(常将团队换成第一称谓,如“我们那个组”或“我们部门等”,并努力捍卫团队声誉),信心十足,相互依赖度高,经常合作,并在自己的工作任务外尽力互相帮助,团队精神和集体的合力充分体现,是一个1+12的阶段。2.5.3 成功团队的特点l 团队目标明确,成员清楚自己的工作对目标的贡献;l 团队的组织结构清晰,岗位明确l 有成文和习惯的工作流程和方法,而且流程简明有效l 项目经理对团队成
5、员有明确的考核和评价体系,工作结果公开公正,赏罚分明l 组织纪律性,违反纪律往往会牺牲多数人的利益,以人为本不是以个人为本l 相互信任,善于总结和学习2.5.4 冲突管理方法l 问题解决:冲突双方一起积极的定义问题、收集问题的信息、开发并分析解决方案直到选择一个最合适的方法来解决问题,这样双方都会满意即双赢,是冲突管理中最有效的方法l 妥协:冲突双方协商并寻找一种使矛盾双方都有一些程度满意的方法,即大家都做一些让步,这种方法是相对问题解决方法较好的方法l 求同存异:冲突双方关注一致同意的观点,避免不同的观点,这可以保持一种友好气氛,但是避免了解决冲突的根源。即大家先冷静,先把工作完成。l 撤退
6、:就是搁置问题,以后解决l 强迫:赞同一个人的观点而不管另一个人的观点,一方赢一方败,除非是没有办法时,否则一般不推荐这样,因为这将导致另一个冲突的发生。3、 软件工程基础知识3.1 软件开发模型的分类l 瀑布模型:是一种严格定义的方法,将软件开发过程分为软件计划、需求分析、软件设计、程序编码、软件测试和运行维护6个阶段,形如瀑布流水,最终得到软件产品l 迭代模型:在软件开发初始阶段只能提供基本需求为背景的开发模型,包括演化模型、喷泉模型、螺旋模型、统一开发过程和敏捷方法等l 形式化变换模型:基于形式化规格说明语言和程序变换的软件开发模型,它对形式化的软件规格说明进行一系列自动或半自动地程序变
7、换,最后影射为计算机能够接受的软件系统3.1.1 演化模型即原型法,根据用户调用原型的过程中提出反馈意见和建议,对原型进行改进,获得原型的新版本,重复这一过程,直到演化成最终的软件产品。l 优点:任何功能一经开发就能进入测试,以便验证是否符合产品需求,可以帮助引导出高质量的产品要求。l 缺点:容易出现各种风险:不切实际的进度和预算,项目可控性降低,产品性能不佳,不切实际的性能期望、设计不佳、可维护性差、目标偏移、开发效率较低原型法和敏捷方法最大的区别是,原型的功能不是实际可用的功能,实际开发阶段原型很可能会被抛弃或部分抛弃;原型的功能不能用来评价实际的软件系统。3.1.2 螺旋模型是瀑布模型和
8、演化模型的结合体,它将原型实现的迭代特征和线形顺序的控制和系统化的方面结合起来,实现软件的增量版本的快速开发l 优点:强调风险分析,使得开发人员和用户对每个演化层出现的风险有所了解,继而做出应有的反应。因此特别适合庞大、复杂并具有高风险的系统l 缺点:需要开发人员具有相当丰富的风险评估经验和专门知识,另外,过多的迭代次数会增加开发成本,延迟提交时间3.1.3 喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于面向对象的软件开发过程,对各个开发阶段没有特定的次序要求,并且可以交互进行,在某个开发阶段可以随时补充其它任何阶段中的遗漏。l 优点:各活动之间无明显边界,只用类和关系来表达分析
9、、设计和实现等活动,从而较容易实现活动的迭代和无间隙,提高软件项目开发效率,节省开发时间。l 缺点:因开发阶段无明显界限和次序要求,对必须的过程资产容易忽略,比如文档等,对开发人员的经验和素质要求较高,并要求团队较为稳定。喷泉模型和敏捷方法最大的区别是,喷泉模型是最终交付而不是敏捷提倡的多次持续交付3.1.4 统一开发过程UP(Unified Process)是将项目管理、业务建模、分析与设计等统一起来,贯穿整个开发过程。在时间上,UP被分解围四个阶段,分别是初始阶段、细化阶段、构建阶段和移交阶段,每个阶段结束时都要安排一次技术评审,评审通过才可进入下一个阶段。这四个阶段就是一个开发周期,每次
10、经过这四个阶段就会产生一代软件。除非软件退役,否则通过重复同样的四个阶段,产品将演化为下一代产品,但每一次的侧重点都将放在不同的阶段上。用户需求的变化、运行环境的变更、基础技术方面的变更等都会引发演化过程。l 优点:UP使团队中的每个开发人员的见解和思想得到统一,沟通更为容易,增强了开发人员对软件的预见性,提高了软件质量,并有效缩短了软件从开发到投放市场的时间l 缺点:太过庞大和复杂,不能快速适应需求的变化,而且变更一个需求要经历复杂的过程和很多额外的工作。3.1.5 敏捷方法l 敏捷宣言: 个体和交互胜过过程和工具; 可工作的软件胜过大量文档; 客户合作胜过合同谈判; 响应变化胜过遵循计划。
11、l 敏捷12原则: 尽早持续交付有价值的中间软件使客户满意 即使到了开发后期,也欢迎需求变化,利用响应变化创造竞争优势 经常交付可工作的软件,间隔时间越短越好,可以是几周到几个月 开发全过程,业务人员和开发人员必须天天都在一起工作 为开发人员提供环境和支持,给予信任,以人为本的构建项目 团队内部,最有效的地沟通方式莫过于面对面地交谈 工作的软件是度量进度的最首要标准 提倡可持续的开发速度,责任人、开发者和客户应保持一个长期的、恒定的开发速度,反对无限制加班,因为这样会使团队的精力过早耗尽,过早的对项目失去兴趣从而得到事与愿违的结果 不断关注好的技能和设计会增加敏捷能力 开发者本质是简单的,不管
12、明天的需求,只采用符合今天需求的简单设计,今天的设计考虑太多明天的需求,就有可能做了很多的无用功 自组织的团队才能做出最好的架构设计和需求分析 团队应定期在如何更有效工作方面进行反省,然后对自己的行为做出改进l 主要的敏捷开发技术 极限编程 自适应软件开发 水晶方法 特性驱动开发 动态系统开发方法 测试驱动开发 敏捷数据库技术 精益软件开发l 缺点: 客户参与度往往依赖于客户的意愿和客户自身的代表性 团队成员的性格可能不适合激烈的投入,可能无法做到与其它成员之间的良好沟通 对系统的变更作出优先级排序可能是极端困难的 维护系统的简洁性往往需要额外的工作,但迫于移交时间表的压力,可能没有时间执行系
13、统简化过程3.2 产品线方法软件产品线(software product line)是一个十分适合专业的软件开发组织的软件开发方法,能有效地提高软件生产率和质量、缩短开发时间、降低总开发成本。软件产品线的特征为:产品线是一个产品集合,这些产品共享一个公共的、可管理的特征集,这个特征集能满足选定的市场或任务领域的特定需求。这些系统是遵循一个预描述的方式,在公共的核心资源(core assets)基础上开发的。软件产品线开发有四个基本技术特点:过程驱动、特定领域、技术支持和架构为中心。与其他软件开发方法相比,软件开发组织选择软件产品线的宏观上的原因有:对产品线及其实现所需的专家知识领域的清楚界定,
14、对产品线的长期远景进行了策略性规划。3.2.1产品线定义软件产品线方法是软件工程领域中软件架构和软件重用技术发展的结果。与软件架构一样,目前,软件产品线没有一个统一的定义,常见的定义有:(1)将利用了产品间公共方面、预期考虑了可变性等设计的产品族称为产品线。(2)产品线就是由在系统的组成元素和功能方面具有共性和个性的相似的多个系统组成的一个系统族(3)软件产品线就是在一个公共的软件资源集合基础上建立起来的,共享同一个特性集合的系统集合(4)一个软件产品线由一个产品线架构、一个可重用的构件集合和一个源自共享资源的产品集合组成,是组织一组相关软件产品开发的方式(5)产品线是一个产品集合,这些产品共
15、享一个公共的、可管理的特征集,这个特征集能满足选定的市场或任务领域的特定需求。这些系统是遵循一个预描述的方式,在公共的核心资源(core assets)基础上开发的。根据CMU/SEI的定义,软件产品线主要由两部分组成:核心资源和产品集合。核心资源是领域工程的所有结果的集合,是产品线中产品构造的基础。也有组织将核心资源库称为“平台”。核心资源必定包含产品线中所有产品共享的产品线架构,新设计开发的或通过对现有系统再工程得到的、需要在整个产品线中系统化重用的软件构件。与软件构件相关的测试计划、测试实例,以及所有的设计文档,需求说明书和领域模型还有领域范围的定义也是核心资源。产品线架构和构件是软件产
16、品线中的核心资源中最重要的部分。(即核心资源除了构件还有文档等附属品)综上所述,某个公司是否适用于使用软件产品线开发方法,最主要的判断点在于是否能够抽取可以在所有产品集合中可系统化重用的软件构件,即核心资源。3.2.2建立产品线的方式软件产品线的建立需要希望使用软件产品线方法的软件组织有意识的、明显的努力才有可能成功。软件产品线的建立通常有四种方式。(1)将现有产品演化为产品线。将特定产品的构件逐步的、越来越多的转化为产品线的公共构件。主要优点是实施风险最小,但总周期和总投资都比使用革命方式要大。(2)用软件产品线替代现有产品集。基本停止现有产品的开发,所有努力直接针对软件产品线的核心资源开发
17、。这种方法的目标是开发一个不受现有产品集存在问题限制的、全新的平台,总周期和总投资较演化方法要少,但因重要需求的变化导致的初始投资报废的风险加大。另外,基于核心资源的第一个产品面世的时间将会推后。(这个就是基于现有产品集的革命方式)(3)全新软件产品线的演化。当一个软件组织进入一个全新的领域开发一系列产品时,同样也有演化和革命两种方式。演化方式将每一个新产品的需求与已有产品线核心资源进行协调。优点是前期投资少,风险较小,第一个产品面世时间早。缺点是已有的产品线核心资源会影响新产品的需求协调,使成本加大。(4)全新软件产品线的开发。优点是一旦产品线核心资源完成后,新产品的开发速度将非常快,总成本
18、也将减少。缺点是对新领域的需求很难做到全面和正确,使得核心资源不能像预期的那样支持新产品的开发。3.2.3产品线活动从本质上看,产品线开发包括核心资源库的开发和使用核心资源的产品开发,核心资源的开发和产品开发可同时进行,也可交叉进行。有时,把核心资源库的开发称为领域工程,把产品开发称为应用工程。下图说明了产品线各基本活动之间的关系。产品线的开发包括资源开发、产品计划和产品开发几个步骤,产品线分析是资源开发的一部分。产品线分析能否为并行开发提供机会,对产品线开发来说至关重要。减少产品线进入市场时间的唯一途径就是使资源开发并行进行。对产品线分析而言,意味着要尽可能快发现重大设计信息。因此,是否进行
19、了充分的产品线分析,对于软件产品线的成功实施起着十分重要的作用。4、 安管团队研发管理实践暨培训考试题根据所掌握的管理与软件工程方面的理论知识,结合安管产品和团队的现状,回答以下问题:1、 安管产品的干系人都有哪些?除了各级领导之外,你认为特别重要的干系人有哪些?为什么?(20分)(1)答:干系人包括:安管产品项目经理、产品经理、安管产品的使用者(客户或销售)、项目团队成员(研发、测试等)、PMO、出资人(公司各级领导)等;注:只要跟安管产品有利害关系者的 都是相关干系人;(2)答:我认为特别重要的干系人如下:产品经理:在安管项目上产品经理间接地充当了用户指引了安管产品的方向和目标,确定了安管
20、产品的范围;项目团队成员:项目经理负责了产品的整体管理过程,利用管理工具协调组织相关人员,监控产品的整个生命周期,保证了产品的正常实施的关键人物;研发成员则负责了产品的产出必不可少的担当者;测试人员则保证了产品的质量,为达到用户的满意要求这是关键;2、 结合2014年安管产品的建设情况,说明安管产品建设的管理过程优点和不足有哪些?对于不足如何改进?针对安管目前的情况,哪些管理内容需要进一步加强?(20分)答:(1)优点:产品及项目定制小组分开责任制管理还是比较成功的,可以充分的保证每个成员工作的单一性,进而保证了工作的高效和反应的迅速敏捷,同时也培养成员的责任感增加了个人对问题解决处理的能力;
21、对于产品功能的建设不再是闭门造车,对于各项功能建设都是有理有据这也是一大进步;缺点:可能成员之间工作的交互性变少,转嫁到个人头上的压力变大;(2)改进:对于任何的方案建设讨论最好全员参加结合每个人的意见,让每个人都参与其中;具体的工作实现可以落到个人,这样可以让每个人都感觉到自己有参与其中,没有脱离大团队,同时也能促进交流分散压力,对于具体的工作执行也更加有信心;加强:我还是觉得应该加强一些部门之间的交流活动;如何提高或调动成员的积极性也是一个长期值得思考的问题;3、 安管团队建设,目前处于什么阶段?为什么?如果团队中进入新成员,团队应该属于什么阶段?对建成优秀团队有什么意见和建议?(20分)
22、答:(1) 我觉得目前团队处于表现期,因为无论是成员之间还是上下级之间都比较信任,会不自主的相互帮助解决问题,团队荣誉感和凝聚力也比较好;(2) 如果团队进入新成员看新成员比例,如果是5老:5新的话,会处于振荡期,如果是7老:3新的话会处于正规期,如果是3老:7新那会处于形成期;(3) 对于建成优秀团队,一定要保证成员之间的相互信任,团队成员变化不要太大,新老成员比例最好在3:7左右,要保证和培养成员对产品和公司的信心、对团队成员的努力付出给予肯定;4、 结合2014年安管产品的建设过程,谈谈这个过程更接近哪个软件开发模型?为什么?(10分)答:(1) 迭代模型(喷泉模型)(2) 纵观2014
23、年安管的建设过程,我感觉主要是以市场的问题反馈用户的主要需求为导向,进行的相关调研开发实现,从需求采集到最后的产品上市没有严格的次序要求,主要是交替进行随时补充最终达到完善产品的目的; 产品-用户-反馈改进 重复迭代这一过程,演化出最终的高质量软件产品;5、 说明一下当前安管产品现状和今年安管产品的建设目标与团队特点,今年应该选择怎样的软件开发模型?为什么?(20分)答:(1) 我觉得安管产品现状和市场之间还是存在一定的距离,如何能做到真正的以市场为导向驱动安管产品发展,这还是需要每一个人去思考的问题;究竟能够利用何种渠道去发现真正的市场需求,这才是关键;所以安管产品今年的建设目标是 建设出市
24、场更需要的产品来;目前团队每个人还是比较明确各自的工作目标、团队的组织结构很清晰、工作流程也比较简单、成员之间也比较信任、纪律性也较好;(2) 我觉得2014的成功是一个宝贵的过程资产,也是一个产品管理成功的案例,今年也完全可以按照 迭代模型 去实施产品开发;不断的迭代不断的得到反馈,得到大家对产品的共识增加对产品的信心;6、 安管产品是否适合采用产品线方法?为什么?(10分)答:适合采用产品线方法(1) 安管产品的行业领域性很专一,大部分的市场需求是特定的,能够抽取出公共核心资源,构建可重用花的系统构件;(2) 采用此法可以更好的对安管产品进行长期的远景规划,不断规划完善产品的各个组成部分,形成一个庞大的多模块的灵活组成的产品;(3) 在公共的核心软件资源集合基础上进行可重用的架构和二次开发,可以大大的缩短开发时间降低开发成本;(4) 目前如果安管采用产品线方法的话,这也是一种使安管快速适应市场变化、不断演化产品发展壮大的一种好方法;