我经常发现我对某个功能的工作不完整,特别是在设计阶段.我发现了几个原因:
我过于乐观了
我觉得有必要提供快速的解决方案,所以有时我会欺骗自己认为设计是万无一失的,事实上它仍然充满漏洞,只是为了更快地完成工作.当然,我最后会付出高昂的代价.
我已经知道我的这种行为已经有一段时间了,但我仍然发现我无法弥补.你遇到过类似的问题吗?你如何解决它们?
我使用了几种技术.第一个是简单的纸质待办事项清单.早上我写下当天的任务.我尝试着完成一项任务,直到我可以完成任务.只有当我完成自己的满足时,我才会将其交叉.我的待办事项列表可以帮助我保持专注.当一个中断进来时,我可以有意识地选择是否足以打断我现在正在做的事情.
我使用的第二种技术是放弃设计"完成"的想法.相反,我专注于我开始称之为"继承"的东西,其中设计经历了可预测的阶段.每个阶段都很好地支持当前功能,并且在下一阶段将在某个时候成功完成.这让我做得很好,我可以引以为傲的工作,而不会过度设计.
我有直觉,有一小部分这样的继承(如http://www.threeriversinstitute.org/FirstOneThenMany.html),涵盖了大部分设计.与此同时,我试图记住"足以让它成为一天的麻烦".
我经常遇到这个问题.
我的解决方案是笔记本.(旧式纸张类).
我写出了我如何计划将该解决方案作为项目符号概述列表实现,然后我尝试充实列表中的每个点.
通常,在这个过程中,我遇到了一些我没想过的问题.
当然,80/20规则仍然适用......当我实际执行我没有想到的实现时,我仍然遇到过这些事情,但是根据经验,这些规则往往会减少.
编辑:如果我仍然不确定在这个过程结束时,我把一个一次性原型测试平台放在一起......重要的是要确保它是一次性的,因为否则你冒着在你真正的代码库中包含一些讨厌的黑客的风险.