「软件开发」与「程式设计」的区别(二)
2022年06月19日
软件开发的工作包含许多流程、步骤,首先收集用户需求,接着进行需求分析,再根据分析的结果,设计用户操作画面,资料储存的方式等等,然后才进入程式设计阶段,最后,软件产生出来了,还要经过测试工作的检查,确认无误后,才能算是完成软件开发。如果我们把篮球比赛对比到软件开发整个过程中,就可以发现,收集需求就像是球探收集资讯,需求分析与设计就是教练根据收集到的资讯设计战术,程式设计就是球员们协力执行战术,将球投入篮筐中,测试工作则像是场边的纪录员一样,纪录并检视整个战术执行过程是否有不妥之处。因此,若是把软件开发认为是只要做好程式设计的工作,而对于用户的需求,并没有做好明确的划分,订立阶段性目标,依序的完成它,而是把所有想做的事都混在一起,在没有明确的需求的情况下,就开始撰写程式,同时,又放任需求不时地改变、调整,没有任何管控需求变更的程序或手段。如此一来,就很容易导致需求不断地扩大,无法收敛、或是持续变化的需求,进而影响到整个开发。
过去在学校时有一门课是系统专题,由同学们组成一个4~5人的小组,共同来完成一套项目系统。当时的指导老师告诉我们:「没有写不出来的系统,系统写不出来,是因为系统分析没有做好」。当时刚刚开始接触程式设计,在技术至上的观念下,总认为系统写不出来是因为自己写程式的功力不够,所以系统写不出来,再加上指导老师的专长是系统分析,并非程式设计,对老师的能力有所质疑,想当然对老师所讲的话是嗤之以鼻。等到进入了职场后才发现,收集需求与系统分析是程式设计的根本,没有做好这两件事该做的事,就算是写程式的功力再高强,也会因为不知要从何写起,而变得毫无用武之地。所以,软件开发应该是一门独立的学问,和程式设计相关,虽然程式设计是最直接产出软件的手段,但是两者之间不能画上等号。
球员不论是投篮或是切入上篮,都是得分重要手段,但是配合战术,协调队友来选择出手的时机与方式也是不可忽视的。