我不确定提前考虑问题与迭代方法是否相互矛盾。就像许多其他事情一样,我认为您应该努力实现两者之间的平衡。您如何找到余额?那是您从经验中学到的东西,通常是时间最佳的课程(例如,可以给您带来经验的东西),当您没有完全正确的时候(或者甚至更好的课程:平淡无奇地弄错了)。正如您已经指出的,有一句话“快速发布,经常发布”。还有另一个类似的说法,“过早失败,快速失败,经常失败”
提前思考是伟大的,您绝对应该这样做。但是,借助经验,即使没有全部数据,也应该学习何时停止思考并仅仅构建一些东西。通过构建它,您将能够对问题领域有更多的了解,并有可能提出更好的解决方案。因此,我建议您不要将任何一个都排除在外,而应将“思考的头脑”作为迭代的一部分,随着时间的流逝,我认为您会自己找到该问题的正确答案。
只是一个例子。前几天,我在为软件设计决策而苦苦挣扎。事后看来,这相对来说是微不足道的,但是我有两种选择,而且似乎两者都可以使用。我不断回头讨论每一个的优缺点,然后回头再重新考虑我的决定。回首过去,我花了多少时间思考有点尴尬。然后我对自己说,f#@ k!而且我没有使用任何一种设计,而是继续并一起破解了一些代码,完全忽略了您从优秀设计中学到的所有好知识。我在大约45分钟内即可使用该功能。然后我回头查看代码,将其重构为可靠的东西,而对于检查源代码控制我也不会感到ham愧。有趣的部分是,在我完成黑客工作后,想出了“
我特别建议针对您现在面临的问题(即即将出现的大型,复杂任务)提出的另一件事。与其并行处理,不如并行处理。将您的一天分成很多部分,在其中进行研究,然后停止,切换齿轮和编码一段时间,至少在项目的某些部分(不是完全未知的部分)上。这种与代码保持紧密联系的方式将为您提供更好的视角,并且您不会因尝试太快地吸收太多信息而感到疲倦。至少对我来说,经过几个小时的研究,让大脑消化一些东西,切换任务并做一些其他事情是好事。然后回到更多的研究。