基线是能够呈现技术状态的一次“快照”,基线由文件、代码、产品组成。
一、基线
根据GJB3206A-2010《技术状态管理》。
基线分为功能基线、分配基线、产品基线。
1. 功能基线
功能基线是由项目合同、任务书、方案等文件构成的基线,这些文件能够完整描述所研制产品的具体功能、性能等;
2. 分配基线
分配基线是由分系统任务书、需求规格说明、分系统方案等文件构成的基线,这些文件能够将产品功能进行分解,分解给不同的研制单位进行不同任务的研制工作,就像家里要装修了,把改电线给了水电工,把铺瓷砖给了瓦工一样,科研团队能够根据分配基线的文件知道自己做什么;
3. 产品基线
产品基线是由所研制的产品、生产规程、工艺规程、批生产规范、说明书、使用手册等构成的基线,这些文件能够说明产品的最终实现过程和方法,通过产品基线单位可以生产出来最终的产品。
二、为什么设置基线
同理于系统工程的概念。
在过去进行作坊模式的生产,大家没有结构分解的概念,会产生分工混乱,效率低下的结果,同时也会发生不合格率的居高不下。
在我国,钱学森首先提出了系统工程的概念,并应用于了军工航天武器装备的制造中。
系统工程的提出成功将复杂的事情进行分解,分解成多个简单的模块。更通俗的理解,家里要装修了,你自己时间又没那么充裕又不是很专业,所以计划分区域进行装修,这个月把厨房装修好,下个月再开始装修客厅,也就是把复杂的事项通过分解方法进行简化。
回到基线上来。
正是由于项目或者产品过于复杂,研制周期太长,所以我们也要对进行一个分解,这回分解的维度是按照时间的维度进行分解,在几个关键的研制时间点上进行分解。那这几个关键时间点怎么选择呢?
通过分别这个项目或者产品在哪一个时间点开始,本项目或产品达到了一个质的飞跃,例如第一章提到的三个基线,正是你完成了项目任务书后,我们可以通过任务书这个文件,很清晰、明确的知道全部的功能和性能是哪些?也就对应了最终顾客需要的产品的功能和性能。这个关键点在于明确了总的需求。接下来的分配基线正是利用系统工程的原理进行了分解,分配基线这个关键时间点是因为此时各个模块知道了本模块的具体任务目标。最后的产品基线,此时最终产品已经成形,能够被使用。这三个基线形成了“总-分-总”的关系,这也正好和系统工程的概念不谋而合。
综上所述,为了更好的完成工程项目活动,通过设置基线,来从时间的维度分阶段把控项目的成功,从而达到最终的成功交付。
拓展:大家可以思考一下模样、初样、正样、批生产等阶段划分与基线设置的区别。
三、为什么设置基线细分基线
根据GJB3206A-2010《技术状态管理》里的规定,仅设置了功能、分配、产品3个通用的基础基线,但对于很多技术复杂、研制周期漫长的项目就会出现一些个性化的项目管理需求。
例如软件开发,在分配基线(需求规格说明编写完毕)建立后,到产品基线(软件交付版本)建立前,这中间要进行软件设计、软件实现、软件测试等很多以技术为主的开发活动,质量管理的核心并不是管理质量的部分,而是通过一系列的控制活动提升项目整体质量(包括技术和非技术)。因此,针对软件开发项目来说,我们应该对足够多活动的软件开发过程进行管理。
四、细分基线
在此给出一种软件开发细分基线作为样例供大家参考,在软件开发过程中包含了软件设计、软件实现、软件测试等过程,当然还能继续细分,如软件设计分为概要设计和详细设计,测试分为单元测试、组件测试、分系统测试、集成测试、配置项测试、系统测试、回归测试等。这上述情况下的软件开发项目中,可以设置开发基线、实现基线、测试基线。
细分基线1【开发基线】
在开发团队完成软件工程的概要设计、详细设计后形成了概要设计说明和详细设计说明,此时建立的基线能够指导进行软件下一步代码开发工作。
细分基线2【实现基线】
开发人员根据设计说明能够进行具体的代码开发任务,完成代码开发所形成的代码清单可以认为是建立了实现基线。
细分基线3【测试基线】
在这里不去讨论具体的软件测试细分,什么单元测试、组件测试、分系统测试、集成测试、配置项测试、系统测试都不具体说明,我们都认为这是一种测试。软件测试还需要编写测试计划、测试说明、测试报告,因此软件开发项目完成最后一项软件测试工作时,即形成了终版的测试计划、测试说明、测试报告,此时我们认为建立了测试基线,能够根据测试基线技术状态文件了解软件测试全部信息。可以开展下一步的软件验收与交付活动。