一、什么是项目?

定义:

一种在一段时间内为了创造具有某种特征的产品或者服务而采取的一种努力。比如开发一个游戏,筹划一场婚礼等

特点:

A. 具有明确的目标

B. 具有明确的生命周期

C. 通常涉及多个专业和部门

D. 一般情况下,需要做以往未做过的事情

E. 特别的时间、成本和产品性能(服务质量)要求

二、项目管理

定义:

指在项目活动中,运用专门的知识、技能、工具和方法,使项目能够在限定的资源条件和计划的时间内高质量、高效率地实现或者超过设定的需求和期望的过程

因为项目是适应环境的普遍方式,因此一个组织的成功与否将取决于其管理项目的水平

项目管理权威机构PMI:项目管理协会(Project Management Institute)

项目管理人员资格认证:PMP

一个完整的项目管理流程通常包括五个阶段:启动阶段、规划阶段、执行阶段、监控阶段和收尾阶段,其中监控阶段是贯穿项目管理的整个过程的

三、软件项目管理

定义:

指软件生存周期中,软件管理者所进行的一系列活动,其目的是在一定的时间和预设范围内,有效地利用人力、资源、技术和工具,使软件系统或软件产品按照原定计划和质量要求如期完成

软件项目管理的关注点——4P: 人员 People、产品 Product、过程 Process、项目 Project

人员(People):

  • 人员是软件工程项目的基本要素和关键因素
  • 在对人员进行组织时,有必要考虑参与软件过程及每一个软件项目的人员类型

产品(Product):

  • 定义项目范围,其中包括建立产品的目的和范围、可选的解决方案、技术或管理的约束等
  • 其目的是,从客户的角度定义该产品的总体目标,但是不必考虑这些目标如何实现
  • 软件范围定义了与软件产品相关的数据、功能和行为,及其相关的约束

            1、环境(context):说明待建造的软件与其他相关系统、产品或环境的关系,以及相关的约束条件

            2、信息目标:说明目标系统所需要的输入数据及应产生的输出数据

            3、功能和性能:说明软件应提供的功能来完成输入数据到输出数据的变换以及给出对目标软件的性能要求

过程(Process):

  • 通常将项目分解为任务——子任务等,其分解的原则是基于软件工程的过程

软件项目管理通用过程
  • 软件项目启动前对项目进行可行性分析,以明确项目的目标和范围,从而确定:

    1. 合理精确的成本分析;
    2. 实际可行的任务分解;
    3. 可管理的进度安排
  • 在多个项目方案中选择一个相对完善的方案

