偶有幸经历了多个网络通讯与信息安全设备的技术开发和研发管理工作,这里就嵌入式产品研发管理过程作简单探讨,希望对打算切入和已经在开展嵌入式研发PC软件企业能有一定的参考价值;由于时间和个人能力有限,写得比较粗燥,不正确的地方,接受指正。
从事过PC软件研发和设备研发和销售的企业,在市场营销的时候,可能都感觉到软件很廉价,只有整合到设备后,价值才能倍增。另外一种情况是,市场需求、成本等因素必须以设备的方式提供到市场,到用户手中。这两种情况,就迫使很多传统的软件企业,甚至互联网企业都需要深刻了解嵌入式产品以及项目的研发。
虽然,同是IT类项目研发,但这两种情况还是有一定区别,在顺利推进嵌入式研发项目前,PC软件类企业要作好在战略思想、研发管理方法、配套资源、人力资源、风险管理、配置管理、过程质量控制方面、甚至绩效考核方面,都应该有一定的转变。
关于在战略思想方面,PC软件企业由于自身在嵌入式领域内的缺少经验积累,但自己在研发过程控制方面应该有很多经验,因此需要扬长避短。对于不熟悉的整体方案设计、硬件平台设计、软件体系结构,尤其是硬件平台设计,建议短期内不要急于招聘大量的硬件设计团队,尤其是对时间和风险承受力比较低的情况下。利用已有的在硬件选型有经验的人才开展与其他企业合作,逐步培养、引进硬件设计力量,建立自己的硬件设计力量是一个有效的解决方法。
在产品研发管理方法上,企业应该偏向采用IPD(集成产品开发)方式,较为合适,同时也非常重要。嵌入式项目涉及的流程多,涉及到的环节很多。任何一个环节环节的不顺畅,都会很容易引起相关计划发生变化。因此需要一个团队,可以跨产品、商务、市场、采购、研发、测试,甚至财务等部门进行直接指挥。在已有的项目中,就曾经遇到过类似的问题,因为各种原因,研发资源的采购和研发进度脱节,引起进度延缓。经过后来我们总结,这里面确实,涉及到了商务、采购、财务、研发等部门的信息畅通、以及协调配合问题。
作为PC软件研发,资源相对没有嵌入式项目要求的多。不论是否采用和别人合作,准备一些必需的仪器如示波器、逻辑分析仪、万用表、仿真器、性能测试设备,多台开发主机等非常重要的。嵌入式研发的特殊性,就在于设备的调试没有PC软件方便,有些时候很难辨别清楚是因为软件或硬件设计引起的问题。实践证明,在使用或不使用这些仪器,对于进度有很大影响,尤其对于计划积累自己硬件平台研发力量自己设计硬件平台的企业。这对于PC软件研发企业,可能不容易想到,但如果你想加快进度,这无疑是一个好的建议,尤其在财务方面没有任何不便的情况下。
传统的软件企业的研发人才,虽然擅长PC软件设计。但这才嵌入式项目上,就不一定会成功。如果缺少对整个硬件平台的原理、工作机制,缺少主流嵌入式操作系统如Linux、Wince或Vxworks的了解、缺少对嵌入式特性的了解是很难设计好软件体系结构的。因此有针对性的引入对嵌入式系统设计有经验的专家对团队进行培训就显得非常重要。否则,设计出来的系统可能会出现内存耗尽、文件系统空间骤然减少、容易出现异常宕机、升级不方便、flash存储介质容易损坏、文件系统容易破坏等诸多问题。同样的问题,也会出现在硬件设计人员上面,最明显区别是设计低速与高速多层PCB板是有很大区别的。
根据我的经历的经验和教训:在常规的IT类项目研发风险中,嵌入式研发领域最大的风险来源于缺少嵌入式管理经验的产品和项目管理、硬件平台的设计与选型、过复杂的架构设计。企业在切入嵌入式产品研发时,引入有实战经验的产品和项目管理人员很重要。他可以从整体的需求分析、细化、产品线的规划设计、人员的安排、方案设计、体系架构的设计、进度安排、过程控制等方面,提出有重要价值的意见和方法。其次,硬件平台设计或选型对项目的成功,起着非常关键的重要,这是显而意见的。失败的设计或选型,会带来严重的进度滞后,因此对比同类产品的平台、严谨的评测、选择有实力的平台提供商显得非常重要。千万不能因为较高费用,而选择没有实力的企业。在架构设计方面,在保证适度的灵活性方面,请设计尽量简单,可靠的架构。最典型的方式是采用统一的后台程序管理系统共,而相对对立的功能,涉及成独立的子系统,采用文件或共享内存的方式进行子系统之间通信。太多的创新在设计中是不受欢迎的,尤其在风险承受能力低的产品。根据统计,一个成功的项目,创新点应该小于5%。
嵌入式产品的配置管理,与传统的PC软件有一些区别。在自动的嵌入式image构建、在硬件PCB的版本的控制、对应的芯片型号准确记录非常重要。一个自动的image构建机制,可以为项目的进度监控、质量控制、产品发布打下很好的基础。硬件PCB和芯片型号对应,对于以后的产品生产、升级显得非常关键,否则,可能带来公司的很大风险和损失。
过程和质量控制方面,主要体现在选型、设计和测试方面。选型和设计方面,需要经过技术评审小组从成本、进度、可行性、风险等方面对选型和设计进行表决。而嵌入式系统的测试,更需要对系统知识全面的人才设计测试方案和计划。这样的人才应该在硬件工作原理、稳定性、可靠性、性能评估方面有清楚的了解,对软件与硬件的集成机制有准确的把握,对如何从单机系统、网络、应用整合方面测试产品有清楚的认识。
绩效考核重点,应该在如何迅速、有序提高团队嵌入式开发能力上。从PC软件切换到嵌入式领域,必然有一个过程。因此作为业界流行的正态分布的分级考核机制,需要对应这个过程,对团队的嵌入式研发能力提升、学习动力的激发要起重要的促进作用。
以上是我个人结合自己的工作经验和教训,结合目前PC软件企业的现状,对计划在嵌入式领域有所研发计划的企业,提出了一些思路和参考措施,欢迎大家讨论