对嵌入式软件研发各角色的理解

在嵌入式行业,从16年工作至今也有四年多了,一直做的研发工作,简单的将自己对研发工作中涉及到的各个角色的理解做个总结(这里的角色不等于一个人,可能一人身兼数职,可能多人的工作合并为一个角色。另外,由于个人经历所限,主要进行的都是软件的开发工作,因此主要是描述一下软件的开发):

首先嵌入式行业的一个项目,基本上目标都是最终产生一个实际产品,因此一定会有一个产品经理的角色。他负责输出产品需求(或者还有一些关键的技术性能和指标)。这决定了产品的定位以及市场价值,基本上决定了该项目的效益上限。个人认为这个角色非常需要对产品的深入理解和对市场的洞察力以及眼光。(能结合公司的发展战略对产品进行定位,同时能明确抓住产品的应用场景,深入了解产品所针对的市场需求和痛点,还要能对产品的需求和成本做出平衡取舍)

由于产品经理是根据市场情况以及产品形态和定位的角度输出的产品需求,这样的需求无法直接用于产品的技术层面开发,需要一个角色将其从技术角度转换为功能需求和性能需求,这个角色就是系统工程师。需求转化应该是这个角色的核心工作,需求转化的优劣,会直接影响后续的设计开发和测试方案的确定,还有生产流程的设计。但他除了进行需求转化,一般还要明确产品的技术框架,从嵌入式产品来说的话,一般包括硬件的核心器件选型,软件的系统方案设计,测试的系统测试方案等。这个明确的过程,一般通过会议的形式体现,同时根据系统工程师的能力会有不同的参与程度。能力强的系统工程师可以确定更多的开发关键点,帮助开发团队少走弯路。个人认为这个角色非常需要比较宽广的技术栈以及较丰富的开发经验。(对于各个技术在特定场景和需求下的落地过程与实际表现要有能力做出不太偏离实际的预期)

接下来就需要进行具体的开发,自然要有开发工程师这个角色。他需要根据系统工程师输出的功能需求和性能需求,输出软件的设计方案。个人认为,设计方案的优劣,最直接的体现就是系统中各个部分耦合性的大小。在可操作性可控的前提下,耦合性越小越好。合理的软件方案设计会让后续的开发工作进行的更加顺利,且很大程度上决定着产品生命周期内的维护成本以及产品稳定性。个人认为这个角色非常需要技术敏感度以及较丰富的开发经验。(对于各个功能和性能需求,可以很快的明确要用什么样的技术方式实现,对于解耦的层级,方式方法也有很深入的理解)

开发完成之后,需要测试,测试工程师就是负责这项工作的角色。他需要根据系统工程师输出的功能需求和性能需求,输出产品的测试方案。测试一般分为硬测和软测。这里主要描述软测。个人认为,测试方案最关键的地方就是测试用例的设计,测试用例的覆盖范围和自动化程度决定了测试过程的效率,自动化程度高的测试过程,测试结果的可靠性更高,对时间和人力的需求更低。个人觉得这个角色非常需要对功能需求和应用场景关系的理解以及较丰富的测试经验。(对于某种功能应该如何进行测试以及可能在某些场景下会有异常要很敏感)

最后就是生产过程,软件研发工作涉及到生产的部分一般有两个,一是需要明确软件如何下载或烧录进硬件中,二是需要明确产线中如何确认软件功能。第一点一般比较容易明确。第二点对于功能比较简单的产品可以不确认或只确认软件的版本即可,对于功能比较复杂或稳定性要求较高的产品一般需要专门设计一个产线测试方案。通常来说可以是有个产线测试模式,通过某种通信接口,生产人员可以与产品进行各种交互确认产品的各个基本功能正常。

对于以上说法,仅是个人之见,各位读者有不同看法或者补充,欢迎留言讨论。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值