考虑交付期限、预算、个人能力、技术界面等限制条件

  • 在正式启动软件项目组前成立项目组,并召开项目启动会议,内容包括:

    1. 项目组的初步交流
    2. 一步对项目目标理解
    3. 对组织形式、管理方式、方针的一致认识
    4. 明确岗位职责
  • 在项目经理领导下,组织不同类型的项目组成员共同协作完成软件项目,存在多种可选的项目组织结构,组织结构的选择对项目的成败具有很大影响;通常选择组织结构时,考虑因素如下:
    1. 待解决问题的困难程度
    2. 目标系统的规模,可用代码行或者功能点度量
    3. 项目组的生存周期,即项目小组需要共同工作的时间
    4. 问题可被分解的程度
    5. 对项目系统要求的质量和可靠性
    6. 可供开发时间的紧迫性,即交付时间的严格程度
    7. 项目组内部的通信的复杂性,即成员之间正式或非正式通信的机制
  • 项目计划是项目组织根据软件项目的目标及范围,对项目实施中进行的各项活动进行周密的计划
    1. 项目计划根据项目目标确定项目的各项任务、安排任务进度、编制完成任务所需的资源预算等
    2. 项目计划包括:工作计划、人员组织计划、设备采购计划、变更控制计划、进度控制计划、财务计划、文件控制计划、应急计划等
  • 软件度量是指计算机软件范围内的测量,主要是为产品开发的软件过程和产品本身定义相关的测量方法和标度
    1. 对软件开发过程度量的目的是为了对过程进行改进
    2. 对产品进行度量的目的是为了提高产品的质量
    3. 度量的作用是为了有效地采用定量的方式来进行管理
    4. 管理人员利用度量来了解软件工程过程的执行情况和产品质量
    5. 需要考虑:合适的度量是什么、所收集的数据如何使用、用于比较个人、过程或产品的度量是否合理
  • 项目预算是指定项目计划的基础
    1. 项目所需的人力(以人月为单位)、项目持续时间(以年份或月份为单位)、成本(以元为单位)等
    2. 参考以前类似项目中的相关数据进行估算;如果无相关可类比项目,可以采用特定的估算技术(例如功能点估算等)
    3. 通常采用多种估算技术进行交叉检查
  • 风险:人员、经费、进度及需求等方面存在的可能影响项目按计划完成的不确定因素
    1. 风险管理:标识软件项目中的风险,预测风险发生概率以及风险造成的影响,并对风险进行评估,找出那些可能导致项目失败的风险,然后采取相应措施来缓解风险
    2. 风险管理贯彻与整个软件工程过程中
  • 在项目实施过程中,将在进度计划基础上跟踪实际执行情况,从而及时发现偏差并采取措施加以调整以确保项目按期完成;进度安排:
    1. 将项目划分为可管理的子项目、任务和活动
    2. 确定任务之间的依赖关系,找出影响项目按期完成的关键任务
    3. 为每个任务分配时间、工作量以及指定责任人,定义每个任务的输出结果及其关联的里程碑
  • 跟踪是控制的前提,它实际上是在项目实施过程中,对影响项目进展的内外部因素进行及时的、连续的、系统的记录和报告的活动,其核心在于反映项目变化、提供相关信息的报告
  • 控制是通过工具和技术对项目计划与实际执行情况进行对比,并对项目的未来走势进行预测,并在此基础上进行项目的各种调整
  • Software Confignation Management (SCM):SCM存在于整个软件过程中,是一种保护性的活动
  • 任务:标识和确定系统中的配置项,在系统整个生命周期内控制这些项的发布和变更,记录并报告配置的状态和变更要求,验证配置项的完整性和正确性

项目(Project):

  • 采用科学的方法及工具对项目基本内容进行管理(有计划、可控制)

            1、明确目标及过程:充分理解需要解决的问题,明确定义项目目标及软件范围,为项目小组及活动设置明确、现实的目标,并充分发挥相关小组的自主性

            2、保持动力:提供激励措施使人员变动最小

            3、跟踪进展:对每个任务的进展进行跟踪,并对其软件过程和质量进行度量

            4、聪明的决策:决策应该保持简单,可实现

            5、项目总结:从每一个完成的项目中获取可以学习的经验

通常,在软件项目管理中会有五大类人员

1、项目管理人员

  • 负责软件项目的管理工作,其负责人通常称为项目经理

2、高级管理人员

  • 可以是领域内的专家,负责提出项目的目标并对业务问题进行定义

3、开发人员

  • 掌握了开发一个产品或应用所需的专门技术,可以胜任包括需求分析、设计、编码、测试、发布等各种相关的开发岗位

4、客户

  • 一组可说明待开发软件的需求的人,也包括与项目目标有关的其他风险承担者

5、最终用户

  • 产品或者应用提交后与产品/应用进行交互的人

