1
Of nothing comes nothing
“不管它存放在哪里,总要有地方来存放它。”在我第一次进行一个小型信息系统的开发过程中,一位不懂计算机,甚至不熟悉基本的计算机操作的人对我说到这句话,当时,我正与其讨论对于系统的数据(确切地讲,是学生的课程成绩)按什么形式存放,尤其是考察课程是否还要使用原始分数,还是仅使用是否通过的结果。
虽然对于这个问题,存放原始结果显然具有更多的好处,而且对于这样一个问题本身并不值得讨论。但是他所说的话却很有道理。作为一句无意说出的话,却包含了一个哲理,事物是不能凭空产生,虽然在此用哲理的字眼好象是太过深沉了,但是细细想来,确实如此。不管是简单的成绩计算、统计,还是复杂的决策支持,没有原始数据,就不会有最终所要求的结果。
这个结论对我们有什么意义呢?
现有信息系统的开发中,很少有用户、或者说是分析人员与用户一起,在一开始就能完整、准确地获取用户(实际上是现有系统本身)所提出的、或者是应该提出的功能要求,(为什么说功能要求呢?因为对于用户来讲,他们所感觉的系统就是具有某种或者某些功能的具体的系统),当然,不管是开发者还是用户都想全面地描述需求,但由于客观条件,包括用户本身对于业务未进行深刻思考,开发人员不具备深入业务的基本条件,不能引导用户详细准确地进行说明,以及开发时间短等种种因素。如何处理这一问题呢?往往从现有系统中数据分析出现有功能所要求处理的数据,并对可能的要求进行设想,在开发的同时,考虑到可能的要求,在系统中进行保存,在开发的后部分进行处理、后一周期的的开发中减少分析难度,以便增加功能。从这里也可以看出,对系统中的可能发展进行估计,也是分析人员的基本要求,也是要从实践中不断总结经验。
2
对用户无意义的就不应可见
在一个本人所开发的一个系统中,在给用户演示原型的时候,用户对于界面上几个不能进行选择的下拉框提出问题,“它们为什么不能使用?”
“哦,那是因为这些是专为另外一种用户类型的使用者使用的。”
“那他们为什么在这里出现呢?”
“。。。???”我无言以对。
“既然它们对用户不可用,那就不应对用户可见。”用户说道。
现在想起来,当时我肯定窘迫极了。但是想一想这句话,确实是太有道理了。几乎每一个系统都有由系统自动维护的部分,如果,这些内容仅仅对系统本身有用,而对用户而言,则没有意义,或者没有明显的意义,那么,它们确实应该隐藏起来。如果,有高级用户对这些部分进行查看或者修改的要求,那么,应该在固定的位置提供这些功能,在其他地方隐藏这些数据;而不是在所有地方,都出现这些让用户感到困惑、占用屏幕空间的部分。
不仅仅是对于数据,对于其他,如功能,也是一样,如果一个系统可以为不同的用户提供不同的功能,那么在系统能确定使用者的类型的情况下,应该只显示对于该用户类型可用的功能。
在IMIS中明确规定,在显示菜单项时,仅显示可以使用的功能项的菜单。
3
做出的程序应符合标准形式
此处的标准形式包括:界面规范、操作规范等多种。
现在到处都是粗制滥造的软件,几乎任何一个人,在买到一本入门的书之后,看上2、3个星期,就可以进行软件开发了。当然,我的水平也就仅限于这一层次上。看看这些软件,确实缺乏专业的开发,功能欠缺,界面花哨,操作方式少,对于系统的支持少或者没有,如进行文件拖动等操作。
4
利用现有的成果:他人的、自己的
现在的社会是竞争的社会,另一方面,也是合作的社会,由于竞争使合作现得比以前更为重要,更为广泛。
其他人包括自己以前已经开发的无数的成果,这些成果都是知识、智慧的结晶,合理地利用这些成果是快速进行开发的要求,
是对知识成果的利用,是开发的需要。
5
学习、使用先进工具;工欲善其事,必先利其器
现在用于开发的工具越来越多,也越来越先进了,然而任何工具的学习使用都是由代价的,要利用这些先进工具,必须进行学习,在掌握之后才能把工具的效能发挥出来,达到提高劳动效率的目的。
在开发阶段中编程工具的提高最明显了。现在的普遍的RAD开发工具,使人们不用了解操作系统的底层只是就可以进行开发,而且提供了很多现成的组件来供人们使用。如Delphi、Visual Studio。
另外,工具的利用再向开发的前端拓展,直到分析阶段,设计阶段,并且主要的目标之一是把分析、设计、编程实现、测试等各个阶段有机地联系在一起,自动化地实现,以求最大限度地节约人的劳动。
在我进行第一个数据库系统开发的时候,要设计数据库,开始我的想法是自己书写SQL语句,然而在之后的过程中,数据库要不断地进行调整,最终我不得不学习PowerDesigner,可以不学习这些新东西了。但如果这些工作时以后经常做的,那么,还是要学习的。一方面,提高以后工作的效率,另一方面,自己又可以掌握一门新东西。
(本人保留对本文的进一步修改以及在其他地方发表的权利)