在项目的哪个阶段,开发商应该开始“吃自己的狗粮”?

时间:2008-10-23 02:01:31

标签: project-management

我们有一个项目即将到来,PM坚持要求团队“吃自己的狗粮”?

在什么时候这样做是否现实?

e.g。假设我们必须编写一个编辑器。我们不能在开始时使用这个编辑器来实际编码,因为它不存在。我们必须使用另一个编辑器。

在项目期间有一段时间,使用有缺陷的编辑器会降低项目的速度并且会适得其反。

那么我们在什么时候切换?

更新:在团队内部进行一些讨论后,我们将在开发过程中强调的要点是:

  • 实施最小的子集,以
  • 开始
  • 尽快识别关键功能
  • 仅切换部分开发人员使用新产品以最大限度地降低风险

12 个答案:

答案 0 :(得分:12)

有些你应该尽快使用它。第一个版本应该被删除,只有你所需的最重要的功能才能将它用作(在这种情况下)编辑器。一旦你开始使用它,你会发现哪些功能很重要。

答案 1 :(得分:4)

<咆哮>

不要生产狗粮,那么你就不必吃狗粮了。

这个生病和愚蠢的短语的起源是什么?狗不生产自己的食物(有一个粗俗的例外)......

< /咆哮>

问PM什么更重要:使用正在开发的产品进行开发,或按时生成高质量的代码?如果有冲突,哪个更重要?

常识性答案是:当比你拥有的工具更好时,使用你正在构建的东西。

答案 2 :(得分:3)

您不必专门切换到使用开发编辑器。开始使用它,直到它影响你的生产,列出有问题的东西,修复它们,重复,直到你能够大部分/所有时间有效地使用它。

答案 3 :(得分:2)

  

在项目期间,使用一段时间   一个错误的编辑器将减缓   项目下来,将是反击   生产性。

听起来你有答案。切换的时间是您的项目不会妨碍生产力。

答案 4 :(得分:1)

这是“依赖”问题之一。一些指导:

  • 在完全烘焙之前使用该项目有哪些风险?它们可以接受吗?
  • 项目进展会更快或更慢,这是一个问题吗?
  • 从业务角度来看,最终产品的质量会有所改善吗?
  • 你最终会得到一些能让程序员提高工作效率但对客户没用的功能吗?
  • 相反,关键功能会被推迟,因为开发人员对它们“不感兴趣”吗?
  • “狗粮的味道”会激励你的开发者吗?

也许最有用的指南就是我所说的“Headrick's Rule”,这是在第一个向我解释的同事之后:

  

如果你需要某人来完成某件事,那么让他感到痛苦来完成它!

另一方面,当然,另一方面是尽快让项目尽快完成项目。就个人而言,我喜欢建造和使用工具,因此我会尽可能快地为狗粮提供服务。但是我的同事是一个虐待狂,并且会在“编译后立即回答!”

祝你的项目好运!

答案 5 :(得分:0)

根据完成开发的方式,您可以提前或稍后切换。如果您使用的是TDD方法,或者在列表中找到并修复错误的位置较高,那么每当您拥有足够的功能时,我就会启动它,您会觉得这对您的日常生活有所帮助。如果您有效地优先考虑您的功能,那么这可能是开发的早期阶段。

否则我会等到你进入一些后期阶段,前alpha或pre beta。这意味着您在开发早期就不会感到太多痛苦。

正如其他人所提到的,如果你可以改变你的开发工作,试图让产品更早可用呢!我建议让人们尽早开始认真使用该产品,以帮助评估各种功能,让您的初始用户在情感上依附于产品。关心的开发人员通常会付出额外的努力来使项目更好。

答案 6 :(得分:0)

这是关于找到你的“临界质量”特征是什么。如果它只是一个bug而不是功能问题,请立即切换。修复你的错误。如果您需要在工具变得有用之前进行功能开发,请完成这些关键功能,然后切换。

我真诚地希望你不是一个编辑! ; - )

答案 7 :(得分:0)

我想你的答案是正确答案。当然使用一个有缺陷的版本会让你最初放慢速度,但是你会在开发时执行QA,所以从长远来看你会节省时间。 如果应用程序中存在阻止程序,我会建议您的某些团队切换而不是整个团队来防止大量阻止。

答案 8 :(得分:0)

当狗食变得开胃并且尽快。我想这是另一种说法,你应该尽早和经常提供价值。顺便说一下,从不提供已知的错误软件。没有错误的较少功能比具有错误的更多功能更好。

答案 9 :(得分:0)

它的大小,可扩展性和范围。如果该产品能从“狗粮”方法中获得有价值的成功,那么ASAP将是正确的答案。最终用户体验决定了使用该产品的最终结果。

答案 10 :(得分:0)

在达到“Alpha”阶段之前不要开始使用它。它应该具有完整的所有主要功能,并且没有已知的严重错误。然后你就可以开始使用了它。

让目标用户尝试一下也很重要,而不仅仅是开发人员(除非是开发人员工具)。

你希望有足够的开发时间来适应尽可能多的“如果这样做会不会很好?”尽可能的功能。

答案 11 :(得分:0)

当应用于开发团队不会自己使用的软件时,问题毫无意义,因此开发人员应尽快使用它。 “可行”意味着它会运作得相当好,并且不会破坏太多事情。

在开发文本编辑器时,开发人员应尽早使用它,因为错误并不重要。在开发版本控制系统时,开发人员只有在显示出声音时才应使用它。当Subversion团队离开他们的CVS服务器时,这是一件大事。

一个想法是让团队中的早期和后来的采用者,因为后来的采用者可能会发现早期的人已经失明的事情。