项目管理学习——第一课:概述相关推荐

  1. 人类社会发明的第一台计算机是什么,第二周第一课概述计算机

    <第二周第一课概述计算机>由会员分享,可在线阅读,更多相关<第二周第一课概述计算机(18页珍藏版)>请在人人文库网上搜索. 1.电子计算机是20世纪最伟大的发明之一,半个世纪的 ...

  2. python学习第一课

    python学习第一课 课前回顾 1.请求类型: 2.传参类型: 3.postman断言.参数化.多接口参数依赖 接口文档 这个接口是做什么的?URL请求类型参数--> 如何传递参数params ...

  3. CS61C学习 —— 第一课

    目标 CS61C学习 -- 第一课 计算机处理器和内存是如何工作的? 处理器和内存是如何影响软件设计和性能的? 介绍计算机系统领域相关知识(CS 152, CS 164, CS 161, CS 149 ...

  4. JavaScript学习 第一课(一)

    JavaScript学习 第一课(一) 学习内容 一.什么是JavaScript 二.如何引用JavaScript 三.JavaScript使用时注意的事项 四.JavaScript中的保留字与关键字 ...

  5. gb2818的学习第一课

    关于gb2818的学习第一课 一.说明 为什么写这一系列的文章,自己在做gb28181是的一下痛苦的经历,在经过了网上的大量资料终于有所进步,所以想回馈一下大神们. 二.安装 参考文章:Linux编译 ...

  6. python学习第一课——环境配置+比着葫芦画个瓢

    python学习第一课 1. python概览 2. python的运行 3. python的变量.类型与存储 4. 对*.py文件的运行与存储 5. 终端切换路径及目录显示 6. 踩着巨人的肩膀创新 ...

  7. 无人驾驶学习---第一课

    无人驾驶学习-第一课 (本课程内容来自优达学城无人驾驶纳米学位) 车道线识别 内容: 识别出一幅图像中的车道线并将其标注出来 过程: 1.准备一张包含有车道线的图片: 2.读取图片并转换为灰度图: 3 ...

  8. 0.0 目录-深度学习第一课《神经网络与深度学习》-Stanford吴恩达教授

    文章目录 第五课 第四课 第三课 第二课 第一课 第五课 <序列模型> 笔记列表 Week 1 循环序列模型 Week 1 传送门 -> 1.1 为什么选择序列模型 1.2 数学符号 ...

  9. 微信SDK开发学习第一课

    1.为什么学习微信API开发? 微信注册用户6亿,把微信当做推广平台已经成为主流. 2.微信SDK主要功能有哪些? 主要功能:分享给朋友,分享到朋友圈 3.如何使用微信SDK? 3.1 打开微信SDK ...

最新文章

  1. java final修饰符_java final修饰符详解,final修饰方法
  2. Virtual PC 2007下虚拟机与本机双XP系统实现互联与上网详解
  3. top 命令显示隐藏参数列
  4. 1114. Family Property (25)
  5. 数据结构实践——队列数组
  6. 一篇文章了解Liquid模版引擎
  7. Symbol Mc1000 Text文本阅读器整体代码
  8. 信息系统开发平台OpenExpressApp -如何部署OEA应用
  9. 语音信号处理基础(八)——同态处理、倒谱、复倒谱
  10. #简单统计学#加权平均数
  11. java生成图表_java实现将数据生成图表至excel导出
  12. three.js 05-06 之 CylinderGeometry 几何体
  13. cpu架构之体系架构
  14. abrt-hook-ccpp
  15. skywalking 安装部署以及监控远程应用
  16. L1-6 烤地瓜 (15 分)
  17. GBase8d产品admin目录下的文件及文件夹说明
  18. python操作CAD转存dwg文件
  19. jquery easyui中文培训文档
  20. 华为p40pro什么时候能用上鸿蒙系统,华为p40pro可以升级鸿蒙系统吗?

热门文章

  1. Mac 环境下 java 自带的 Jvisualvm 使用笔记
  2. 数据科学中常见的9种距离度量方法(包括曼哈顿距离、欧氏距离、半正矢距离等)
  3. 电路学习实战分析之mos-1
  4. iveryone火速上车 抢第一波
  5. electron-egg 通信
  6. HttpClient示例及资源释放
  7. 小说app搭建—如何搭建小说分销系统?
  8. GIMP:利用蒙板工具实现人像抠图
  9. 小学生认识计算机网络教案,小学计算机教案
  10. [SCOI2005]扫雷MINE