软件的竞争力:性能
现代的模块化设计,牺牲了软件系统的性能,但提升了项目的开发效率。在软件开发中,开发效率的诱惑对项目经理而言似乎已经超出了性能。另一方面,硬件速度的快速提升,几个G的内存和多核处理器的大众化应用,使得我们会理所当然的认为,软件的性能低一些也没有关系,可以通过硬件的性能来弥补。
但是,殊不知,硬件性能的广泛提升、普及也同时意味着使用软件的人群以及人群对软件的需求面也在大幅度的提升。对于桌面应用程序,现在的用户会比5年前的用户同时运行更多的程序;对于应用服务器而言,现在的应用服务器会比5年前的应用服务器同时响应更多的用户请求。
因此,想通过硬件性能的提升来掩盖软件的性能问题是值得怀疑的。
现在我们再来谈谈软件的竞争力问题。以桌面应用程序为例。现在的用户会同时打开很多应用程序来满足各方面的需求,假如用户在工作的某一刻,同时打开了16个桌面应用程序,而此刻他正在程序A上进行工作。这时他发现程序A的响应速度明显变慢(因为当前充足的硬件资源已经被另外的15个应用程序占用了)。假如此刻网上有一测评,将另外一个类似的程序A1和A作比较,发现其性能提升了50%。然后这个用户将A1下载到本地使用,同样打开15个程序,然后打开A1进行工作。用户发现A1的响应速度没有变慢。我想这时用户会考虑使用A1的。这是性能就成了A1的竞争力。
16个应用程序,这里只是一个抽象的数字,它代表系统使用的一个极端情况。不仅是软件,对任何事物(同时也包括人)的检验只有在极端情况下进行才能体现出其真正的价值。