天下没有简单的系统
十月 5, 2006 – 9:43 pm |Tags: No Tags
最近两个项目中都遇些常事了!一个设计开发者信誓旦旦后落荒而退,发现具体开发实现时原没他自己想象简单;另一个项目中,业主方自持”聪明”,将复杂系统需求简化为几个小功能模快,决意要上,但是,不日就发现越发复杂(我戏称:他们的需求如盖酒店宾馆只考虑当下迎来第一批宾客是男性,由此而不考虑未来宾馆女性宾客的需求,于是就设计可一个没有女性厕所的高级宾馆).
不少高人拿到设计需求时看了看,就会轻描淡写地说:这很简单!可能确实是很简单,但是,高手还是没有给人们一个答案:如何简单?如多少天可以完成?需要哪些资源?实现的风险在哪里?是否此需求还有进一步改进之处?改进开发工作量会有多少?当然,说简单,是因为你知道其完成任务和实现的途径,但是,真正确认可控制实现才是真正简单,否则,那都是一知半解。这样的案例时常发生,也导致结果是:做成的比想象的要难!特别可恨的是有一些伪技术高手就不负责地逃离了。
当一复杂扩展型企业(The extended enterprise)的供需链应用系统被某用户简化为一个企业管理软件而立项成功;当然,大家都以一种简单的心态讲,这是一个简单的可控的企业应用系统!接下来,就是将此系统交给”万能”技术人员去开发了,对是否考虑业务流程和底层数据模型,显然,没有人关心!事实上,大多数人忽视了在复杂商业合作关系中些优化的边际条件和约束力,并由此导致设计中忽略数据模型分析和业务流程分析(暂且先不谈SOA),那本身就是一种隐患。
看来,技术人员不能自持技术手段简单而忽视实现的可靠性和可控性;业务设计和业主也不能只顾及短期自我设想业务而轻视服务模式分析,这都是将一种轻率的做法,不管是企业应用系统,还是一个面向个人服务的互联网服务,都是一个系统,那么,就得从长规划!找到一个设计周全,实施可行,成本可控,满足服务水平的系统设计方案和可实现的路径!
当然,把复杂系统简单化那是本事,也是一种解决问题办法!同样,在简单系统中看出复杂的隐患,也是一种能力,一种项目管理智慧!但是,软件系统一旦看成是对一个特别服务(按时下流行讲法,服务Service),那么,系统必然是现实世界中服务流程在软件实现上的映射,是否能很好穷尽该服务的各种可能性和是否能友好地实现人机关系,这本身就是一个挑战!天下没有简单的系统!


