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