添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

10.png 软件项目管理中的4P



在日常的软件开发中,很多人可能认为只要技术实力够了,不需要任何的软件项目管理。但殊不知的是, 软件项目管理 对于整个软件项目起着至关重要的作用,甚至有可能关乎到软件项目的生死存亡。一项调查显示, 70%的项目失败是由于管理不善引起的 ,而并不是因为技术实力不够的原因。

那在软件项目管理当中,重要的4个因素又是什么呢?

在下面的这篇文章当中,将讲解软件项目管理中的4个重要因素4P, people product process project


一、项目管理的重要性和定义



1、重要性(两个阶段)


(1)20世纪70年代中期

①70%的项目失败是由于 管理不善 引起的,而并不是因为技术实力不够;

管理是影响软件研发项目 全局 的因素,而技术只影响 局部 的因素。

(2)20世纪90年代中期

美国软件工程实施现状的调查:

10%的项目能够在预定的费用和进度下交付;

软件项目管理成为软件项目开发中最重要的 核心问题 之一。


2、软件项目管理的定义


(1)定义

软件项目管理是为了使软件项目能够顺利完成,而对 成本 人员 进度 质量 风险 等进行分析和管理的活动。

(2)对象

软件工程项目 ,它所涉及的范围覆盖了整个软件工程过程。

(3)何时(即什么时候做项目管理)

这种管理在技术工作开始之前就应 开始 ,在软件从概念到实现的过程中 继续进行 ,当软件工程过程最后结束时才 终止


二、管理四要素4P



1、管理的四要素(4P)


  • 人员People —— 成功项目的重要因素;
  • 产品Product —— 要开发的软件;
  • 过程Process —— 软件工程的框架活动,包含了任务、里程碑、工作产品以及质量保证点;
  • 项目Project —— 开发软件所需要的所有工作


2、软件项目中影响最终结果的要素


  • 规模
  • 提交的期限
  • 预算和代价
  • 应用领域
  • 运用的技术
  • 系统约束
  • 用户需求
  • 可提供的资源


3、项目管理关心的问题


  • 产品的质量
  • 风险的识别和管理
  • 度量
  • 代价估算
  • 项目进度
  • 和客户交流
  • 项目成员
  • 其他资源
  • 项目监控

PS: 以下将对4P的内容进行详细分析。


三、项目参与者类型(people)



项目参与者类型一般包括以下几类:

  • 高级管理者 :负责定义业务问题;
  • 项目(技术)管理者 :必须计划、激励、组织和控制软件开发人员;
  • 开发人员 :负责开发一个产品或应用所需的专门技术;
  • 客户 :负责说明待开发软件相关需求的人以及其他风险承担者;
  • 最终用户 :一旦软件发布成为产品,最终用户是直接与软件进行交互的人

总结: ①高级管理者,即 定义业务问题 的人; ②项目管理者,即 管理软件开发 的人; ③开发人员,即 应用技术开发软件 的人; ④客户,即 提出软件需求,并承担一定风险 的人; ⑤最终用户,即 与软件交互 的人。


四、项目小组结构(people)



1、项目的三种一般小组组织形式


(1)民主分散式 (Democratic Decentralized, DD)

(2)控制分散式 (Controlled Decentralized, CD)

(3)控制集中式 (Controlled Centralized, CC)


2、关于小组结构的说明


(1)DD(民主分散式) :没有固定的负责人,适合 难度比较高、交付期限很长及生存期较长 的项目,最适合于解决 模块化程度比较低 的问题,因为需要通信;

通俗来说 :没有负责人,只有水平通信,成员之间需要广泛的两两交流。

(2)CD(控制分散式) :有一个 固定的负责人 ,若有子负责人,子负责人和总负责人的通信是 垂直 的,而个人间的通信是 水平 的,适合 交付期限较长、比较简单 的项目;

通俗来说 :有固定负责人,成员之间需要交流,成员与负责人之间也需要交流;若有子负责人,成员跟子负责交流,子负责人跟总负责交流。

(3)CC(控制集中式) :负责人和小组成员之间的通信是 垂直 的,适合解决 交付期限比较严格的、简单的、模块化程度高 的项目

通俗来说 :有固定负责人,成员之间不沟通,只跟上级沟通。

:CD和CC两种结构都需要有一个固定的负责人,而DD不用;且会比DD产生更少的缺陷。


3、项目小组人员间的通信路径


11.png 从上图中可以看出,项目小组人数越多,通信路径越多。 通信路径计算公式为

Cn2=n(n−1)2,n表示水平通信成员间的人数C_n^2=\frac{n(n-1)}{2} ,n表示水平通信成员间的人数Cn2=2n(n−1),n表示水平通信成员间的人数


4、小组结构的选择需考虑的因素


对于一个小组来说,选择一个合适的结构需考虑以下因素:

  • 待解决软件项目的 困难程度
  • 产生的 程序规模 ,以代码行或者功能点来衡量;
  • 小组成员需要共同工作的时间( 小组生存期 );
  • 项目所需要的 通信的程度
  • 问题能够被 模块化的程度
  • 待建造系统所要求的 质量和可靠性
  • 交付日期 的严格程度


5、思考题


Q1 :某公司有21名员工,请问分别按DD、CD、CC方式来进行组织结构的划分,各自会产生多少条的通信路径?假设在CD和CC方式下被分成四组,画出大概的组织结构图。

A1

12.png 下面给出 无子负责人 有子负责人 的框架图:

13.png 写到这里,不妨再思考下,在CD和CC方式下被分成 五组 ,有多少条通信路径?组织架构又是怎么样的呢? 评论区留下你的答案~




『软件工程12』软件工程实践方法——软件测试
在一项系统软件完成之后,且在上线之前,需要经过不断的软件测试,找出 bug 和错误,不断修补,才能正式上线。在下面的这篇文章中,将讲解软件测试的一些基础知识以及测试用例的设计和软件测试的步骤。 接下来开始进行讲解。
软件工程之软件需求分析
软件需要解决的是用户所面临的现实问题,但是,这些现实问题需要由软件技术人员来解 决。情况往往是,开发软件的技术人员精通计算机技术,但并不熟悉用户的业务领域;而用户 清楚自己的业务,却又不太懂计算机技术。