优秀的设计依赖于深厚的技术功底。毫无疑问,没有深厚的技术功底,不可能做出好的设计,因为设计最终要落实到技术上,由具体的技术细节去实现。再高的大厦也是一砖一瓦盖起来的,而不是凭着设计人员的想象就能构造出来的。记得上大学时,一位建筑学专业的同学给我讲过,他们设计专业的毕业设计都要拿给结构专业的同学做各方面详细核算。结果有些同学的设计在此时就被判了死刑,因为他们的设计违反了结构力学,无法实现。试想,如果一位设计师设计出来的东西根本无法实现,他还能称之为设计师吗?所以,软件设计必得立足于技术,来源于技术,才能立于不败之地。
优秀的设计来源于广博的知识。一个只懂C++的设计师,只能基于C++语言构建自己的设计方案。但一个懂得多门语言的设计师,就可以在多种语言中做出权衡,使用最优的组合完成设计方案。当然,设计方案中选用哪种语言和开发工具,还要决定于其他的客观因素。但做为设计师,应该拥有这样的能力。广博的知识还有一个好处,就是它能提高你的设计能力,让你触类旁通。
设计人员要谨慎使用新技术。系统设计直接关系到整个项目的成败,来不得半点马虎。所以在选择实现方案的时候要优先使用成熟的而且是开发人员都熟悉的技术,不要人云亦云,冒险尝试所谓的“最新技术”。曾经有一个项目,从需求上看没有任何使用.net的必要性,但上级领导偏偏迷信微软的最新技术,强制要求大家使用.net。结果开发过程中遇到的难题和阻碍一个接一个,白白浪费了许多的时间和金钱,却没给公司和客户带来任何好处。一般说来,技术人员总有一种尝试新技术的冲动。但作为设计人员,就必须克制这种冲动,以免影响项目的成败,或增加不必要的项目成本。
丰富的实践经验可令你事半功倍。做设计,千万不可纸上谈兵,要懂得实践出真知的道理。经验不仅仅包括技术方面,还有客户经验,团队经验等。拥有丰富的客户经验就能更好地揣摩用户心理,用最小的代价为让用户感到最大的满足。拥有丰富的团队经验就可以把设计更好地落实到每一个开发人员头上,充分利用每一个开发人员的个人优势。
八风不动涂鸦于2003-11-26