2.组织

来源:互联网 发布:淘宝的名龙堂怎么样 编辑:程序博客网 时间:2024/04/30 11:37
连载之12
原创:胖子刘(转载请注明作者和出处,谢谢)
2.       组织
事实上,“组织”的含义是很广的,分销渠道、供应商、公司内部的部门、政府机构、行业协会、行业主管部门、合作伙伴、竞争对手、家庭、团队……都是组织的一种;但同时,针对某一特定企业的业务需求而创建的应用系统,其需要打交道的“组织”的类型又是有限的。我们的设计人员所要做的就是在需求调研、分析阶段把所有需要与之打交道的组织类型确认清楚,这些工作绝不能放到后期程序运行时才去考虑。
个人感觉目前有一个倾向,有些人刚入行、设计经验不多,设计的系统很少考虑到扩展性,企业业务需求稍有变化、设计成果就要大幅度修改,甚至要推倒重来!由于饱受折磨,以致于当他做过一些系统、有了一定经验的时候,又特别倾向于设计一个“功能极其灵活的”系统、这个系统运行时可以自动适应分析阶段“考虑到的”和“没考虑到”的各种情况。这些人整天挂在嘴边的就是“即使将来有新的业务需求,我的设计也不用修改……”
个人观点:前一种情况情有可原,后一种思想不可取。如果系统设计的过于“灵活”,相应的该产品更像是一个“半成品”,而不是一个应用系统。因为这样的系统在使用中必然存在相当多的配置参数、有的甚至需要二次开发!这些都是用户不能忍受的!
若干年前我曾经遇到一个雄心勃勃的同行,他宣称要开发一个适应所有行业的MIS系统,只要这个系统开发出来、社会上所有行业都不再需要专门的管理软件,只要在他的软件里设置“一些”参数就可以正常使用了。他甚至还为此专门成立了一家公司。开始的时候他说他的软件针对每种行业只要事先设置四五十个参数就可以了,一段时间之后参数的个数涨到三百多,再过一段时间他的软件的功能是如此灵活、以致于针对某种行业的“实例化”版本需要专门的“二次开发”,又过了一段时间该公司倒闭、人去楼空。按照他的做法,再进一步的抽象下去,那么最终他的产品就不是MIS软件、而是PowerBuilder或者C#这类的开发工具了。
需求分析阶段的工作做得不细致,指望设计阶段设计出一个极其智能、其功能涵盖了所有已想到和没想到的需求的系统,本身就是不切实际的。
在外行人眼里看来,计算机很聪明、无所不能,而事实上无论多么聪明、多么智能的软件,它的每一步运算都是系统设计人员在事先就设定好的,如果系统设计人员事先没有设计和开发,计算机连“1+1”这么简单的事情也绝不会主动去做!不会出现没有设计而凭空跳出来的“功能”!如果有的话,我们称这种功能为“BUG”。
言归正传,在设计“组织”表的时候也不例外,在需求调研分析阶段就应当把与当前企业有关系的所有类型的组织及其各自的属性都调研清楚,然后才进行下一步设计。
“组织”表的设计与“人员”表类似,也要考虑两大问题——
  • 避免数据冗余存储
  • 区分属性类别
图13
大家看到上面这个设计的第一感觉是什么?
“胖子刘有没有搞错?组织表就这么几个属性?”我猜大部分都是这个想法吧?没错,在我的设计中组织表就这么简单。至于大家认为通常应当具有的地址、联系人、联系方式、各种许可证件信息等等,我都设计到其他表里了。原因在后面会详细叙述,敬请关注。
 
原创粉丝点击