开发和设计在逻辑上是非常和谐的两个过程,但在实际工作中经常产生矛盾。在建筑领域中,也有实施和设计之间的矛盾,但是在软件业,这种矛盾体现的更为激烈。因为,建筑业和软件业有一个关键的区别,设计的结果90%可以映射建筑的结果。建筑业中,设计人员和实施人员的技能领域界限很明确,语言统一,分工明确。一座别墅可以边盖边设计,对于上海中心这样的摩天大楼必须先设计再建设。如果事先不做事无巨细的设计,经过无数次讨论和重绘建筑设计图纸,那项目注定只有一个结局就是失败。但是软件业中则不是如此,设计的结果经常无法正确的指导实践,在实际开发的过程中,为了解决各种问题,完全可能把先前的设计推翻。所以说在高度设计的环境中,开发人员需要很优秀的技能,优秀到足以质疑设计人员的设计,特别是设计人员一天不如一天知道开发平台的具体细节的情况下,开发和设计就会脱节。总体来说规划式(Planed design)和演进式设计(Evolutionary design)是相辅相成,规划式不应太偏重细节,而是将整个架构脉络梳理清楚,使用的技术做好预研工作,针对核心业务优先划分清楚,具体开发过程则更依赖于开发人员的技术和业务能力。
网友评论