软件编程技艺

  • Dave West
  • 侯伯薇

2010 年 8 月 23 日

话题:敏捷架构文化 & 方法

Cutter 协会最近出版了一期 Cutter IT 专刊,主题是软件编程技艺: 敏捷开发的影响。 你可以免费下载这期专刊。(但是你必须先注册,然后在页面的橘色小输入框中输入推荐码)。

这一期刊物的客座主编是 Jens Coldewey。 在篇首语中,Coldewey 回顾了技艺运动的起源,也就是 OOPSLA 研讨会。

十二年之前,四位了不起的人——Bruce Anderson、Norm Kerth、Dave West 和 Ken Auer——在 Vancouver 举办的 OOPSLA 大会上举办了一场了不起的研讨会。 “软件即是工作室规则。” ... 1998 年的这场研讨会官方的主题是教学,但是今天再来阅读这些号召参与的声明,我们会觉得它更像是软件技艺运动的起点。

Pete McBreen 参加了此次研讨会,三年之后他出版了《软件技艺》一书,而 Bob Martin 则在 2008 年提议添加第五条敏捷宣言“(我们的价值在于)技艺胜于废话。”

据 Coldewey 所说,软件技艺已经成为一种运动,它是对以下内容所做出的响应:“很多敏捷实践者越来越担心, 由于 Scrum 已经获得了大量的成功,越来越多的人会将敏捷运动降格为 Scrum 实践…… (而忽略了)以频繁而快速的节奏发布高质量代码,却不会破坏代码库的能力。”

Coldewey 还提到,软件工匠提倡:

... 好的代码库是频繁发布有价值的软件的基础,而能够专业化地协调利益相关者的业务目标的稳定团队则是好的代码库的基础。(并且)编程是一种需要终生学习、并且与熟练的程序员合作的技能…… (还是)只可意会不可言传的知识和经验。 而这也正是技艺登场的地方: 技艺是讲授和传递不可言传的知识和经验的传统方式。

该册专刊包含了六篇文章,以及客座编辑的篇首语。

  • “真正软件工匠的七个维度”,作者为 Mathew A. Stuempfle 和 J. David Gibson。该文章试图回答怎样成为真正的软件工匠的问题。他们认为需要涉及到几个关键的维度: 理解技艺的必要性;担任多种角色;意识到指导者的重要性;活动的团队成员;理解受众;知道偶尔出错没关系;参与并指引持续改变。
  • “工程: 没问题;技艺: 不可以”,作者是 Ken Orr 和 Paul G. Basset,他们认为技艺运动是一种误导,而软件行业真正的需要在于“成熟为工程规则”。
  • “技艺如何在爆炸性增长中幸存下来”,作者是 Lawrence Fitzpatrick,文中做了一个案例研究,那是关于“在面对严重的对抗压力时,一个正在成长的软件开发团队如何才能够保持表面上的技艺。”
  • “可持续的敏捷软件开发”,作者为 Stefan Roock,文中描述了“增量设计的基本原则”以及它能够如何促进对软件系统进行长期、成本有效的维护。
  • “当前的业务世界需要适应环境的技艺”,作者为 Gil Broza。Broza 认为“在当今世界上,纯粹的软件技艺只是纸上谈兵”,而真正需要并且切实可行的是一种不同的技能“适应环境的技能”。
  • “谁会进行设计用户体验: UI 开发者还是 UX 设计者?”,作者为 Michael Hughes。 Hughes 重点讲述了人机交互系统、可用性以及近期出现的用户体验(UX)设计规范应该是技艺的一部分的说法。

这期专刊提供了关于技艺运动起源非常有趣和有用的信息,还提供了一些正在讨论的重要问题。 这对于准备参加2010 SCNA 会议的人会非常有用。

 查看英文原文:Software Programming as Craft

敏捷架构文化 & 方法