误打误撞进入
配置管理这个行业约2年,还是有很多东西不清楚。网上倒是有很多软件类配置管理的知识可以获取、
学习。但总觉得使不上劲,好像有一层云雾笼罩着,摸不清方向。曾经一度想加入
测试或研发团队,通过了解研发流程,以便提出合适的配置流程和方案。无奈还是隔靴搔痒地在综合办里坐着,只能通过和研发人员沟通、看博客混论坛来了解这个领域的状态。
今天又仔细看了构建管理的相关定义,突然有了一些豁然开朗的感觉。写出来和各位同仁探讨,不足之处,还望不吝赐教。
配置管理是缩写是CM (Configuration Management),而业界很多人却称自己是SCM(Software Configuration Mangement, 软件配置管理)。但是却没有与之相对应的HCM (Hardware Configauration Management)。如果在
谷歌或
百度搜索配置管理,顺藤摸瓜会发现与之关联密切的一些术语,比如:构建,编译,打包,发布,部署等等。
软件配置管理的体系和工具都已经很成熟(但这不表示我们这个国家的多数软件公司已经在用它们),而硬件方面的就较少。而这套成熟的软件系统又显然不太适用于芯片类和系统类的产品。
造成这种配置管理软件强而硬件弱的现象,笔者考虑主要是下面的原因:
1)配置管理对工具的要求较高。由于软件行业在这方面有着天然的优势,对应的解决方案就比较多(实现相对容易)。例如
IBM和MS就不乏这样针对软件研发过程的产品。
2)软件公司的开发模型大致相近(或分为几类)。这类产品将标准的软件研发过程包含在内,很快在其它软件公司中得到应用和推广。
而芯片类和系统类的工程师在开发类似定制软件的技术实力和动力方面都不足(不会像软件公司那样做好了还可以作为产品销售)。因此,芯片行业缺少通用的配置流程和可选工具就不奇怪了。
目前,我们能做的就是按照公司的研发流程和cmmi等标准的要求,参考当前软件配置管理的优秀实践,定制地开发复合公司需求的配置管理方案。解决代码管理,编译,测试,发布等问题。
芯片产品包括:芯片设计(最终形成芯片的硬件部分)和固件设计(boot、cos、驱动、下载工具等)。
对于芯片硬件的设计,其研发流程很长。与软件类的差别就比较大了,比如加入了仿真、模拟、版图等环节。
对于芯片固件的设计,可以参考普通软件类产品的配置管理流程。
当然,虽然可以借鉴现成的流程,但工具却不一定能套用。因为芯片固件采用的是嵌入式开发(例如用C语言编写)。
软件配置管理的思路有很多值得借鉴之处——比如,构建自动化、测试自动化、自动打包、自动编译。这些工具或环境,其实就是将研发流程中可以让机器做(而且可能比人做更高效、准确)的部分单独拿出来,尽可能地让机器(编译服务器、构建服务器)实现。 包括版本控制、质量控制(自动测试)、编译。
当然,以上的分析也只是为芯片类的配置管理找到了一个可能的方向,剩下就是进一步的确定需求、制定解决方案、实施、试点、推广。
如果有在
华为海思或其它芯片类公司
工作的配管,看到这篇
文章,也可以与我交流。 yanyuzuo@qq.com
和做配管的同行交流多了,似乎有一种观点,配置管理和
项目管理、
质量管理一样,在不同的公司有很大的差异性。
但是,拿发展成熟的制造业来说,ERP系统几乎已经成为标配,各个公司的ERP系统也许会有细节不同的地方,但其功能却相差无几。
配置管理也是一样,我们可能需要定制,但是一定有一套基础的系统(base),是放之四海而皆准的。