如果不是以占卜的方式来预测未来,那么就必须分析现实,并进行逻辑推演。对于软件而言,决定其未来的主要因素有三个:软件的外部要求,内在特征,人员状况。
除此之外,法律法规,经济环境等也会对软件的未来产生影响,但如果把时间尺度放的比较大的话,那么这些方面的影响则具有一定的偶然性,因此我们忽略这些相对比较次要的因素。
软件的外部要求又可以分为两个部分:一为用户的真实需要,一为软件的商业模式。我们先从商业模式说起。
Google经常发布一些免费的软件,这对软件行业产生了相当的冲击。小到做GPS的厂商,大到微软都不免心下惶惶。Google一时风头无两。
我们对此现象做一点分析。
等价交换作为资本主义根本要义,不可违反。所以这世界上在可预见的未来,真正的免费绝不会成为主流,有的只是盈利模式的变更以及据实变换的操作手法。Google的崛起事实上标志着一种新的商业模式的崛起。
微软的盈利模式更为传统。我卖,你买。所以微软的软件不能免费。
Google的盈利模式却比较独特。产品你可以免费用,但你要关注我,我会把这种关注转向广告,最终从广告上获得收益。所以Google的软件可以免费,但在这里免费也是盈利的一种辅助手段。
Google模式虽然诞生较晚,却更接近于IT这个行业本来的目的。一直以来,IT的最大价值恐怕仍然是服务于其他行业,并使其增值。其实这也正是软件即服务这一提法的根基所在。
当软件自身的价值远小于在【后续使用】中可以获得的价值时,软件就会免费。服务可以是【后续使用】的一个具体事例。但如果把服务单纯理解为售后支持,那恐怕是错误的。从这里可以推测,越是专业化,用户数量少的软件越难免费,因为这种软件的后续衍生价值很难超过软件自身。Google模式的兴起事实上隐含了这样一个基本事实:软件的用户群在逐渐的膨胀。
如果我们再假设社会上的个人是变的越来越富裕,而非越来越贫穷,那么个人的需求必然也是越来越丰富。用户人群的膨胀和个人需求的丰富化最终会导致软件的第一个发展趋势:软件这一行业的规模将倾向于增大而非减少,软件自身也将倾向于复杂而非简单,软件的变化将倾向于频繁而非缓慢。
与此同时,软件的内在特征决定了:软件对人的依赖性短时间不可能大幅度降低,对软件的灵活性要求越高,对人的依赖性也就会越高。
上述两个趋势决定了软件这一行业对人员的要求将趋于增加而非减少,对技能的要求也是趋于增高而非降低。
而就人员的供给而言发达国家人员成本较高,发展中国家则具有性价比相对比较好的人力资源。
上述几方面的因素将对软件业的未来将产生深远影响,这种影响将体现于:
第一个趋势是,各个阶段倾向于融合而非分的更清楚。
我们可以明确定义开发模型,明确定义开发的各个阶段,比如需求分析,规格说明,设计,编码等等。但环节越多,速度越慢,客户满意度越差。所以理想的状况是程序员直接基于需求编码,而后发布。
第二个趋势与第一个趋势直接相关:程序员的职能会倾向于越来越丰富,而非越来越单一。
程序员要同时扮演需求分析,规格设定,设计,编码等等各种角色,而不是说编码的只做编码。最优秀的团队是团队中每个人都是多能工。需要指出的是,这一判断与软件工厂完全背道而驰。如果软件工厂是正确的,那么这个判断则是完全错误的。
第三个趋势是,在可想见的未来,外包仍然会大行其道。就现状而言,越发达的国家拥有越多的软件需求,为应对这些需求,并谋求成本收益间的平衡,发展中国家的人力资源优势就不可能会被忽视。