组 合 语 言 之 艺 术(二)(1) 究其因,在学习、思考时,当是原则重於细节,然而在执行的过程中,却是细节重於原则。此外,事物变化的组合无穷无尽,主事者必须能针对目标,随时根据实际状况,逐步处理。 在各种状况中,如若程式师不能掌握当前的重点,则凡事皆如有千头万绪,难以下手。事实上,从成事败事的观点来看,人只有两种,有能力者,是把复杂的事简化;无能力者,经常把简单的事变得复杂无比。而这种能力的差异,就在於能否掌握当前的重点。 观念清楚了,就看当事人是否能认真负责,坚持贯彻到底。人间世事成败,完全基於这种态度。不认真,工作时草草了事,不可能有好的成绩;不负责更糟,没有问题也会产生问题,发生问题後,更是无人解决;若叁与工作的人多,彼此推卸责任,这样做人处世必将失败,程式制作亦然。 所谓认真负责,具体说来,即是在事先要彻底了解该做什麽?要做什麽?以及如何去做?工作时要考虑怎样做最有效率?每一步骤会产生什麽结果?而工作完成後要彻底检查,目标是否已达成?能否再加以改进? 最後,是对程式的品质及技巧的完美性,应锲而不舍地追求。一般人常把完美当作不必要的奢侈,其实不然,完美是一种永远无法达到的理想。重要的观点是,人只有在追求完美的过程中,才能不断地进步、升华。一个人若没有理想,就与动物无异,一个程式师若没有理想,套句爱因斯坦的名言,不过是只「训练有素」的小狗罢了。 态度来自习惯,习惯则来自於学习及锻炼,有志向上者,应该自我要求,努力学习。等到锻炼久了,习惯成自然,有了良好的态度,终有成为大师的一天。 3,软件开发的原则: 分工合作,量材施用,慎重计划,严格执行,市场导向 此处所说的软件开发,是指具有相当规模的程式,需要多数人员共同工作者。人多固然力量大,但是人与人的相处和沟通,问题也特别多。若处理得好,力量是正值,反之,则为负值。不仅彼此的力量相互抵消,有时还有不良的後果。 软件开发,应该有一个主事的重心人物,如果要谈民主,不妨去搞政治。负责人首先要对工作内容详加分判,然後根据性质分配工作。分配时应注意工作量、时间要求、个人特性及相互的配合等因素,责任要划清,交待要明确,俾能集中众人力量,分工合作。 成事在人,如果用对了人,则成功在望。每个人都有其独特的个性、能力及态度,适合於不同性质的工作和方法。所以应事先了解每个程式师的个性、能力及缺点,再行分配适合的工作。 不仅分配工作时要度量才干,管理时亦然,人不是机器,不可能绝对适应同一种工作方式。但是,若每个人以他自己适应的方式工作,对整体而言,又有步骤不一、难以相互配合的弊病。 比较理想的解决方式,是对叁与工作的人员,施以再教育,使之习惯於一种统一的方式,藉着训练的过程,也可增进对每个工作人员的认识了解。 再就是工作计划,将工作分成几个阶段,并配合人员的分工及设备器材的条件,逐步实施之。 工作计划相当於建筑蓝图,一旦确定了就难以修改。一个完整周详的计划,应包括了工作目标,人员分配,时间进度,执行细则,沟通方式,解决问题的程序等。 有了计划,还要有监督执行的专责人员。这种人才必须有足够的经验,对全部计划能了解透彻,有敏锐的判断力,并敢於担当。工作时执行要严格,待人要宽厚,处理事务要果断。 最後一项原则,才是真正的成败关键,那就是,产品要以市场需求为导向。不能符合使用者需求的产品,一定「没有用」,没有用的产品,则不具备任何价值。 要测试产品是否「有用」,其实很简单,以程式师为例,如果自己都不愿采用,显然是用处不大。有人会说,程式师又不是使用者,在没有必要时,再好的产品都不肯用。这话并不尽然,人喜爱美好的、尤其是与自我有关的事物。如果程式真有用,制作的程式师一定会想尽方法去 玩赏、测试,而且乐此不疲。