June 29, 2011
Who is that code for?
翻译:林业/史玉良
我们究竟努力在创造什么?自由软件开发工程在这个问题上投入了大量的思考和精力。同样,一些项目也在努力向外界表述清楚他们的目标所在。但可以说几乎没有什么项目思考过他们的用户究竟是谁这个问题。然而,一个项目认识其开发目标群体的维度会深深影响该项目所创造出的代码以及项目本身发布的方式。最近,一些备受瞩目的项目成为公众广泛而苛刻批评的目标;其实这些项目真正的问题在于他们对谁是目标用户这个问题很困惑,尤其是当他们发现他们投入了很多兴趣的项目并没有被用户接受时,他们觉得很失落。
最近,有几个相当明显的例子。Firefox5的发布引起了大风暴, Firefox4迅速被抛弃,而在不久的将来,随着Firefox 6的发布,同样的事情将会再次上演。对个人桌面用户来说,这样的发布计划可能刚刚能接受,这也取决于有多少扩展会被破坏(笔者担心这次升级会破坏浏览器中的Firemacs,还有因此也导致Emacs按键绑定的破坏)。相反,如果你正在公司网络环境里,在这个环境里,所有软件必须经过一个扩大的批准流程才能部署,那么缺乏对前几个的 major release 的支持会带来很大的麻烦,对于采用这种政策的企业来说,Firefox是越来越不适合的;因此,在这一点上涌现出许多抱怨,也就不足为奇了。
Firefox开发者的回应很清楚:Firefox项目并不是以企业用户为目标用户群。Firefox之所以取得成功是因为个人用户的使用,而不是其雇主的使用,所以发布的计划是继续面向这些个人用户的。这个观点在项目当前正在考虑的草拟声明中就可以看出:
互联网的下一代革新将会与浏览器紧密相关,浏览器将致力于关注个人用户和开发者的兴趣,提供足以和专有系统竞争的惊奇体验;而且,在用户控制和解放开发者方面更优于那些专用平台。
讨好公司信息技术管理者们并没真正包含在这个计划里。也许有人会反驳,这个策略将加强IE在公司环境中的地位,然而,这就是Firefox开发者们所做出的选择。
近来,另一个备受瞩目的关于目标用户的误解存在于GNOME项目,特别是GNOME3的发布。毫无疑问,一些用户对于GNOME3和GNOME Shell带来的改变感到很失望,尽管在这个群体有多大的问题上还存有异议。GNOME开发者Bastien Nocera最近明确指出,至少其中的一些人并不是GNOME项目的目标受众。因为我们并不是在为那些喜欢选择自己的终端模拟器的人设计桌面。
GNOME项目已经对其用户团体做了很多的其它决定,这些决定迎合了之前讲到的观点。在这种情况下,许多受到影响的用户都感受到了,他们不过是GNOME项目过去所关注的而已。如果GNOME曾经真正以那些关心自己终端模拟器的用户为目标受众,那么现在,它在其他地方找到了更加绿意盎然的草地,并把那些用户丢在脑后。这些用户已经向公众表达出他们的感受:这种时候,能够做到的最好的事几乎可以肯定就是祝愿GNOME面向它的目标用户能取得成功,而如果GNOME不再是一个合适的工作环境,那么转移到其它环境上就是了。
用户的观点影响代码组织方式的例子在社区中有很多。比如 PostgreSQL,这是一个确实把“企业级”用户作为目标用户的项目。PostgreSQL的开发者们还设想他们的用户会很关心他们的数据。这个项目的产品有一个很保守的,密集审核的补丁合并政策以及一个为期五年的支持政策。2006年底发布的 PostgreSQL 8.2将会继续被支持直到今年年底。新功能需要等待更长的时间,但是功能的快速开发通常并不是数据库管理系统用户的迫切需求。
然而 OpenBSD 有着完全不同的看法,他们只勉强承认在他们的开发社区之外存在着一个用户群体。不久之前,OpenBSD的leader Theo de Raadt把他们的观点说得很清楚:
“我们为自己而开发了OpenBSD,并不是为了你们,不是为了用户们。如果用户们最终很喜欢我们设计的系统,那很好。这可能是由于有些用户和我们有着相同的需求。但是,他们要倒霉了,因为我们是为自己而做的。”
虽然当用户忘记了自己的定位时这可能会导致误解,但对于这个特定的项目,这个立场是对的。
其他的例子比比皆是。Git和Mercurial是相似的工具但他们的用户却有着不同的意见.貌似这个差别对于windows用户来说能更加明显的感觉到。Fedora和Red Hat企业版Linux有着相同的始祖和大量相同的代码,但是他们却是为不同人群开发的。在内核2.6.x版本的时代之前,内核社区(大多数)的开发都是直接针对终端用户的;这种观点直接导致了奇/偶的开发过程。现在的内核主要是为发行版而开发的,关注的是频繁的稳定版本发行以及迅速的添加各种功能。Puleaudio和JACK的目标用户不同,依此类推。
没有一个工程可以适合所有人的需求提供所有的一切;所有的这种尝试都失败了。对用户群的清晰认识对一个工程的实施大有帮助,可以吸引志同道合的开发者并增加工程的发行量。因此工程开发需要明确目标用户群,并能够明确的传达这一设想。如果一个工程没有明确特定用户的需求之间的优先级,那么最好在用户投入大量时间到这个软件上之前了解到这个。反过来说,用户也应当注意:正如我们不会去用一个视频编辑器去做代码高亮一样,我们不应该指责一个为特定用户群而开发的工程不能满足其他一些的需求。我们是一个庞大而丰富的社区;如果一个工程不能满足一些特定的需求,那么很可能有其他的一些软件是专门用于解决这些需求的。
最新评论