敏捷史话(十七):维基(Wiki)背后的灵感来源—— Ward Cunningham
- 2021-05-07 16:06:01
- 敏捷开发社区 原创
- 3910
在软件开发领域, Ward Cunningham 有许多独到的见解与成就。
1949年,Ward Cunningham 出生于印第安纳州的密歇根市,并在莱克县的一个小镇中长大。怀揣着对计算机浓厚的兴趣,在普渡大学学习期间,他获得了跨学科工程(电子工程和计算机科学)学士学位以及计算机科学硕士学位。1978年,Ward Cunningham 完成了全部学业。
( 普渡大学校徽)
毕业后的 Ward Cunningham 先后担任过研发总监、首席工程师等职位,也自己创办了 Cunningham&Cunningham,Inc.——专门从事面向对象编程的咨询公司,以及一个面向软件开发人员的教育性非盈利组织:The Hillside Group。在自己丰富的软件开发实践的基础上,Ward 总结出了很多经验以及独到的思想,这些思想也成为日后软件开发人员进行开发实践的准则。
Cunningham 定律与 Wiki
Ward Cunningham 认为:“ 在互联网上获得正确答案的最佳方法不是提出问题,而是发布错误的答案。”这就是 Cunningham 定律,指人们更正错误的答案比回答问题更快。在日后的工作中,Cunningham 也在一直贯彻这一想法。
20世纪80年代末,Cunningham 在使用一个名为 HyperCard 的程序时,发现了这样一个问题:虽然 HyperCard 程序管理了许多称为“卡片”的资料,每张卡片都可划分字段、上传图片,且支持修改编辑。这个类似网页的程序对当时的人们来说很有用,但要想创建卡片与卡片之间的链接,就非常难了。
![](https://cdn.easycorp.cn/minjie/data/upload/minjiekaifa/202105/f_4255b41d711212c8c8adfb7ea417163c.png)
这个在 HyperCard 的程序上写出的小功能,就是 Ward Cunningham 对 Wiki 的最初构想。
1995年,Ward Cunningham 正式推出了第一个 Wiki 网站:WikiWikiWeb,方便程序员们进行思想交流。
关于为什么要创建 Wiki 这一问题,Cunningham 有话要说:“ 起初创建 Wiki,我的目的就是创建一个能够将彼此经验联系起来的环境,从而发现编程的模式语言。”这个想法在他看来稀松平常。以至于后来接受采访时,被问及是否考虑过为 Wiki 的概念申请专利,Cunningham 解释说:“这个想法听起来就像是没人愿意为之付费的东西。”
尽管 Ward Cunningham 不考虑为 Wiki 申请专利,但这并不表明他放弃了 Wiki。自Wiki 诞生之后,他就一直希望在全世界范围内推广 Wiki。
![](https://cdn.easycorp.cn/minjie/data/upload/minjiekaifa/202105/f_738f40c4ecb5928485926d40c0413701.png)
至今,Ward Cunningham 仍在致力于推广 Wiki 技术。
Cunningham 与面向对象编程
作为一名程序员,Ward Cunningham 几乎对所有的编程模式都有所涉猎,包括面向对象和敏捷建模。
他支持面向对象编程中长期关注代码设计的实践,更偏向于注重代码和人的关系。为了推动模式语言的运用,Cunningham 发布了一个新的网站: 模式共享社区,希望将不同作者的软件模式集中在一起,展示现有模式之间的关系,以鼓励用户贡献更多的模式,获得更好的软件。
Cunningham 与极限编程
在创建 Wiki 的前几个月,Ward Cunningham、Kent Beck 一直与坚持软件工程的教条主义者们争论,争论的内容主要在于是否实践代码集体所有权。
Cunningham 认为,“代码集体所有权有很大的好处,不仅能够降低风险,还可以提升开发效率……”而教条主义者们认为,“这简直太荒谬了!实行代码集体所有权后,你永远不会有责任。如果你没有责任,你永远不会有质量。唯一能让你负起责任的方法就是承担责任。如果你不想再让人写出 Bug,你就必须把这个责任放在他的身上……”双方并没有说服彼此,但这场争论让 Cunningham 更坚定了维护代码集体所有权的信念。
![](https://cdn.easycorp.cn/minjie/data/upload/minjiekaifa/202105/f_4c6e6220cd4e720d9eee0f0d41bb9fec.png)
因此,Wiki 中应用了代码集体所有权的理念。Wiki “ 开放”的特点决定了当内容不完整或者出现错误的时候,所有人都可以用他们认为合适的方式加以编辑。 在 Wiki 中,所有参与者都对此负责。
Cunningham 与《敏捷宣言》
“ 我宁愿转向下一个想法,也不愿为保持最后一个想法的纯正而奋斗。”
敏捷真正带给软件的是一种能力,通过使团队中的成员达成共同的目标,实现高质量的产品交付。“当《敏捷宣言》的四个价值观被整齐地列在黑板上时,我们只是在感慨,虽然我们是十七个不同的个体,但写在黑板上的内容是我们共同想要表达的东西。”回忆起2001年的雪鸟会议,Cunningham 这样说。
不论是 Wiki、面向对象编程、极限编程还是《敏捷宣言》,对于这些新的尝试,Ward Cunningham 选择迎难而上。对此,他也有自己的一套看法:“ 如果你想要做的好,那就想办法每天都去做 。选择你害怕的事情,而不是选择你擅长的事情,然后克服它,这就是推动我前行的动力。”
文章分类
联系我们
- 联系人:阿道
- 联系方式: 17762006160
- 地址:青岛市黄岛区长江西路118号青铁广场18楼
投稿邀请
如果您有优秀的原创文章,欢迎添加联系人直接与我们联系,或通过下方邮箱发送投稿文章,一经采用,我们会付以一定的稿件报酬。
- 投稿邮箱: yanruiyu@easycorp.ltd
- 投稿标题:向 [敏捷开发] 网站投稿
- 稿件要求:与敏捷开发相关的任何内容
更多投稿相关请点击 更多进行了解~