本节书摘来自华章计算机《需求设计:构建用户想要和需要的产品》一书中的第3章,第3.11节,作者: [英] 克里斯·布里顿(Chris Britton) 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
3.11 小结
大家可能会发现,笔者在讲述自己的这套IT设计方法时,有很多地方都没有谈到。笔者没有像其他设计方法的讲述者那样,对原则、做法、策略、会议以及任务版等内容进行讲解。之所以这样做,是因为情境驱动设计本身并不想发明一套最佳做法,而是想把其他设计方法之中已有的那些做法移用过来。例如,如果我想把设计阶段做得较为自由一些,那我就会采用类似于当前敏捷项目的做法来进行编程。
即便采用设计先行的办法,也依然可以分成多个阶段来发布,依然可以把工作量拆成小块,以便渐进式地进行交付,并且依然可以把最新版本展示给利益相关者,同时做好他们可能改变主意的准备。情境驱动开发的巨大优势,在于它可以从代码及业务这两个方面上,迅速地指出改变所引发的后果,并且确保这种变化不会影响全系统的完整性。与现有的设计方法相比,情境驱动设计的一个重要优点,就在于它能使我们理解变化并对其加以管理。
对于现有的做法来说,笔者觉得还有一个地方需要改进,那就是应该提前做技术设计,并且要一直等到可以证明它能够完全正常地运作并满足需求之后,我们才结束这段工作。总是有人想先写完全部的功能代码,然后再去处理性能和可用性方面的问题,而笔者刚才所说的建议,则是为了反制这种倾向。稍后可能还是需要对技术设计做出调整,但由于我们一开始就做出了坚实的设计,并且可以对修改后的设计进行重新测试,因此这种调整执行起来,会容易很多。
笔者从当前这些做法中所获得的第三个认识,是觉得不同的项目应该针对所要设计的内容而采取不同的风格。情境设计、集成设计、用户界面设计与数据库设计,需要由自我激励式的团队来做,而实现阶段则可以采用现有的Scrum等开发方式,但是可能要有所调整。技术设计则介于前两者之间。