为什么糟糕的软件成功了

本文是翻译,版权归原作者所有


原文地址(source):http://pressupinc.com/blog/2014/12/bad-software-succeeds/

做为热爱公平的软件制造者,最难以接受的现状之一,莫过于一款制作精良、设计优秀的软件完全没有用武之地。类似地,世界上严重被依赖的很多软件却是糟糕的——即使没有完全的、不可否认的bug,也充斥着低劣的设计抉择。这好像成为了有关软件的、一种重要的让人沮丧的事实。

到底什么是糟糕的软件?

成功的糟糕软件(失败的优秀软件)的第一个也是最重要的理由,在于我们无法就“糟糕”的意思达成一致。大部分人都认为,如果软件宣称备份你的电脑而不是随意地破坏你的数据,明显因成功备份而占用了更多的存储空间,却不包含你的数据,那么这种软件就是“糟糕的”。但是在此假想情况与我们开发者称之为糟糕软件之间,存在着大量的中间立场。

人们不认同让它成为糟糕的标签,糟糕的软件比你预期的这种标签做得要好,因为所有这些例子都被理智地归入了“糟糕软件”之列,所以它比其中的原因之一要清晰些。如果你认为一款软件因其GUI难看而被视作糟糕的,那么当一款软件在它的设计功能上出问题时,我想它就是糟糕的,我们很可能在业务依赖的老款Swing(Java) 工具包上存在分歧。

当糟糕软件是优秀的时候

理解上的冲突是关于糟糕软件成功的原因核心所在。商人优先考虑的事情和开发人员极有可能不同。终端用户优先考虑的事情,与商业主和开发者也可能不同。一个人认为好的东西,另一个人认为一般般,甚至认为是“非常痛苦的”。这就是问题的核心。

wordpress-糟糕的软件

大多数刚接触WordPress的开发者都厌恶它。作为一个开发平台,充其量有点儿新奇。它的代码是很久以前写的,十年前的一些不平凡的设计决策,到了今天仍然是健壮的。但是,由于该平台优先考虑的事情是用户便利性和持续性,它仍然运行在带有PHP5.2的、陈旧的共享主机账号上(它甚至好多年没有安全方面的发布了)。所有过去的模板和扩展(在WordPress,其术语是主题、插件)仍然良好地运行在最新的版本里。

你可以不认同WordPress团队关于他们优先考虑的事情,你可以认为他们的软件只是不可挽回地、糟糕至极,但是你真的不能无视一个事实,那就是它仍然被相当数量(貌似还在增长)的用户使用,他们觉得它简单、舒服和强大。

为什么糟糕的软件没有随处可见

基本上,“糟糕”软件繁殖的主要驱动力在于,有着不同优先目的的人们所做的决定,在影响着软件开发的最后产品或购买进程。通常,这些组合,和目标以及成功的定义没有多大关系。

摆脱糟糕软件的办法在所有层面都是深度相关的,取决于所有的利益相关人,既定软件要完成什么、它使谁受益、以及软件的“优秀”版本应该是什么。当它达到那个版本时,每个人最终认为它是优秀的,而不仅仅是实现了最重要的、最有权势的利益相关人的版本。

基本上,清晰地、良好测试的、文档齐备的、明辨可懂的代码,仅仅和开发者相关。对于业务人员,它能否提供价值、以及帮助赚钱才是重要的。对于管理人员,成功通常是运行时间上的五个9(99.999%)。对于终端用户,最重要的却是容易和开心。但是这些利益相关人的每个目标,很容易与其他人在不可避免的优先权争夺中发生转移。

对于所有利益相关人而言,制作优秀软件是一种政治平衡,更像是软件艺术、敏捷实践、TDD或任何其它东东的问题。在一个软件团队调整每个人的愿景和工作,和在任何其他团队一样有难度。在所有利益相关人的愿景根据他们的目标、优先考虑的事情和成功的条件做出调整之前,有人常常觉得他们被迫地与“糟糕的”软件打交道。

译文:为什么糟糕的软件成功了 》| 腊八粥