细说可持续的需求分析和软件设计
作者:网络转载 发布时间:[ 2010/12/9 11:29:19 ] 推荐标签:
4)可持续性
功能点的实现选择,要考虑的还有可持续性的问题,是功能点是可以不断去叠加来完善的,而不是说不断的推翻后重新实现一把,这个是差别很大的。比如说内容创建功能,现在对于异常的处理我们暂时不实现,这个是没有问题的;但是如果下次要实现异常处理的时候,要把现在内容创建的流程的功能描述推翻重来,这个可持续性有问题了,因为这个意味着以前的功能全部都会被推翻,很可能是以前的实现都白费了,这是功能点设计的的不可持续性了。功能点设计一定要有持续性,如果是这样子,系统的功能能够越做越强。
所以我们可以把每一个的User Story的各个功能点想的更加完善,这个是很好的,剩下的只是如何取舍的了,所谓取舍,只是阶段性的舍弃和选择罢了。所以在讨论过程中,不要因为功能的增强,范围的扩大而让我们感到害怕和困惑,把他们记录下来,是很好的逐步改进系统的武器,我们只要运用上面的一些原则,能够让我们做的更好。
下来再谈谈设计的问题
在Head First Object-Oriented Design的书中,定义Good Design是Flexible Design。而The Art of Agile Software Development一书中,定义Good Design为“A good software design minimizes the time required to create, modify and maintain the software while achieving acceptable runtime performance.”是软件的可维护性。所以Agile Design强调的功能,基本上都是从如何不断改进软件的可维护性和可扩展性而努力的,只有软件具备了良好的可维护性和可扩展性,那么软件能够很好的不断叠加功能,软件才具有旺盛的生命力。
我们实际中面向的问题呢?其实还是很简单,是好的设计和项目时间的冲突,好的设计是需要时间考虑的,也是需要时间来实现的(虽然不是,有时候好的设计会节省更多的工作量)。
对于第一个问题,于项目时间的冲突,这个可以回到前面开始谈的内部质量和外部质量的问题,前面对于功能(外部质量)的问题,我们已经谈了取舍的方法,那么,内部质量(设计),是不是也可以取舍呢?在“Scrum and XP from the Trenches”书里面,作者自己是这么认为的:
Internal quality, however, is not up for discussion. It is the team’s responsibility to maintain the system’s quality under all circumstances and this is simply not negotiable. Ever.
在这上面我是持一样的观点的。
然而我们的问题依然存在。和项目时间的冲突如何平衡呢?我想可以考虑两个原则:
● 足够好(First Right)
● 分阶段实现/可持续性
1)足够好(First Right & Good Enough)
所谓First Right & Good Enough是让我们看看我们所作的设计是不是足够清晰的架构我们的系统,而不是太过的复杂导致项目时间不足,往往好的设计并不是要花更多的时间实现的,通常只有Over Design才让我们感到力不从心。所以我们发现设计导致实现的时间过长的时候,我们需要看看,是不是我们想的太复杂了?
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11