我们有一个项目即将推出,PM 坚持团队应该“吃自己的狗粮”?
在什么时候这样做是现实的?
例如假设我们必须编写一个编辑器。我们不能在一开始就使用这个编辑器来实际编码,因为它不存在。我们必须使用另一个编辑器。
在项目期间的一段时间内,使用有问题的编辑器会减慢项目的速度,并且会适得其反。
那么我们在什么时候切换呢?
更新:经过团队内部的一些讨论,我们在开发过程中会强调的要点是:
- 实施可能的最小子集开始
- 尽快识别关键特征
- 只切换部分开发者使用新产品,将风险降至最低
我们有一个项目即将推出,PM 坚持团队应该“吃自己的狗粮”?
在什么时候这样做是现实的?
例如假设我们必须编写一个编辑器。我们不能在一开始就使用这个编辑器来实际编码,因为它不存在。我们必须使用另一个编辑器。
在项目期间的一段时间内,使用有问题的编辑器会减慢项目的速度,并且会适得其反。
那么我们在什么时候切换呢?
更新:经过团队内部的一些讨论,我们在开发过程中会强调的要点是:
你们中的一些人应该尽快使用它。第一个版本应该被精简,只有你需要的最重要的功能才能将它用作(在这种情况下)编辑器。一旦你开始使用它,你会很快发现哪些功能很重要。
<咆哮>
不生产狗粮,就不用吃狗粮。
无论如何,这个病态和愚蠢的短语的起源是什么?狗不生产自己的食物(有一个粗俗的例外)......
</rant>
问 PM 更重要的是:使用正在开发的产品进行开发,还是按时生产高质量的代码?如果有冲突,哪个更重要?
常识性的答案是:当你正在构建的东西比你拥有的工具更好时,就使用它。
您不必切换到专门使用开发编辑器。开始使用它,直到它影响你的生产,列出有问题的东西,修复它们,重复直到你能够在大多数/所有时间有效地使用它。
在项目期间的一段时间内,使用有问题的编辑器会减慢项目的速度,并且会适得其反。
听起来你有你的答案。切换的时间是当您的项目不会妨碍生产力时。
这是那些“取决于”问题之一。一些指导:
也许最有帮助的指南是我称之为“Headrick 规则”的东西,以首先向我解释它的同事之后:
如果您需要某人完成某事,请让他不完成它而痛苦!
当然,另一方面是让尽可能快地完成项目变得愉快。就个人而言,我喜欢构建和使用工具,所以我会在谨慎允许的情况下尽快提供狗粮。但我的同事是一个虐待狂,他会回答:“只要它编译好!”
祝你的项目好运!
一切都与大小、可扩展性和范围有关。如果该产品能够从“狗粮”方法中获得宝贵的成功,那么 ASAP 将是正确的答案。最终用户体验决定了使用产品的最终结果。
根据正在完成的开发方式,您可以提前或稍后切换。如果您使用的是 TDD 方法,或者在列表中查找和修复错误的位置较高,那么只要您有足够的功能,您觉得可以帮助您的日常生活,我就会开始。如果您有效地确定了功能的优先级,那么这可能是开发的早期阶段。
否则我会等到你进入一些后期阶段,pre alpha 或 pre beta。这意味着您在发育早期不会感到太多痛苦。
正如其他人所提到的,如果您可以改变您的开发工作以尝试使产品更早可用,那就去做吧!我建议让人们尽早开始认真使用该产品,以帮助评估各种功能并让您的初始用户对产品产生情感上的依恋。关心的开发人员通常会付出额外的努力来使项目变得更好。
这是关于找到你的“临界质量”特征是什么。如果只是错误而不是功能问题,请立即切换。修复你的错误。如果您需要在工具变得有用之前进行功能开发,请完成这些关键功能,然后切换。
我真诚地希望你不是在写编辑器!;-)
我想正确的答案是尽快。当然,使用有缺陷的版本一开始会减慢您的速度,但随后您将在开发过程中执行 QA,因此从长远来看,您将节省时间。如果应用程序中存在阻塞,我会建议您的一些团队而不是整个团队切换,以防止大量持有。
在它达到“Alpha”阶段之前不要开始使用它。它应该具有完整的所有主要功能并且没有已知的严重错误。然后你就可以开始使用它了。
让目标用户试用也很重要,而不仅仅是开发人员(除非它是开发人员工具)。
您想留出足够的开发时间来适应尽可能多的“如果这样做会不会很棒?” 尽可能的特色。
当应用于开发团队自己不会使用的软件时,这个问题是没有意义的,因此开发人员应该尽快使用它。“可行”意味着它可以很好地工作,并且不会把事情破坏得太严重。
在开发文本编辑器时,开发人员应该尽早使用它,因为错误并不重要。在开发版本控制系统时,开发人员应该只在它被证明是可靠的时候才使用它。当 Subversion 团队离开他们的 CVS 服务器时,这是一件大事。
一个想法是在团队中拥有更早和更晚的采用者,因为后来的采用者可能会发现早期的采用者已经视而不见的东西。
当狗粮变得开胃时,尽快。我想这是另一种说法,即您应该尽早并经常交付价值。顺便说一句,永远不要提供已知的有缺陷的软件。没有错误的更少功能比有错误的更多功能更好。