据我观察,不少人都有这样的疑惑,而这样的疑惑,会使得我们在开发软件时,太侧重在程式设计部份,而忽略了其他在软件开发中,也必须关注的重要的事情。
就像前段中所说的,软件开发是一个独立的学问,它探讨的是相关的观念和方法,使得人们可以更好的开发出软件。
如果拿打棒球来比喻,球员的打击技巧像是程式设计,总要把球打出去,才可以发动真正的攻势,但是,若是要得分,要有选球的观念、跑垒的观念,球员间需要合作才能在一个个的垒包间向前推进,而教练也会有各种的战术运用,像是打带跑、盗垒、牲打、等等……,综合搭配起来,才能在一局局的球赛中尝试得分。
守备方也一样,面对不同的打者,会有不同的守备阵形,而投手的配球策略也会做因应调整。当攻击方击出球时,不同位置的守备球员该怎么移动、补位、甚至如何进行封杀、……等等,这些观念也都会深深影响最后的结果,而不单单取决于投手的球速、变化球的种类或变化幅度。
想打好一场棒球赛,固然个别球员的球技扮演重要的角色,但是像是作战策略的拟定、或是融入于比赛之中的各种观念,默契搭配方式,其重要性也不亚于球技,甚至更在那之上。
棒球比赛的例子,我们可以拿来类比软件开发的观念及方法。若想好好地设计出软件,光能设计程式还不够,你得懂得如何开发软件,而且不是懂得程式设计就懂得开发软件,两者可以说是独立的领域。
因此,我们应该要把软件开发当做是一个独立的学问来看待,而不是把它和程式设计给混在一起,才能够把软件开发做的更好。