首页 > 代码库 > 历史总是螺旋上升的
历史总是螺旋上升的
历史总是螺旋上升的,时代的变迁已验证了这一点。
小时候我有一个当个木匠的愿望,觉得自己动手创造出自己独有的东西,是一件多么酷的事情。后来,由于学习“太好”,与这个愿望愈行愈远。而大学毕业后选择软件这个行业,就是这个“木匠”情结在起作用。当时的感觉,就是软件也是在靠着个人的手艺,不断创造出新的产品,这同样是件很酷的事情,是属于一个艺术家的范畴。但是随着工作阅历的增长,尤其是经过各种专业知识(我本人并不是计算机科班出生)的熏陶后,才发现软件的发展走上了一条所谓的“工业化”之路。软件开发被分成了各个工序,每个工序都有各自的标准和流程,按照制订的生产计划,各个工序的人都必须严格执行工序的流程和制度。那种作坊式的,纯靠手艺的开发方式,是落伍的,是受到唾弃的。我觉得自己有点失落,怎么就从一个艺术家,一下子跌倒了产业工人。落差之大,让我有点无所是从。为了免于成为一个“车间工人”,我开始了向上攀爬的道路。在我看来,只有成为项目经理、成为管理者,才能从工人的身份中脱离出来,成为一个真正的白领。
现在我可以说是成功了,成为了一个真正的白领,但是那个艺术家、手艺人的梦想还是深深地扎根在我的心里,因此我始终没有放弃“编码”这个我眼中的“手艺活”,而且尽可能磨砺它。因为我还是认为,编码这种工人,与实物制造的工人还是不一样的,它不是培训一、两个月就能上岗的简单劳动,而是带有深厚个人技能的一项工作。如果离开了个人的技能,根本无法胜任这样的工作。我也曾想去打造一个软件的工序,让那种经过简单培训的初入门者,就能迅速胜任其职责,无一例外,都失败了。
在成为“白领”10年后,在我渐渐适应这种磕磕绊绊的工序式工作后,在我有点资深项目经理和管理者的小骄傲后,我又接触到了一种新的开发方式——敏捷。一开始我对其是有抵触的,因为它违背了我这20年中所接受的教育。在我看来,敏捷是那种基于极高的个人道德和自我约束力,才能成功实施的一种实践。随着对敏捷的逐渐了解,我越来越喜欢这种方式。因为它的主张,正是一个有“手艺活”的人的方式。我心底里的那个“木匠”开始复苏。敏捷中的跨职能、小团队、经验式的开发方式,不就是一个对手艺、对经验有着强烈要求的作坊式生产方式么。我们批驳了这么些年的,让我们鄙视了这么年的作坊式开发方式,居然又被提了出来,还逐渐成为了软件开发的主流方式。这让我再一次感受到“历史总是螺旋式上升的”这一伟大断言的震撼。
今天,我打开了《软件工艺》这本书,读完前言后我再次感到了震撼,我前面的这些感受,这些经过20年工作经历才有的一点点感受,在10年前的这本书中早已提出了。我感到一丝深深的心痛,心痛这10年的光阴。我花费了20年的时间,好不容易从一个手艺人的身份,转变成一个大工业管理者的身份,而且是一个拥有世界承认的资格的身份,而现在别人却明明白白的告诉我:这是不对的,你以前的想法和做法才是对的。并且是10年前说的。还真是有点“恨不相逢未嫁时”(郑重声明:我可是个纯爷们)的痛。
不管怎么说,现在知道了这个道理也不算晚,毕竟它验证了我的直觉:软件开发是个手艺活。而值得庆幸的是,我始终没有放下过这个手艺。
历史总是螺旋上升的