聊一聊大型嵌入式软件开发的高效管理模式之前传2:大型工程开发所需的角色定义

  一个公司要开发一款复杂的技术产品,从前端到后端,从评估、立项、开发、测试、生产、出货,一般会涉及BU、RD、TD、ED、QA等多个部门。涉及到的角色包括产品经理、项目管理、系统工程师、软件工程师、硬件工程师、测试、工程、品质等人员。这些环节网上或者一些书籍都有介绍,我这里简单说下我的理解:

  • 产品经理:英文缩写PM。是研发的甲方。会对要开发的产品有明确的定义,给研发、测试等其他后端的部门提需求和要求。以及要负责对接业务和客户等。产品经理这个角色十分重要,需要有十分准确敏锐的对市场的判断和对公司研发能力的把握。有时候PM的一个错误决定,会导致整个研发团队白干一年,颗粒无收。
  • 项目管理:英文缩写PL。负责串联起整个产品开发的各个部门人员和各个环节。百事通,各个环节都得懂一些,然后要按照立项时的规划,定时定候来跟踪各个人员。如果出现了delay需要了解上升反馈解决,如果各部门合作间之间矛盾需要协调。PL给人的感觉就是事事都在,每天都在开会和会议记录。好的PL同样也十分重要,能带动整个团队的开发节奏。
  • 系统工程师:英文缩写SE。有些公司会称做结构师。SE需要有很高的技术水平。要对软件、硬件、生产等各个环节都十分熟悉,要对产品未来几年的竞争力和技术含量做有效评估。如果在开发过程中遇到重大技术瓶颈,需要SE提供解决思路。PM在制定产品的时间点和需要实现的功能时,主要是会听取SE的意见。能成为SE应该是很多工程师的终极目标。
  • 软件工程师:负责完成产品的软件部分的开发。一般会占整个开发团队的70%以上的人力。会有SW TL作为一个产品的软件开发负责人。TL在管理上需要和其他各个部门进行开会沟通,实时更新开发进度、接受需求变更以及了解测试情况、在技术上需要对软件的架构进行分解和分工,分配每个软件工程师的工作任务,跟踪各位人员的完成情况,以及解决开发过程中遇到的技术难点。由于软件开发占了整体开发的大部分工作, 而且在技术上也需要串联测试硬件等部门,因此嵌入式系统开发的软件工程师在技术上往往是要求最全面(软件,硬件,测试,产品通吃)的角色,也是最忙的角色。其中TL又是软件工程师里最典型的代码。一个技术和管理技能优秀的TL,对整个嵌入式产品开发的技术部分起到核心的作用
  • 硬件工程师:负责完成产品的硬件部分的开发。和在学校做的项目不同,一般公司都有要求硬件投板必须在1~2次内成功,重复修改硬件会对公司产生重大的金额损失。硬件在需要在完成当代产品的基础上,评估未来近代产品的硬件设计是否通用或者可沿用。另外,由于合作关系,价格以及供求关系等因素,硬件工程师并不是想用什么器件就用什么器件的,需要和供应商谈,和采购谈。例如最近全球缺芯的大环境下,很多原本用于生产的元器件都买不到了需要更换替代料。经验丰富的硬件工程师对产品进度的保证也起到重要的作用。
  • 测试工程师:负责完成产品的测试部分。测试环节我个人认为是除了软件开发外第二忙碌和重要的角色了。测试要提供数据证明产品的软件、硬件、结构等等各个环节是否达到立项时的要求,同时还要挖掘开发过程中潜在的各种各样的bug。传统的测试环节主要是基于系统测试,也就是俗称的黑盒测试。随着这几年的测试技术的理论和技术的提高。也逐渐诞生了集成测试、用例开发测试、灰盒测试等更自动化,和深入源码的测试种类。个人认为,测试是一门两级分化很极端的技能。一方面跑一些基本的测试项目确实是一些重复机械的动作,比较枯燥。另一方面,能根据产品的需求和技术的原理,设计出高效的测试用例,成功打出潜在问题,又是一项要求很高而且价值巨大的事情。

  其他品质,工程,业务等角色就不继续介绍了。那部分已经走到产品开发的后期,需要再在后续的文章中做介绍。

posted @ 2022-02-20 16:30  冷剑白狐77  阅读(163)  评论(0编辑  收藏  举报