InfoQ

新闻

丰富的设计技能胜过特定于平台的知识

作者 Sadek Drobi 译者 韩锴 发布于 2008年1月27日 下午8时39分

社区
Architecture,
Agile
主题
编程,
设计,
交付价值,
质量交付
标签
建模工具

组织团队通常都是一项需要慎之又慎的任务,因为想要找到一位满足所有理想候选人条件的成员,几乎是不可能的。因此不可避免要进行各种取舍和权衡。在这样一个事实面前,一定要确定出哪些条件更加重要。而Martin Fowler真正看重的,是丰富的技能,而且这种技能并不仅仅局限于软件设计的范畴。

他在最近的一篇文章中表达了这个观点。假如有两个人,第一个人非常了解所使用的平台,但对于设计的知识知之甚少;另一个人拥有非常丰富的设计技能, 但是对于即将用于项目中的特定技术却了解非常有限。如果必须在这两人中做出选择,他会选择后者。Martin解释说,尽管设计技能的确不能完全从一种技术 移植到另一种技术上,更不能盲目地复制,但是其中很大的一部分都可以照搬过来,不仅有那些类似的技术之间的转移,还包括从Curly-brace语言到 Ruby。按照Fowler的观点,拥有丰富设计技能的人,可以快速地在一个不同的平台上交付价值,并且可以“比那些缺少设计技能的平台专家们更具有生产 力”:

一个非常熟悉某一特定平台的专家如果想写出可维护的代码,他还必须学习更多的设计技能。有一点很重要应该记住,学习如何设 计并不一定比了解一种平台更困难,而且它是更通用的知识。对于一位主动且经验丰富的设计者而言,我非常确信他可以很快地掌握某个平台的特定知识。但是反过 来就不一定了。有些人非常热衷于学习一个平台的细节,却从来不反思如何写出清晰的代码来。

同样的道理也适用于非技术领域。有些人并不了解特定的业务领域,但他们可以参考其他的领域,然后通过与领域专家合作、与客户交流,进而快速地获得必要的知识。

因此,按照Martin Fowler的观点,要想为软件带来更好的质量并向客户交付价值,团队成员应该拥有丰富的技能,这是最基本的保证。尽管在最初会缺少特定领域和特定技术和经验也没有关系。

尽管如此,除了拥有丰富的技能外,要想让程序员能够足够快速有效地获取必要的经验,还需要满足很多其他的条件。首先,团队中有必要安排一位领域和/ 或平台专家,他可以与团队分享他的经验。另外很明显地,开发者的主动性、他快速学习的能力以及与其他团队成员合作的态度,这些也都是非常关键的技能。

哪些是你所关注的?哪些会影响到你雇佣员工时的选择?

查看英文原文:Prefer Broad Design Skills over Platform Knowledge
重点在于…… 发表人 Jeff Xiong 发表于 2008年1月28日 下午9时21分
Re: 重点在于…… 发表人 Jack Wang 发表于 2008年1月28日 下午10时54分
martinFowler的bliki链接 发表人 Forrest Cho 发表于 2008年1月30日 上午7时40分
这句翻译错了 发表人 l n 发表于 2008年2月5日 上午8时2分
  1. 返回顶部

    重点在于……

    2008年1月28日 下午9时21分 发表人 Jeff Xiong

    平台知识一定是不断增加的,即使你不刻意去掌握什么。而设计技能甚至可能是随着系统一道堕落的。

  2. 返回顶部

    Re: 重点在于……

    2008年1月28日 下午10时54分 发表人 Jack Wang

    同意,这就像跟臭棋篓子下棋一样:)

  3. 返回顶部

    martinFowler的bliki链接

    2008年1月30日 上午7时40分 发表人 Forrest Cho

    大小写敏感的: http://martinfowler.com/bliki/PreferDesignSkills.html

  4. 返回顶部

    这句翻译错了

    2008年2月5日 上午8时2分 发表人 l n

    学习如何设 计并不一定比了解一种平台更困难 原文:Here it's important to remember that not just is it usually harder to learn design than platforms ... not just不是修饰is的。。。

深度内容

和Google互补的搜索引擎Wolfram|Alpha

Wolfram|Alpha与Google究竟是什么关系,Wolfram|Alpha自己是如何定位的?Wolfram|Alaph在多大程度上是语义网搜索呢?InfoQ中文站就等等这些问题采访了Wolfram研究公司中国区商务经理王翔。

SOA契约成熟度模型

本文说明了所推荐的契约版本管理设计策略是如何与SOA成熟度模型发生联系的。文章目的是为实现版本管理和可组合性提供一个路线图。

数据服务简介

Vijay Narayanan在这篇文章中对数据服务的几个方面进行了介绍,它们都是SOA实践者和数据架构师感兴趣的内容。本文对数据服务的几个方面进行了介绍,包括需求定义,基本原理和好处、范围、开发以及消费模式。

分块云计算

在本文中,Jimmy Nilsson描述了一种他在过去数年间观察到的一种正在缓慢成长的架构风格,他把这种风格称为“分块云计算”。

豆瓣网技术架构变迁

罗马不是一天建成的,豆瓣的技术架构也是随着用户规模的增长一直在持续变化中。在本次演讲中,豆瓣的首席架构师洪强宁将与大家一起分享从上线时的单台服务器架构开始一直到现在的豆瓣架构变迁历程。

融合思想:深入探索S#arp架构

Billy McCafferty展示了S#arp架构,它在ASP.NET MVC框架的基础上,荟萃了当今的最佳实践,应用在ASP.NET Web应用程序的架构设计中。

王雷谈开源以及新兴市场计划

中国作为新兴市场中的新兴市场,是Sun在美国之外实施SSE(SUN Startup Essentials)项目重点关注的地区。在QCon Beijing 2009期间,InfoQ中文站有幸对此项目的负责人王雷先生进行了采访,探讨了关于开源、新兴市场、SSE等话题。

使用HTML5构建下一代的Web Form

HTML5 是由 WHATWG发起的,最开始的名称叫做Web Application 1.0,而后这个标准吸纳了Web Forms 2.0的标准,并一同被W3C组织所采用,合并成为下一代的HTML5标准。