记得幼时看西游记,对书中那个无所不能的齐天大圣孙悟空喜爱至极,尤其对于他的拿手绝活——七十二变,更是羡慕,恨不得自己也能学会。在原书中,【七十二变】是菩提老祖教授给孙悟空的法术,法术这个词在以前都被我理解成一个简单的词,直到最近打更棒项目出现的一系列问题,让我对这个词有了更深刻的认识。
【法术】这个词,包含了【法】和【术】两个意思,规则方法谓之法,手段技术谓之术。从程序员的角度看,法就是软件设计的思想,术就是具体实现的手段。对项目开发来说,法是项目能否实现的基础,术是项目能否完成的保证。如果把项目比喻成盖房子,离开了法,就好像在沙滩上盖房子一样,随时都有倒塌的可能;离开了术,就如同空有图纸无法施工,最后只能束之高阁。
这几天,我认真反思打更棒这个项目为何会做得如此失败,总结下来,最根本的问题就是我法术不分。在长期的工作和学习中,我太过看重术而忽略了法,就拿打更棒这个项目的开发来说,我把时间和精力都放在程序的编写和实现上,对需求分析、设计规格书和程序流程图这些准备工作却嗤之以鼻,而恰恰这些方面考虑的缺失,让我在之后的工作中时时刻刻处于被动,忙于修改程序的bug,顾此失彼,时间和精力耗费很多却不见成效,教训十分惨痛和深刻。
David帮助我重新理清楚开发设计思路后,我才发现之前我忽略的东西是多么重要。David是做硬件的,对软件编程甚至都不甚了了,但却能对我的程序作出一针见血的分析,为何,就是因为他掌握了法的精髓。他了解项目所要达到的目的,所以他能够制定出恰如其分的需求分析;他能严谨地对待每一个流程,所以他可以胸有成竹地规划出详细的流程图;最后只要我按照他的流程图实现功能即可,我只是在这个项目中扮演了术的角色,从这一点上,我看到了领导和小兵之间的差距,小兵眼里永远只有自己那一亩三分地,领导的着眼点却是全局最关键的地方。
我以前认为自己的不足之处在于技术,所以拼命地学习wince、linux、ooa、oop来提升自己,现在发现这样是走了一条弯路。术的提升不能脱离法而存在,就好比我一直在学1+1=2,别人考我1+1=?,我可以回答出2,可是如果别人考我,2是怎么得来的,我就回答是不出1+1得来的。为什么呢,因为我是为了学而学,而不是为了目的去学,所以根本就不理解怎么去运用技术,这就是脱离了法而单纯追求术犯的错误。
从这件事上,我学到了今后如何更好地提升自己的发展方向,之前我总有一种急切的心理,觉得我这也不会,那也要学,对自己未来的发展充满了迷茫和焦虑。现在我明确了自身缺失的地方和亟待提高之处,这让我对于未来的道路有了信心和目标。人生如白驹过隙,稍瞬即逝,希望我在29岁的这个年龄明白这个道理还不算晚,勉之,勉之。