什么方法论最接近《人月神话》中的外科手术组?

发布于 2024-07-21 17:37:44 字数 1431 浏览 7 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

℡Ms空城旧梦 2024-07-28 17:37:44

One of the patterns mentioned in Organizational Patterns of Agile Software Development is titled "Three to Seven Helpers per Role"; it differs from Surgical Team in that it pays attention to every role, for example it isn't only that the surgeon 'role' that has helpers or relationships: all roles have some number of relationships.

Another pattern from the same source in named "Architect Also Implements", which may be analogous to "Surgical Team" in that the Architect in particular is (presumably) highly skilled.

山有枢 2024-07-28 17:37:44

从文本中我看到以下内容:

敏捷式:

  • 小团队专注于解决特定问题
  • 外科医生之间的协作

非敏捷式:

  • 外科医生是权威,推动计划,确定设计,分配支持任务(将他们视为编码的附属者)并进行编码。 所有这些在方法上都是非常命令和控制的,与自我指导团队相反(与指导团队相比)
  • 似乎没有与业务合作伙伴合作(更不用说与业务合作伙伴频繁合作)
  • 似乎没有优先产品积压,因此外科医生选择重要的东西而不是业务合作伙伴
  • 似乎没有增量交付(紧密的反馈循环)

对于瀑布项目,建议使用专家(外科医生)团队来进行规划、设计、编码等. 并将任务分配给“支持”人员。 在敏捷团队中,测试不被视为支持,而是交付的一个组成部分。

人们无法肯定地说出所提倡的方法论。 然而,它似乎确实使用了语言(项目计划、任务),并假设遵循瀑布方法(由计划驱动的设计、编码、测试等阶段)。 无论使用什么方法,它都是少数人决定多数人工作的方法。

From the text I see the following:

Agile Like:

  • Small teams focused on solving specific problems
  • Collaboration among the surgeions

Non Agile Like:

  • Surgeons are the authority, driving the plan, determining the design, allocating support tasks (viewng them as subservent to coding) and doing the coding. All of those are very command and control in approach and contrary to self directing teams (vs a directed team)
  • There appears to be no collaboration with the business partner (let alone frequent collaboration with the busines partner)
  • There appears to be no prioritized product backlog, thus the surgeon picks what is important not the business partner
  • There appears to be no incrmental delivery (tight feedback loop)

For a waterfall project, it is suggesting to use a team of experts (surgeons) to do the planning, designing, coding etc. and allocating tasks to the "support" staff. On an agile team, testing is not treated as support but an integral part of delivery.

One can't say with certainty the methodology being advocated. However, it does appear to use the language (project plans, tasks) and assume that the waterfall approach is being followed (phases like design, coding, testing driven by a plan). Whatever methodology is being used, it one for which the few determine the work for the many.

思念绕指尖 2024-07-28 17:37:44

我不确定是否有任何方法论真正解决了这个问题,因为这实际上是一个优先考虑开发人员并根据他们的需求调整一切的问题,而不是关于这些开发人员如何实际开发他们的软件的问题。

如果您正在寻找某种方法来实现这一点,我想这可能是个坏消息。 我更愿意将其视为好消息,因为这意味着您可以将这种方法与几乎任何软件开发方法一起使用。

我曾经参与过一个以这种方式运行的项目。 这太令人愉快了,我几乎感觉不好称其为“工作”。 我们四个开发人员(有额外的支持人员,包括偶尔额外的初级代码猴子)在短短 9 个月内编写了大量代码并正常运行。 我去过的其他地方不可能用一个 20 人的团队做这么多事情。

I'm not sure any methodology really addresses that, as it is really a matter of prioritizing the developers and bending everything to their needs, rather that being anything about how those developers actually develop their software.

If you were looking for some methodolgy that impements this, I suppose this may be bad news. I prefer to consider it good news, in that it means you can use this approach with pretty much any software development methodology.

I've worked on exactly one project that was run that way. It was so enjoyable, I nearly feel bad calling it "work". Four of us developers (with extra support personell, including the occasional extra junior code monkey) got a truly prodigous amount of code written and running properly in only 9 months. Other places I've been couldn't have done as much with a team of 20.

以为你会在 2024-07-28 17:37:44

就外科医生而言,关键角色既是领域专家又是实施者。

即,他既是软件程序经理(架构师)又是开发人员。

这种方法可能适合某些短期情况:例如,实时服务器迁移或软件升级等复杂操作。

然而,对于一般开发来说,这种“英雄”方法存在一些问题:

  • 很少有关键开发人员能够充分理解问题领域,并且必须依赖领域专家。 这只是专业化的一个功能——很难找到同时也是律师、医生、会计师或软件建模领域专家的出色程序员。

  • 可扩展性受到可用“外科医生”数量的限制。

  • 其他员工在等待指示时有很多休息时间,因为高度专注的“实干家”也在管理团队。 在手术室中这没有问题,因为您正在处理“零错误”任务和“实时软件”。 但在这种经济环境下,工作量更加分散会更加高效,即使这会导致团队成员之间偶尔出现同步问题。

In the case of a surgeon, the key actor is both the domain expert and the implementor.

I.e., he's both the software program manager (architect) and the developer.

This sort of methodology might fit certain short-burn situations: for instance, a complex operation like a live server migration or software upgrade.

For general development, however, there are a few issues with such "hero" methodologies:

  • Few key developers understand the problem domain to a sufficient degree, and must rely on domain experts. This is simply a function of specialization--it's tough to find kick-butt programmers who also are lawyers, doctors, accountants, or otherwise are experts in the domain the software is modeling.

  • Scalability is limited by the number of "surgeons" you have available.

  • There's a lot of down time for the other staff while they wait on instructions, since the highly-focused "doer" is also managing the team. That's ok in the OR, since you're dealing with a "zero-bug" mandate and "live software." But in this economy, a more distributed workload is more efficient, even if it results in the occasional sync problem between team members.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文