西西河

主题:【原创】闲聊敏捷编程 -- 代码ABC

共:💬25 🌺54
全看分页树展 · 主题
家园 【原创】闲聊敏捷编程

按我的理解我们的程序开发组织方式经历了三个阶段:英雄主义阶段、工程阶段和敏捷阶段。

最早的程序员是受人尊敬的,一则敢戴这顶帽子的人很少,二则计算机(尤其是微机)正给人带来前所未有的震撼。因此这些能看懂天书,并能指挥这些神奇的电妖的人是神秘的英雄。我很幸运的赶上过这个阶段的末班车,那时候世界是多么美好啊。客户(那时候叫有求于我们的人)的需求是简单的——计算机的能力毕竟有限,他们对于一些莫名其妙的限制言听计从,比方说如饥似渴地学习金山WPS(谁还知道这个东西)仿佛天书般的格式命令等等。那时候程序员最大的困扰莫过于由于自己愚蠢而搞出来的Bug。客户对这种事情也习以为常。印象最深的一次是一天放学回来,老爸说我帮他写的一个程序中途意外退出,让我吃晚饭到办公室把已经输入的数据救回来。当我来到办公室的时候,那台计算机的键盘被一张纸牢牢盖住,上面是父亲龙飞凤舞的四个字“请勿乱动”。唉,那时我感到的不适羞愧,而是.....一种优越感!

不过这种优越感渐渐被程序员们自己打碎了,人们发现这些“英雄程序员”被稍微大一些的项目打败了。许多大型公司在这里交了天文数字的学费。人们认识到这种个人英雄主义的小作坊是无法成事的,怎么办?人们想到了管理——我们不需要英雄,我们需要一个团队,一个可以管理的团队。于是软件工程应运而生。我的理解,所谓软件工程是管理学的软件开发过程组织上的一个应用。良好的管理可以减少项目风险的损失、可以提高项目的质量以及团度的效率。于是个人的能力被团队的能力替代,程序员的优越感在管理制度面前荡然无存。我们被各种管理条款约束着,反过来客户逐渐在项目中确立了自己的地位。这很正常,毕竟他们掌握着我们的饭碗。

于是客户微笑了,尤其当他们发现只要按着越来越成熟的管理制度运作,傻瓜也可以胜任程序员。于是代码蓝领开始出现。

黑暗吗?有人问曾经的英雄程序员。

不!客户的微笑消失了。当某种事物发展到极致的时候,螺旋上升的规律也就快要应验了。客户发现他们也掉进了管理的陷阱,谁也逃不到。一个简单的需求变更需要经历重重管理步骤,等待空闲的资源。而且良好的管理制度也不再保证项目的质量了,尤其是那些已经运行了一段时间的项目。当管理变成官僚主义,当项目变得僵化,当需求变得无理。变革再次降临。

曾经的英雄说:“笨蛋,你们需要的是可以运行的代码,而不是冗长的文档;你们需要真正的沟通,而不是僵硬的制度;你们要的是合作,而不是谈判;你们要的是响应变化,而不是遵循计划;你们要的是程序员,而不是在一群监工下工作的代码蓝领”(最后一句是我加的)

于是,我们看到一个新的名词——敏捷编程。

于是,英雄没有回归,敏捷也不需要英雄,但也不要代码蓝领。敏捷需要水准之上的真正程序员。

于是客户可以再次微笑(老板也是),因为敏捷做到了几个令人抓狂的特性:你可以在任何时候提出变更,哪怕在验收阶段,这些变更都能够在合理的时间内满足;团队成员流动对项目没有影响。

其实敏捷还可以做到很多,待我慢慢道来。

关键词(Tags): #闲聊#敏捷编程#软件工程

本帖一共被 1 帖 引用 (帖内工具实现)
全看分页树展 · 主题


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河