且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《嵌入式系统开发之道——菜鸟成长日志与项目经理的私房菜》——01-02 嵌入式系统开发团队

更新时间:2022-09-17 08:45:40

本节书摘来自异步社区《嵌入式系统开发之道——菜鸟成长日志与项目经理的私房菜》一书中的第1章,第01-02节,作者 邱毅凌,更多章节内容可以访问云栖社区“异步社区”公众号查看。

01-02 嵌入式系统开发团队

嵌入式系统开发之道——菜鸟成长日志与项目经理的私房菜

菜鸟:“你的意思是说,我们的团队也是编制不全的啰?如果是这样,我们怎么还敢承接那个***际大厂的开发项目?”

PM:“刚刚谈的是人力与资源1的匮乏,我可没说我们团队编制不全。一般研发单位都有很严谨漂亮的组织架构,但这不代表每个小组都会有合适且足够的人力配置。先不管团队中现有人力的多寡与素质,就以功能面来看,一个开发嵌入式系统的研发团队,至少应该有以下的小组。

  • Project Management:项目管理组
  • Hardware:硬件组
  • ID design & Mechanisms:产品外观与结构设计组
  • Embedded Software:软件组
  • Firmware:固件组
  • System:系统组
  • Application:应用程序组
  • Testing & QC/QA:测试与质量小组
  • Supporting:支持组(生产联系、美工、法务、行政事务等)”

菜鸟:“除了硬件与结构小组之外,基本上,好像和课本写的软件开发团队也相差无几吧?”

PM:“但课本恐怕没跟你说有些组员的工作是跨组的吧!应该这样说,我们团队的状况是,几乎没有人只会或只需要做某个小组的工作。举例来说,项目刚开始时,项目管理组会比较忙,此时,几乎所有人都要帮忙评估规格、进度以及技术可行性,至于设计阶段则几乎是全员参与。当硬件工程师开始找零件、规划硬件架构,固件工程师必须和硬件工程师密切合作。同理,在项目的不同阶段,各有不同的人力瓶颈。前期阶段,上层的人要帮底层的人;中期阶段,固件的人要帮系统的人,系统的人要帮AP的人;后期阶段则所有的人都要帮忙测试与debug等。”

菜鸟:“一个人负责多件事情不是很容易造成混乱吗?这样工作效率会高吗?”

PM:“这也是没有办法的事,我们只能尽量做好时间与人力的配置。在团队的组织表中,每个重要的工作项目都有其对应的小组及负责人,这些小主管必须对项目状态、风险管理及人力调配付出相当多的精力。我就只有这些人力,为了调配他们去追赶几乎无法达成的出货日期,只好把每个人都当成全能在用,这并非我们公司与项目独有的现象,我想多才多艺2是业界对‘优秀嵌入式系统工程师’的基本要求。

但请注意,我可不是说时间与人力吃紧时就允许草率地执行设计工作,人力短缺就可以不写文件!人少有人少的办法,无视设计与文件工作,不但不能节省时间,反而导致项目失控或失败,但教科书上往往无视这个普遍存在的现实。”

菜鸟:“你是说,软件工程那套对嵌入式系统开发不适用啰?”

PM:“你还是没搞懂。第一,我从来没有贬低软件工程或对象导向开发模式的意思,它们也都是经验和天才的累积。我的重点是软件工程教科书中无法完全考虑所有的现实状况,偏偏这个状况又是业界普遍的现象。第二,上述的现象并不只发生于嵌入式系统或电子产品开发,我想,一般的软件公司或游戏开发公司也有这种看似漂亮的组织表,但人力永远捉襟见肘的状况吧!”

菜鸟:“我大概懂了,但我还是不知道嵌入式系统开发和一般软件开发有何不同,我的工作内容到底是什么?还有,您会把我分配到哪一组啊?”