设计分正式和非正式的,根据项目的规模,有不同的形式,但无论以何种方式进行设计,不管是小型项目还是大型项目,都能从精心的设计中获益。
但要做出一个好的设计是非常困难的,以下是原因分析:
一、设计是一个险恶的的问题
所谓的险恶的(Wicked)的问题,是指只有通过解决(或部份解决)才能被明确的问题。
这个在我们项目经验中经常遇到,也是我们常说的需求不清晰的问题,只有做出来了,用户才知道还有什么需求或问题,或没考虑到到因素,这就意味存着在反复的设计-开发-再设计-再开发。
与在学校的学习项目不同,老师给你一份编程作业,不会在你将要提交完整程序时,他又改动,这时你肯定会十分生气。然后这一过程正是专业编程中每日可见的真实情形。这也更突出了设计的重要性。
二、设计是个了无章法的过程
设计过程中会采取很多错误步骤,但在设计阶段范错并加以改正,期代价比编码后才发现的修改成本低很多;
很难判断设计何时算是"足够好“了,要设计多细?用什么样的形式?什么时候才算完成?可以说设计永无止境。所以有种答案是”设计到你没有时间再做了为止“。哈哈。。。。严谨来说,设计与产品规模,预期生命周期,团队经验等有密切关系,可参见”5.4“章
三、设计是确定取舍和调整顺序的过程
四、设计受到诸多限制
五、设计是不确定的
不同的人,有不同的设计方案,而且可能每种方案都还不错。
六、设计是一个启发式过程
设计是不断的设计评估、非正式讨论、写试验代码及修改中演化和完善的