看到很多程序员对新技术、新方向有着极大的兴趣,不分日夜的研究,以期望做出一些成绩来。久而久之,也确实取得了一定的成绩,但是也形成了一个不好的习惯:善于突前,不善于善后,也不乐于善后。
其实一个项目,甚至是一个模块,包括各种工作,包括多个方向,这些工作,有需要智力的,有需要耐力的,还有需要体力的,也有需要细心的,对程序员是一个全方位的锻炼,通过这些锻炼,才能有效的获取需求,发现更深层次的问题,把程序做的更符合用户需要,性能、扩展性也能得到更好的照应。而自己也会变得更加全面,思考问题也会更加细致,久而久之,会由量变到质变,当你不再是纯粹的程序员,而变成了一个分析师,一个项目管理者,带领一个团队时,你才会既不唯技术论,也不唯人力论,不厚此薄彼,使得团队健康发展,顺利完成用户满意的项目。
一个模块,可能会分为设计、开发、测试、运行、现场工程实施、维护等多个工作,有的程序员会觉得设计、开发比较有趣,能够学到更多的东西,能够每天接触新的技术点,知识永远不会过时。而一旦分配给他现场实施、维护的工作时,会觉得比较委屈,认为都是重复性的、乏味的工作,长此以往,将变得落后于时代,不再具有“战斗精神”。其实一个系统的开发分为多个里程碑,每个任务都是不可或缺的,缺少任何一个环节,系统也将不能正常运转。而设计开发的终极目标也是为了项目的实施、运行,重开发轻实施本身就是本末倒置,颠倒了工具与目标。更何况,新的技术都是从运行而来,从需求而来。只有在运行、实施中才能发现问题,才能触发新的设计,新的模式,否则开发将变成无源之水,变成闭门造车的杯具。
大家所熟知的QQ,最开始是模仿的OICQ,技术含量并不能算高,用户量也不多。但是在QQ运行之后,随着用户量从一万到十万,到一百万,到一亿,性能的需求,界面的需求,功能的需求,铺天盖地而来,从而触发了新技术的创造,性能的天才设计。为什么任何一个希望壮大的公司都希望自己的产品能够真正的上线运行,并愿意花费大的力气去维护?无他,这是一个使得产品真正成熟、提高技术门槛,在市场上所向披靡的无二法门。