频 道 直 达 - 新闻 - 培训 - 软件 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 读书 - 博客 - BBS
51CTO.COM_中国最大的网络技术网站
找资料:

1.1 软件和诗歌

作者: Alistair Cockburn著,苏敬凯译 出处:机械工业出版社华章公司  2008-02-21 15:40    砖    好    评论   进入论坛
阅读提示:《敏捷软件开发》以“软件是创造和沟通的合作博弈”为中心向读者展示一个看待软件开发的崭新视角。第一章内容写了创造和沟通的合作博弈,本文是讲了软件和诗歌设计师。

第 1 章创造和沟通的合作博弈

在思考软件开发时,有一种富有成效的方式,那就是把它当作一个创造和沟通的合作博弈。

第1节提出了这样一个问题:“如果它不是我们正在开发的软件,那么开发软件的体验应该像什么?”。本节的目的是与主题拉开一些距离,从而发掘出其他讨论它的方式。

第2节回顾了很多被称为博弈的活动,并找到了软件开发在这一光谱中的位置。如果你还不熟悉零和博弈、位置博弈、有限博弈和无限博弈,那么可以快速地浏览本节的第一部分。接着,本节把软件开发与另一个团队合作博弈—攀岩做了一番比较,然后与两个对照者—工程化和模型构建做了一番比较。

第3节更深入地研究了把软件开发当作一个创造和沟通的合作博弈的观念。它认为这一博弈的首要目标是:交付可工作的软件,而辅助目标(或者说博弈的积淀)是:为下一次博弈做准备。下一次博弈是更改或替换系统,抑或是创建一个临近的系统。

本章的最后一节将这些观念与日常生活关联在了一起。

1.1   软件和诗歌

如果软件开发不是软件开发的话,那它会是什么?而这个体验又会像什么?我认为它像一个群体在一起写叙事诗集。我做这个比较不是因为我认为你有集体编写诗集的体验,而是因为我认为你没有这种体验。你的想象力能够向你提供各种反驳的理由,而这正是我希望唤起的。

想象一下,把50个人聚在一起,在有限的成本和时间内编写2万行的叙事诗。那么,你预料会发现什么呢?对一件事情,有很多争论。人们努力追求创造,努力竭尽所能,却没有足够的才能、时间或资源。

这出戏中的演员是谁?首先是那些订购了这首诗的人。他们想要的是什么?他们想要一些能够用来娱乐自己或打动朋友的东西,不要太昂贵,但要尽快。

接着,我们要有关键的诗歌设计师。

正如你可能想象到的,这要从一个人的项目开始。但我们虚构出的诗人发现自己承诺的太多,超出了在给定时间内她能够交付的范围。因此,她请几个朋友来帮忙。他们拥立她为首席诗人和诗歌设计师,并由她来确定主题和顺序。
她的朋友开始帮忙了,但是很快就遇到了工作的同步和沟通上的问题,其结果是不能按时完成工作。因此,他们增加了两个文员、更多的朋友,甚至在绝望的时候还叫来邻居帮忙。当然,这些朋友和邻居不是真正的诗人。因此,我们的设计负责人为那些不过分要求天赋的诗定出了分段。
你认为会发生什么呢?

有个人擅长描述性的段落,另外有个人擅长血淋淋的文字,还有一个人擅长刻画人物,这是好消息。除了这个负责的诗人之外,没有人擅长抒情。而现在她正在急得挠头,因为她没有时间写诗,而是正忙于协调、检查和分配任务。

实际上,有两个人做不到适可而止。他们两个人写了一篇又一篇的文字来描述一个配角,而我们这个负责的诗人却不能让他们把篇幅削减到合适的长度。另一个人总是对自己的工作进行重写和修订,并且永远也不满意结果。负责人想让他们继续处理其他的段落,但他们却不愿停止瞎摆弄他们之前的部分。

随着时间的流逝,这组人变得绝望,同时又新加了一些人。麻烦的是他们已经用完了资金,真的负担不起所有这些人。沟通很糟糕,没人有诗的当前副本,没人知道诗的实际状态。 让我们给这个故事一个大团圆的结局吧。

幸运的是,他们请来了一位非常有效率的管理员,他为整个诗安排了一个计划,建立了一个目录来记录每个人的技能,为每一部分都设定了时间范围和沟通计划,建立了用于对诗歌的片断进行版本化和合并的标准,还有秘书服务以及其他技术服务。

他们交付了令客户满意的诗,当然也超出了预算。而这个负责的诗人必须出去度个假,恢复一下灵感。她发誓再也不会做这种事了(这个结果我们早就料到了)。

确实有过把一群人召集到一起共同写一个长诗的事情。并且我可以确定,大多数软件开发人员遇到过的问题,他们也遇到过:喜怒无常的天才和水平一般的工作者,以及难以解决的需求和沟通的压力。人们在一起工作,构建一些他们并不十分理解的东西。做得好,结果是令人吃惊的;做得不好,就是垃圾。

软件设计中的平衡

我曾参加过某个面向对象系统的评审,当时有一个评审者提出了一个替代的设计方案。 设计负责人回答道这个替代方案不平衡,不像原来那个方案那么流畅。 因此,即便是在顽固不化的编程圈子里,我们也能发现设计师们使用平衡、流畅等词汇来讨论设计。
与我们虚拟出来的这些诗人相比,软件开发人员有着更大的负担,那就是逻辑。

结果不仅必须是有韵律的,还必须能“足够精确”地运行(如果不是正确地运行的话)。

尽管编程是一个孤立的、基于灵感的、逻辑学的活动,同时它也是一个群体的工程化活动。这是矛盾的,因为它不是这样的情况,同时它又正是这样的情况,软件开发是:

•数学,如C. A. R. Hoare经常说的那样。
•工程,正如Bertrand Meyer经常说的。
•技艺,像很多程序员说的。
•神秘的创造活动,正如一些程序员所说的。

它的创造是对工具敏感的;它的质量与工具无关。有的软件质量优美,而有的则是垃圾。这是对立面的会合,及多组对立面的会合。

它是一个由进行沟通和思考的人们完成的认识和表达的活动;他们根据一定经济边界进行工作,这一活动以他们的文化为前提,容易受到特定参与者的影响。

【责任编辑:雪花 TEL:(010)68476606】

回书目   上一节   下一节
专题
敏捷软件开发(原书第2版)
程序员面试攻略 第2版
微软出价446亿美元收购雅虎
Use Case入门与实例
UML嵌入式设计
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 最 大 的 网 络 技 术 网 站 ·
技 术 成 就 梦 想
订阅技术快讯
电子杂志下载
名称:2007路由技术大全
简介:《2007路由技术大全》由51CTO.com网站特别策划制作,该书包括路由器技术、路由器产品、路由器配置、安全设置、路由器故障处理、路由器密码恢复,以及广大网友在实践使用中的心得经验和技巧文章,内容注重实用性,适用于初学者入门,也适合多年从业者提高,是一本实践和理论完
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
名称:Vista精品应用黄皮书
简介:《Vista精品应用黄皮书》囊括了Vista的各方面内容。此次的精简版,是将里面的内容做了提取,便于用户下载和使用。内容包含了各种Vista的安装与实施、技巧与解析以及各种Vista相关学习文档和相关软件的安全下载。该电子书是了解和应用Vista人员必备的工具手册,并且也是第一本