六、软件成为开发工具而产生的需求

互联网上产品的功能和内容允许用户自己利用一些工具开发。著名的网络游戏《魔兽世界》,就有大量的用户利用其插件脚本工具编写自己的界面,并且发布到网上供别的玩家使用。而社区型游戏《梦幻西游》,也因为玩家的互动而产生了大量的社区活动。更不要说微博、相册这类互联网应用,它们本身就是用户直接共享信息的平台。而大部分的现代网络社交产品,追溯至FaceBook,都会提供开发者API,让用户自己在上面开发应用。谷歌的API则已经成为互联网上的开发经典库之一,而FaceBook已经拥有成千上万的用户应用程序。另外一个叫虚拟人生的产品,则直接提供了一整套3D建模工具给用户,让用户直接构造出虚拟世界。有的公司甚至靠在这个虚拟世界中以卖虚拟产品为生。

在这类产品形态中,开发者和使用者往往混淆起来了,原本被认为并不重要的“开发者”自己的需求,反而变成了重要的产品需求。而“用户开发者”的加入,为产品带来了巨大的不确定性。这些产品新的变种部分,可能增强或者危害产品本身。因此从后台浮现出更多的实时监控、安全加密、架构设计需求到前台,使得项目的开发需求正在被颠覆。

从另外一个层面上说,因为互联网产品需要持续地更新和开发,一套完善的产品工具库,包含了诸多经过实践提炼的需求实现,这些需求实现都是非常有价值的。那些能把自己的产品做成开发工具的项目,往往都具有极大的灵活性。在游戏开发范畴,这一类工具被称为引擎,最著名的引擎就是FPS类游戏“QUAKE”的引擎,还有3D游戏的BigWorld和Unreal等引擎都被广泛销售和使用。在网游的童年时代,那些称为MUD的文字网游,则几乎都是由一套叫做MudOS的代码驱动,在其上层配上不同的GameLib程序,从而形成完全不同的游戏。而这套MudOS和基础GameLib,居然具备了在线文件管理和文件编辑及编译的整套功能,于是无数个MUD游戏诞生了。

这些应用软件的特定开发工具,能让互联网软件产品变得更加丰富。为了获得这种强大的开发能力,我们对于软件的需求就不仅仅是用户的使用需求,还有另外一个重要需求,就是要满足开发者用来进一步开发这些软件本身的需要。