【问题标题】:Agile practices on embedded software development [closed]嵌入式软件开发的敏捷实践 [关闭]
【发布时间】:2010-12-21 10:51:28
【问题描述】:

我取得了巨大的成功,例如具有快速的开发周期和持续集成。

但是,由于嵌入式软件编程的特定问题,我认为结对编程或持续的客户沟通不太有用。

你怎么看?嵌入式软件开发中最有用的敏捷实践是什么?

【问题讨论】:

  • 您能否举例说明嵌入式软件开发使您提到的任何一种做法变得不那么有用的原因?
  • 也许是因为我所从事的角色的具体情况,但我一直发现不同的工程师是专业的,例如。在不同的硬件子系统上。我发现在一段代码上协作并不容易,因为只有一名工程师详细了解受影响的硬件,这是嵌入式世界特有的问题。此外,我认为在嵌入式系统中,客户对软件内部工作的了解不如在应用程序软件中那么多,这使得与客户保持持续沟通变得不那么有用。当然这只是一个概括。

标签: embedded agile


【解决方案1】:

我不得不不同意。我已经做到了,大约 10 年前,我与人共同创立了一家专注于嵌入式的敏捷教练公司(我们不再是一家公司,而是 the website is still up 拥有一些有用的资源)。我最近帮助另一家公司在他们的嵌入式项目中采用了敏捷,这对他们来说效果很好。

短迭代、结对编程以及与客户的频繁沟通等敏捷实践对于嵌入式软件而言甚至更为重要,因为这关系到更多风险,因为嵌入式系统通常更难更新/更新成本更高在现场,并且因为它们经常用于关键任务应用程序。

对于结对编程,如果您的公司只有一个人对软件的某个组件一无所知,那将是一个巨大的风险,而结对编程是一种进行廉价知识转移的好方法。两位开发人员都不必是这部分代码的专家。你可以有一个主要的和一个不是的次要。次要合作伙伴能够在程序结构、比较设计决策、确保适当的测试和文档等方面提供帮助。当然,每个开发人员有时必须是主要的,有时必须是次要的,以使交叉培训有效。这也是让新开发人员快速了解您的产品的一种非常有效的方式。

最后,客户关心的是功能和计划,而不是代码。嵌入式不会改变这一点。炫耀你目前拥有的东西以及你接下来打算做什么,确保你在做你应该做的事情。

【讨论】:

    【解决方案2】:

    嵌入式软件开发与普通软件开发没有什么不同,因此您可以使用每一种您认为有用的敏捷实践。

    关于结对编程,我将其视为对类固醇的代码审查。如果贵公司有足够的软件工程师,我看不出它不能用于嵌入式软件开发的原因。

    顺便问一下,在“嵌入式​​软件编程的特定问题”下,您究竟认为什么?我没有非嵌入式软件开发方面的经验,我看不出会有什么不同。

    【讨论】:

    • 补充我上面的评论,我觉得嵌入式软件的范围比例如更广泛。应用软件。所有软件都很复杂,但另外嵌入式软件通常需要在实时行为、与外部事件的交互、与硬件的接口、详细的硬件知识等问题上的专业知识,这意味着两个工程师很难充分了解系统的同一部分能够进行结对编程。当然,理论上公司可以雇佣足够多的工程师来避免这种情况,但实际上这不会发生。
    • @Solano 硬件很可能是定制的,因此两个或更多工程师可以轻松学习如何访问此类硬件。 RT 可能是唯一特定于嵌入式开发的东西。
    【解决方案3】:

    敏捷在许多应用程序中的价值对我来说并不明显。

    许多应用程序(包括嵌入式应用程序)通常包含基于标准的协议或技术。您下载或购买规范,实施规范,随时进行测试,然后就完成了。在我的每日站会中我会做什么,“嗯,今天我阅读标准的第 1 至第 9 页,明天我计划阅读第 10 至第 17 页”。基于标准的开发如何从敏捷中受益?快速响应不断变化的客户输入,嗯,不。标准每天都不会改变。

    如果敏捷软件真的意味着“培训”,那么配对编程就很合适。正如上面所指出的,除非你能负担得起两倍数量的工程师,否则你的工程师可能会有不同的特定技能组合。在一个拥有许多具有重叠重复技能的工程师的大型组织中,也许您可​​以有效地配对工程师。在较小的组织中,这是如何工作的?除非它实际上是配对训练,否则就可以了。不过听起来很贵。

    通常需要大量的基础架构来托管或部署最少量的首次通过功能。我如何为嵌入式飞行控制器或汽车发动机控制器进行测试驱动开发?需要多年的努力才能使基础设施到位以进行测试。我当然不希望我的其他设计师和工程师闲着等待测试基础设施,以便他们可以进行 TDD。我需要标准驱动的开发,同时等待许多部分组合在一起。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多