主题:【原创】闲聊敏捷编程 -- 代码ABC
按我的理解我们的程序开发组织方式经历了三个阶段:英雄主义阶段、工程阶段和敏捷阶段。
最早的程序员是受人尊敬的,一则敢戴这顶帽子的人很少,二则计算机(尤其是微机)正给人带来前所未有的震撼。因此这些能看懂天书,并能指挥这些神奇的电妖的人是神秘的英雄。我很幸运的赶上过这个阶段的末班车,那时候世界是多么美好啊。客户(那时候叫有求于我们的人)的需求是简单的——计算机的能力毕竟有限,他们对于一些莫名其妙的限制言听计从,比方说如饥似渴地学习金山WPS(谁还知道这个东西)仿佛天书般的格式命令等等。那时候程序员最大的困扰莫过于由于自己愚蠢而搞出来的Bug。客户对这种事情也习以为常。印象最深的一次是一天放学回来,老爸说我帮他写的一个程序中途意外退出,让我吃晚饭到办公室把已经输入的数据救回来。当我来到办公室的时候,那台计算机的键盘被一张纸牢牢盖住,上面是父亲龙飞凤舞的四个字“请勿乱动”。唉,那时我感到的不适羞愧,而是.....一种优越感!
不过这种优越感渐渐被程序员们自己打碎了,人们发现这些“英雄程序员”被稍微大一些的项目打败了。许多大型公司在这里交了天文数字的学费。人们认识到这种个人英雄主义的小作坊是无法成事的,怎么办?人们想到了管理——我们不需要英雄,我们需要一个团队,一个可以管理的团队。于是软件工程应运而生。我的理解,所谓软件工程是管理学的软件开发过程组织上的一个应用。良好的管理可以减少项目风险的损失、可以提高项目的质量以及团度的效率。于是个人的能力被团队的能力替代,程序员的优越感在管理制度面前荡然无存。我们被各种管理条款约束着,反过来客户逐渐在项目中确立了自己的地位。这很正常,毕竟他们掌握着我们的饭碗。
于是客户微笑了,尤其当他们发现只要按着越来越成熟的管理制度运作,傻瓜也可以胜任程序员。于是代码蓝领开始出现。
黑暗吗?有人问曾经的英雄程序员。
不!客户的微笑消失了。当某种事物发展到极致的时候,螺旋上升的规律也就快要应验了。客户发现他们也掉进了管理的陷阱,谁也逃不到。一个简单的需求变更需要经历重重管理步骤,等待空闲的资源。而且良好的管理制度也不再保证项目的质量了,尤其是那些已经运行了一段时间的项目。当管理变成官僚主义,当项目变得僵化,当需求变得无理。变革再次降临。
曾经的英雄说:“笨蛋,你们需要的是可以运行的代码,而不是冗长的文档;你们需要真正的沟通,而不是僵硬的制度;你们要的是合作,而不是谈判;你们要的是响应变化,而不是遵循计划;你们要的是程序员,而不是在一群监工下工作的代码蓝领”(最后一句是我加的)
于是,我们看到一个新的名词——敏捷编程。
于是,英雄没有回归,敏捷也不需要英雄,但也不要代码蓝领。敏捷需要水准之上的真正程序员。
于是客户可以再次微笑(老板也是),因为敏捷做到了几个令人抓狂的特性:你可以在任何时候提出变更,哪怕在验收阶段,这些变更都能够在合理的时间内满足;团队成员流动对项目没有影响。
其实敏捷还可以做到很多,待我慢慢道来。
本帖一共被 1 帖 引用 (帖内工具实现)
- 相关回复 上下关系8
🙂【原创】闲聊敏捷编程
🙂好文!花催下文~~ 羽羊 字40 2009-05-21 22:46:08
🙂哈哈,一直想写一篇关于SCRUM的管理经验,先看看你的 哈酷 字0 2009-05-21 03:22:28
🙂我熟悉的是极限,也想看看SCRUM的组织 代码ABC 字28 2009-05-21 08:30:29
🙂金山WPS免费,感觉很有潜力 不感冒 字0 2009-05-20 08:05:20
🙂确实如此 六月流火 字129 2009-05-22 02:41:05
🙂早期的WPS有个后门 忧心 字66 2009-05-21 04:56:18
🙂ctrl+qiubojun,呵呵会心一笑 羽羊 字0 2009-05-21 22:47:06