架构师学习笔记13--开发管理

70%的失败软件项目是因为管理不善,而不是技术。技术只会影响到局部。

加强项目管理,可以控制财务成本、提高资源利用率;改进客户关系,缩短开发时间,降低成本,提高利润、生产率、产品质量和可靠性,完善公司内部协调等。

软件开发管理分为

软件范围管理
软件进度管理
软件成本管理
软件配置管理
软件质量管理
软件风险管理
开发人员管理

7个方面。

一、项目的范围、时间和成本

(一)项目范围管理
项目的任务是什么?发起人要通过项目获得什么样的产品和服务?这些都属于项目范围的范畴。

包括

项目启动、范围计划编制、范围定义、范围核实和范围变更控制

5个部分。其中正确的范围定义是项目成功的关键。

1、项目启动
2、范围计划编制
将项目所需工作渐进明细和形成文件
3、范围定义
将项目需要交付的成果细化。
正确的范围定义是项目成功的关键,如果范围定义不明确,变更会使成本大大超出预算,破坏项目开发节奏,打击士气。
4、范围核实
项目干系人(发起人、客户)正式接受项目范围的过程。范围核实需要审查可交付成果和工作结果(即验收?),如果项目被提前终止,范围核实过程应当对项目完成程度建立文档。
5、范围变更
确认变更范围和是否已发生,确保各方对变更的接纳,以及对变更进行管理。
变更管理必须与其他管理结合一起使用,如成本控制,进度控制、质量控制。

(二)项目成本管理
项目需要花费多少?资金来源如何?
项目成本不仅包括开发成本,也包括开发之前立项阶段及软件在运行中的费用,以及培训、各种硬件设施费用等。
所谓项目成本管理,是保证在批准预算内完成项目所需要的过程。包括

资源计划编制、成本估算、成本预算、成本控制

4个主要部分内容。
成本控制必须与其他管理结合,如成本偏差应对不当,容易引起质量和进度问题,甚至项目后期出现无法接受的风险。

(三)项目时间管理
项目需要多长时间?进度如何安排?
时间管理确保项目按时完成。包括

活动定义、活动排序、活动历时估算、进度计划编制、进度控制

5个部分。

二、配置管理与文档管理
(一)软件配置管理
记录产品历史,维护产品版本。工具比如有VSS,SVN等。

(二)软件文档管理
包括

开发文档、产品文档、管理文档

三、软件需求管理
需求管理的目的是控制和维持事先约定,保证项目开发过程的一致性,使用户能获得最终想得到的产品。

(一)需求变更
新增或改变原有需求。
1、项目启动阶段的变更预防
需求分析阶段工作越到位,变更就越少,即使有,则可能是超出合同范围,需要另外处理。
2、项目实施阶段的变更处理
看变更是否可控。应该树立变更必然、可控、有益。需要注意以下几点:
1)需求与投入有关。需求变,则软件投入也要变,是有代价的,否则客户得寸进尺。
2)需求变更要经过出资者的认可,使变更有成本概念
3)变更再小,也要经过正规需求管理流程
4)注意沟通技巧

(二)需求跟踪
定义需求变更流程,分析需求变更影响,控制变化的版本,维护需求变更记录,跟踪每项需求状态。

四、软件开发的质量与风险
(一)软件质量管理
1、质量计划
在计划阶段,主要做计划,定义优先级,提供相应准备或资源

2、质量保证
对软件质量进行测量、分析,提供质量改进的依据。

3、质量控制
评审、调试和测试,监视项目,判断是否达标,杜绝导致项目不合格的根源。

(二)项目风险管理
1、项目风险
1)内部技术风险
新技术,不切实际的要求
2)内部非技术风险
公司战略,预算等非技术因素
3)外部法律风险
许可,专利等
4)外部非法律风险
政治,天灾人祸,影响最大

2、风险管理
1)风险列表
架构师学习笔记13--开发管理_第1张图片

架构师学习笔记13--开发管理_第2张图片
2)风险分析
3)风险应对
4)风险监控

、人力资源管理
追求最有效地使用项目人员。
(一)组织规划
划分项目角色、职责等。组织形式有三种方案:

1、垂直团队
团队成员多为多面手,一人身兼数职。功能模块分配给个人或小组,负责完成。
优点:功能实现目标清晰,人员得到锻炼;
缺点:可能不是最有效率的,完成的质量也不是最好的。

2、水平团队
团队成员多为专家。一人或小组同时处理多个功能模块,每个成员负责自己擅长部分。
优点:效率、质量高
缺点:沟通成本高,项目管理难度大

3、混合团队
专家和多面手联合。多面手完整负责一个功能模块,专家在其间合纵连横。优点和缺点都是前两个的联合。

项目推进过程中,团队成员数量应该不是恒定的,否则会出现头尾过剩,中间不足的情况。

(二)人员招募
项目经理是团队的核心,直接影响项目的成败。一般要求其具备以下能力:
1、领导力
1)授权与分配职责
2)善于激励
3)以身作则
4)正确的抉择

2、沟通
及时沟通,集思广益,

3、人际交往
协调、争取资源

4、抗压

5、培养

6、时间管理

(三)团队建设
形成一个有战斗力的团队。

六、软件的运行与评价
软件交付后,用户的打分。通常,关注以下几点:
1、稳定性和可靠性
2、是否满足需求
3、带来的好处

七、软件过程改进
有CMM、CMMI、ISO9000等模型。

你可能感兴趣的:(学习笔记)