别让我打开话匣子

开发人员和设计人员应该是朋友

David Platt

开发人员和设计人员并不总是相处融洽,但他们需要保持良好沟通。在西班牙巴塞罗那的 Tech·Ed 2007 上,我第一次遇到了这种抵触,第一次看到整个专场探讨完全针对设计人员。与会者都很反感此专场,由于风评如此之差,管理人员不得不在第二天将其取消。通过观察其中几场探讨,我发现其质量还是相当不错的。我没有看到通常会引起差评的原因,如演示程序出现问题或演讲者要比平常紧张。相反,我认为,开发人员团体当时是不愿意仅从此专场研讨会了解一些基本消息:这些新奇的 Windows Presentation Foundation (WPF) 和 Silverlight 图形环境需要新团队成员来提供服务,他们与开发人员同等重要但具备不同技能。

他们彼此之间的态度改善不大。我在 2008 年阿姆斯特丹的 Dev Days 上发表的主题演讲另双方都很满意,但之后,设计人员和开发人员始终是各自探讨各自的,直到晚宴时啤酒才使双方把酒言欢(这件事听上去很好笑)。2009 年我在米兰的 ReMix 上发表主题演讲后,同样的一幕又一次上演了,只不过在意大利他们喝的是葡萄酒而不是啤酒。

开发人员和设计人员拥有不同的世界观,就像内科医生和外科医生。对待相似的环境,双方的使用方式不同;对待相似的问题,双方采用的方式不同。现在,要推出任何成功的客户端程序,开发人员和设计人员是同等重要的,就像对于任何成功的医疗实践,内科医生与外科医生都同样重要一样。

开发人员与设计人员之间的抵触让我想起 1943 年 Rodgers 和 Hammerstein 执导的舞台剧《俄克拉荷马!》中牧场主和农场主之间的冲突(感叹号的滥用并不是从 Yahoo! 开始的)。在歌曲“农场主和牧场主应该是好朋友”里,Aunt Eller 必须拔出枪强迫双方去跳舞(您可以在 YouTube 剪辑看到这段精彩演出:tinyurl.com/pvu93l)。

我希望开发人员和设计人员之间能够更好地合作 — 理想情况下,无需通过武力手段进行强迫。或许,我该修改下歌词:

哦,开发人员和设计人员应该是朋友,
哦,开发人员和设计人员应该是朋友。
一个整天都在摆弄代码
一个戴着很酷的贝雷帽
但是,他们没有理由不能成为朋友。

软件兄弟应当团结在一起,
软件兄弟应当成为朋友。
一些人用 Visual C# 写代码
另一些热衷于 Expression Blend。

哦,开发人员和设计人员应该是朋友,
哦,开发人员和设计人员应该是朋友。
他们中有人磨牙
另一个知道如何以 XAML 进行思考
但是,他们没有理由不能成为朋友。

当我在公司教授 WPF 或 Silverlight 时,我坚持每个班级都必须包括开发人员和设计人员。当我与公司就 UI 项目进行磋商时,我坚持设计团队必须二者兼有。一般而言,设计人员确定什么可以让用户愉快,而开发人员则考虑如何有效地实现这些想法,双方相互协作,相互提意见。

例如,在最近的一次与欧洲客户进行的讨论会中,我推荐了一个用于查找客户的经典对话框,其中包含一个文本框用于输入政府 ID、一个日历控件用于显示生日,以及用于标识彼此的标签。设计人员说:“不错,但该操作的执行非常频繁,将搜索框放在工具栏上如何,就像 Google 那样?无论她具备何种用户类型的信息,我们都可以从此处获取,就像搜索引擎一样。”“是的,我可以分析出所有可能的输入,”开发人员说道,“我有一些比较好的可重用类,不需要很长时间。”(确实是这样的,但是只有那些极客们才能办到。)“我们可以在文本框中放入提示字符串,这样用户就会知道它的用途。”我补充道。接着 — 嗖! — 我们只用了几天时间就为用户呈上了测试用原型。

这就是开发人员和设计人员共同合作的成果,当然还少不了一个坏脾气的人在其中不停地活跃气氛。现在,照我说的做吧,要不然我又要糟蹋那首歌曲了。

David S. Platt* 在哈佛大学拓展学院以及世界各地的公司讲授 .NET 编程。他著有 11 本编程书籍,包括“Why Software Sucks”(Addison-Wesley Professional,2006)和“Introducing Microsoft .NET”(Microsoft Press,2002)。Microsoft 在 2002 年授予他“软件传奇人物”称号。他想知道是不是应该绑住女儿的两根手指,以便她学习八进制算法。您可以通过 rollthunder.com 与他联系。*