分享

有点儿好奇,声称要在2040年要把人类送上火星的NASA,是如何做项目管理的

 TopSemic嵌入式 2023-12-26 发布于北京

如何做好项目管理是个老话题,达到把人类送往月球,火星,小到搬一次家,做一道菜,都可以作为一个项目来管理。东方的思维方式和西方的思维方式,往往还是有很大不同。东方善于从大局,整体战略考虑,西方则更善于用逻辑严谨的架构去分析和处理事物。这点儿在餐饮业我们有直观的体会。我们的大厨做菜,一般都会用很多模糊的词汇,比如少量,一些,一匙等。而西餐馆像麦当劳,炸个薯条都会有很细致的流程,会规定薯条的长短粗细,油的温度,时间的长短。我们很难说,麦当劳的薯条会比爆炒腰花好吃,但是它可以通过流程化的管理,快速的把餐厅开到全球,复制中餐馆却比较难。

我们今天不是要做菜,而是要看一下要把人类送往火星的NASA,它的研发流程,有哪些重要的环节,然后在自己的工作中是否有些可借鉴之处。内容来源于NASA官方的系统工程师手册,它从系统工程师的角度,让我们了解如何应对像登陆火星这种挑战。

系统工程师的目标和基本职能

系统工程,是指一种跨多学科的方法论,它涵盖系统的设计,实现,管理,运行以及退役。它是一门整体的、综合的学科,它需要从很多不同工程师的角度进行评估,包括结构工程师、电气工程师、机械设计师、动力工程师、人因工程师(human factors engineers)等等。有时候这些因素是彼此冲突的,这就需要做出最优的决策。所以一些工程师眼中的铁律,放到系统级就不一定是正确的。

管理一个项目通常涉及到三个大的方面:技术方面;项目团队;成本和进度。系统工程师需要关注的是,技术因素对做最终决策的影响,并向项目经理做出反馈。系统工程师不仅要保证把设计做好(get the design right),更重要的是做正确的设计(get the right design),以达到客户的期望。总之,系统工程师要掌握平衡的艺术,在复杂的系统中对组织,成本,技术做出权衡取舍。

大的项目会有整个专职的项目经理,和好几个系统工程师,而对于小公式小项目来说,一个人往往身兼数职,既是项目经理,又是系统工程师,甚至又是工程师,还是老板。即使是一人身兼数职位,我们仍然能从大项目的管理流程借鉴很多思想。

图片来源:NASA Systems Engineering Handbook

流程

主要分为三大块:系统设计(system design), 产品实现(product realiza­tion)和技术管理(technical management).

如上图所示,整个系统工程(Systems Engineering)被划分为17个流程,其中1至9是需要按顺序进行的流程,10至17是贯穿整个产品生命周期的。

左边从上到下是从客户需求,一步一步分解到设计方案,叫系统设计流程。最后要分解到什么程度呢?就是组成系统的每个部件,要么自己设计,要么有可以重用的设计,要么可以从外面买到。再看右边由下至上,从产品实现,集成,到交付用户,叫产品实现流程;中间是计划,控制,评估,决策等管理流程。

项目阶段的划分和要点摘抄

项目按照生命周期来说,划分为3个大阶段,7个小阶段:

预研阶段

Prep-Phase A, Concept Studies

概念研究。在此阶段,广泛研究可行的方案,以及这些方案的可行性,起草系统级的项目需求,大致评估性能,成本,完成时间。找出技术关键点。最后要有仿真结果,分析报告,或实物模型等输出。

规划阶段

Phase A, Concept and Technology Development

概念和技术设计。要确定新系统的可行性,明确系统级的需求,需要研究哪些技术,以及项目管理计划。同样需要搞出点儿仿真结果啊,模型啊,这些东西。还有就是确定商业方面需要做的研究。

Phase B Preliminary Design and Technology Completion

初步方案设计和技术实现。项目细化到足够满足需求。确定组成系统的每一个产品的需求,并完成它们的初步方案设计。做出实体模型或原型机,产品的定义,各部分之间的接口文档。商业研究要有结果。

实现阶段

Phase C Final Design and Fabrication

最终设计和生产。完成每一个子系统的设计,包括硬件,软件。

Phase D System Assembly, Integration and Test, Launch

系统安装,集成测试,发布。在此阶段每一个系统部件都需要完成测试,完成软硬件的集成,确定系统能满足需求并准备交给用户使用。

Phase E Operations and Sustainment

系统运行和维护。在运行期间确定系统能满足最初的需求,并提供支持。实施运行计划。

Phase F Closeout

系统结束。实施分解报废计划,分析运行期间的数据,以及返回的样本。

在这每一个阶段,可以使用前面17个流程中的哪些,有详细的表格,我们不在此一一列出,有兴趣的同学可以自己下载学习。

随后举了个例子,具体如何使用流程。比如在预研阶段,除了做原型定义,还有一个很重要的就是确定运行场景,尽可能包括各种可能性,包括最坏情况。然后在这些场景里模拟原型定义的是否科学合理,是否忘掉了某些东西,各部分需求之间是否有冲突。这些非常重要,因为随着项目真正展开,系统会变得越来越复杂,难以理解和发现问题。在之后的每一个阶段也是要不断严格的依照流程,每一步完成之后再开启下一阶段。

什么是设计验证和设计确认

设计验证,通过性能测试,分析,检查或演示等手段,提供产品已经达到了产品规范的要求。

设计确认,通过实际或模拟场景下的测试,分析,检查或演示等手段,证明产品可以完成用户需求。

这里需要注意的是,NASA认为设计确认可以在产品开发的每一个阶段都可以进行,比如用模型来做,而不是像通常大家认为的,只有在设计验证之后,只有用实际产品才能做。而且越早进行,代价越小,这感觉还是挺有道理的。

要马儿跑,还要少吃草

系统工程师的目标,是要用最少的花费,去建造一个能安全可靠完成任务的系统。有效又好用和少花钱往往又是矛盾的,所以要做好平衡。

尽早发现问题

成本会随着项目的推进指数型上升,这个很容易理解。关键是在此过程中,要动用各种验证手段去尽早地发现问题。在项目后期再提出设计哪里要改动,代价是巨大的。

对系统工程师的能力要求

与之前提到的17项流程对应,对系统工程师也有17个方面的非常详细的能力要求。就拿其中一项技术规划(Technical Planning)来说,要做的事情有:做出计划并管理每一个技术流程;技术路线规划和储备,确定技术报告该怎么写;什么情况下可以开启下一个流程,如何做技术评估;识别出关键技术问题;不同领域之间如何合作;数据如何管理;技术风险管理;有哪些工具和方法可以用;外部技术资源如何获得;获得利益相关方的认可;下达工作指示以推进项目。

要求非常细,总共有上百项要求。根据能力不同,分为4个等级:技术员工,团队领导者,项目系统工程师,总工程师。看来NASA不好混啊!

未完待续。。。

参考资料:

NASA Systems Engineering Handbook.

NASA Systems Engineering Processes and Requirements.


扫码加入嵌入式交流群:

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多