世界顶尖运动队教练的成功秘诀
本文列出了来自于顶级教练Marc Lammers的9条原则,他是在打造世界最佳曲棍球队的过程中发现这些原则的,文章把这些原则映射到了软件开发实践之中。
作者 Sadek Drobi译者 韩锴 发布于 2008年1月27日 下午8时39分
组织团队通常都是一项需要慎之又慎的任务,因为想要找到一位满足所有理想候选人条件的成员,几乎是不可能的。因此不可避免要进行各种取舍和权衡。在这样一个事实面前,一定要确定出哪些条件更加重要。而Martin Fowler真正看重的,是丰富的技能,而且这种技能并不仅仅局限于软件设计的范畴。
他在最近的一篇文章中表达了这个观点。假如有两个人,第一个人非常了解所使用的平台,但对于设计的知识知之甚少;另一个人拥有非常丰富的设计技能, 但是对于即将用于项目中的特定技术却了解非常有限。如果必须在这两人中做出选择,他会选择后者。Martin解释说,尽管设计技能的确不能完全从一种技术 移植到另一种技术上,更不能盲目地复制,但是其中很大的一部分都可以照搬过来,不仅有那些类似的技术之间的转移,还包括从Curly-brace语言到 Ruby。按照Fowler的观点,拥有丰富设计技能的人,可以快速地在一个不同的平台上交付价值,并且可以“比那些缺少设计技能的平台专家们更具有生产 力”:
一个非常熟悉某一特定平台的专家如果想写出可维护的代码,他还必须学习更多的设计技能。有一点很重要应该记住,学习如何设 计并不一定比了解一种平台更困难,而且它是更通用的知识。对于一位主动且经验丰富的设计者而言,我非常确信他可以很快地掌握某个平台的特定知识。但是反过 来就不一定了。有些人非常热衷于学习一个平台的细节,却从来不反思如何写出清晰的代码来。
同样的道理也适用于非技术领域。有些人并不了解特定的业务领域,但他们可以参考其他的领域,然后通过与领域专家合作、与客户交流,进而快速地获得必要的知识。
因此,按照Martin Fowler的观点,要想为软件带来更好的质量并向客户交付价值,团队成员应该拥有丰富的技能,这是最基本的保证。尽管在最初会缺少特定领域和特定技术和经验也没有关系。
尽管如此,除了拥有丰富的技能外,要想让程序员能够足够快速有效地获取必要的经验,还需要满足很多其他的条件。首先,团队中有必要安排一位领域和/ 或平台专家,他可以与团队分享他的经验。另外很明显地,开发者的主动性、他快速学习的能力以及与其他团队成员合作的态度,这些也都是非常关键的技能。
哪些是你所关注的?哪些会影响到你雇佣员工时的选择?
查看英文原文:Prefer Broad Design Skills over Platform Knowledge本文由Per Jacobsson所作,目标读者为有意了解Lisp的Java开发人员。文章探讨了当前可以运行于JVM上的不同Lisp方言,以明快简洁的方式介绍了Lisp程序设计工作机理和其独特之处,并在最后演示了Lisp代码同Java系统的整合过程。
本文以一个实际应用的例子为引子,探讨Ruby/Rails在非传统web系统中应用,以及研究如何定制以Rails为基础的领域特定的MVC框架。
本视频对云计算进行了简要的介绍,主要包括了五部分内容:首先带大家认识“云”,然后对计算机的发展过程进行了阐述,接着介绍了业界现状和企业级/世界级计算的新布局,最后对云计算做了一下展望。
在这篇文章中,Bryon Jacob和Chris Berry介绍了AtomServer,一个基于Apache Abdera的完整Atom存储实现。在去年,作者一直致力于为其雇主——Homeaway——实现一个Atom存储,现在已开源了其Atom存储框架:AtomServer。
开发团队的成长离不开优秀的人才,简捷有效的流程和高效率工具这三个卓越工程系统中的重要因素。本文作者从这三个因素分析了微软中国开发团队是如何“从优秀到卓越”的。
本文是Productive Java with Ruby系列文章的第一篇,我将从单元测试这个话题开始,让Java的开发人员能够在实际工作中利用Ruby提高工作效率。
InfoQ中文站有幸与阿里软件的首席架构师赵进在一起探讨了SaaS的相关话题,包括SOA和ASP与SaaS的异同、云计算、SaaS的前景、它的关键技术、技术瓶颈等等。
4 条回复
回复