嵌入式系统开发项目管理

项目生命周期五大阶段

1、项目启动阶段

(1)项目可行性分析

一个成功的产品,应该从以下3个方面来观察评估:

  • 设计产品:商业行为

    • 产品设计前,要做好市场调查和评估,要考虑产品的时效性、市场需求和技术可行性;

    • 产品设计结束后要写下详细的产品规格(技术层次、人力资源、开发费用、产品成本)

    • 尽量避免中途更改产品规格;

    • 凡事以最终用户需求或体验为准。

  • 管理项目:管理行为

    • 项目经理必须清楚了解其任务事在规定的期限内完成质量可接受的产品开发,在此前提下必须衡量人力及其它相关资源,只做该做的事,能够因时制宜。
  • 开发系统:技术行为

    • 不要追求完美,只需达到在规定的时限,有限的资源条件下,设计开发出“足够好”的满足需求的产品就好。

    • 设计工作一定要确实执行,绝对要文件化。不能为了敢进度而跳过设计直接进行程序编写。

需求管理者确定 ——> 需求分析&Review ——> 项目规模估算 ——> 项目风险分析 ——> 初步项目执行计划&Review

(2)项目授权书

明确说明项目目标与管理方向

明确对授权PM

任何与项目有关的信息

(3)理清必要的约束

确认产品规格(成本/性能/质量/。。。需求)

确认产品限制

初步确认将参与项目的公司与单位

确认开发模式(S/W Development Life Cycle)

Waterfall Model

Prototype Model(初期需求不明确)

Spiral Model(Waterfall + Prototype的多次迭代)

。。。


2、项目规划阶段

初期规划:是否该接这个项目p>

  • 没规划,一定挂!在确定接项目前,一定要做过极为仔细的分析。

  • 完成不可能的任务!因为客户交付的项目肯定不会太简单。

(1)Scope/Time/Cost/Quality Plan

(2)Resource/Communication Plan

(3)Risk Plan

(4)Configuration Plan

(1)项目范围(Scope)管理

妥协的艺术:进度 VS 规格

质能守衡原则,如果客户一再压缩进度,那只能降低规格;若客户一再变更规格,那只能delay进度。

  • 变更管理

    • 所有的变更一定要经过CCB(Change Control Board,变更管理委员会,即与此变更有关的关系人参与决策的会谈)的同意,并造出新的计划书,严禁接受客户私下变更规格的请托。

    • 基础数据不足,项目仍存在许多不定因素

    • 项目成本对需求敏感

    • 经验不足或低劣的成本估算技术

    • 签约前后不连贯

    只有等WBS做出来后,且工作被分割的越细,估算才能最接近实际。但往往实际工作做不可能等你做完WBS才 价。推荐《人月神话:软件项目管理之道》。在嵌入式软件项目中人力成本是总成本最主要的部分;

  • 挣值管理

    主要用于项目成本和进度的监控,它将目前为止所完成的工作与项目计划里的估计值比较,以提供关于项目距离完成还有多远的估量,PM可以得到距离项目完成还需花费多少资源。

  • (4)项目质量(Quality)管理

    • 基本思想

      • 质量是规划出来的,而不是检查出来的,预防重于治疗,要在规划阶段就做好“质量计划”,并明文公布;可以先粗线条定下baseline,再制定细则。

      • 项目质量是所有开发人员工作质量之

      • 质量管理并非一次性活动,而是贯穿整项目生命周期;

      • 质量等级是相对的,以客户需求和价格而定;

      • 质量管理是一种精神,并非通过ISO9000或CMM就能做出有质量的产品。

      • 质量管理系统:ISO9000或CMMI

      (5)项目人力资源(Human Resource)管理

      • 人员的组织管理是否得当,是影响软件项目的决定性因素。

      • MS有一个明确的规则——项目组的人员不要超过10人。

      • 组织结构:

        • 职能型组织(组织与项目利益可能冲突)

        • 项目型组织(资源重复,无法贯彻公司策略)

        • 矩阵型组织(职能或部门经理与项目经理的冲突)

        • 强矩阵组织

        面对风险的4种处理方法

        • 回避:不去碰触会产生风险的部分

        • 抑制:准备足够的时间与金钱,在风险成型时砸下去

        • 舒缓:在风险成型前,就先采取某些措施

        • 逃避:什么都不做,祈求老天保佑

        (6)动手编码前先写设计文件

        从项目开始就应该准备一个服务器存放并管理项目的所有文件,并让所有项目成员都可以很容易取得所需的文件或记录。

        应该被记录的文件包含:

        • 产品规格

        • schedule

        • 硬件设计相关文件(CPU PIN脚配置图、原理图、Layout图等)

        • 技术文件-芯片的datasheet、3rd party软件函式库的API等

        • 系统架构设计规格书(包含各模块API)

        • 测试计划书

        • 测试 告及bug sheets

        • 质量文件

        • 重要会议记录

        • 重要邮件备份

        • 其它需要记录的文档

        (7)设计审查(design review)

        设计审查的原则:

        • 设计审查必须师渐进式的。且要贯穿设计的全过程

        • 设计审查时要邀请该设计的客户参加

        • 越是大范围的设计,越要召集所有项目人员参加。

        (8)实作阶段

        当所有设计文件都通过审查后,就可以进入实作阶段了。其包含以下内容:

        • 程序开发与调试

        • 硬件(电子、结构)开发

        • 软件与硬件测试

        • 质量相同执行

        • 工厂试产

        项目的每一个阶段都应该根据PDCA(Plan、Do、Chick、Act)循环。当在程序编写时发现设计有问题,切不可自行修改,必须暂时局部停下实作的脚步,找出对策,确认影响范围,通过相关单位的设计审查后,才可以再继续实作。也即就是“设计变更”流程

        嵌入式相同开发的成果最终要产品化,所以不可避免要和工厂打交道。

        • 软件工程师必须交付给工厂的项目有:

          • 用来烧录的Binary File

          • 生产线专用自动测试程序与说明书

          • 环境测试专用的测试程序

        • 硬件、电子工程师必须交付给工厂的项目为:

          • 电子电路

          • 电气工程规格

          • 特殊规格测试说明(工厂之前没生产过的功能)

        • 结构工程师必须交付给工厂的项目为:

          • 组合图(把所有零件一一展开)

          • 特殊部品外形图

          • 特殊加工组合图

        4、项目结项阶段

        (1)对外合约结项

        (2)对内项目结项

        项目资料归档

        技术数据归档

        记录经验,累计企业的项目资产

        close meeting,人员解散

        在项目执行期间,制定流程,并使用自动化工具,将项目开发的轨迹(包含程序、文件、bug管理、issue管理、变更管理等)记录下来,并定期备份。

        明确规定执行项目结项流程的起讫时间,最好不超过一周,并于项目成员的部门主管以及现任的项目经理沟通与协调,请这些同事们在某段时间内帮这个项目最后的忙。

        文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92526 人正在系统学习中

        声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2020年10月10日
    下一篇 2020年10月10日

    相关推荐