在读《UNIX编程艺术》时有许多软件开发哲学意义上的思考给我留下了深刻的印象。有许多朋友有创业的思考,准备,或者实践,而我只有思考。在09年元旦时,大学的几个朋友一起聚餐,其中两个是毕业快十年的学长和学姐,他们经营着一个软件公司,员工可能只有5、6人吧。他们的软件应该不是具备高深技术的产品,然而卖出去一份仍有10K左右的收益。这种软件是面向小型企业的软件,和我今天的思考无关。以他们的事起笔,是为了划清一个界限,我所思考的,仅是面向一般大众的软件,而非企业级、开发者的软件。
我考虑的通用软件是如QQ(IM类软件)、youku(视频类软件)、google(搜索引擎)、wiki(百科全书)、BBS/blog类软件。严格说以上许多并不是传统意义上的软件,需要安装、运行,用户所需仅是一个浏览器,就可以享受到所有的服务。我对这些软件也并非熟悉到可以指点江山、激扬文字的水平。我仅是一个从业不到两年的普通开发者,以一个开发者的视角来思考成功的软件。我认为一个软件赖以成功的关键,在于:1、它是人们需要的。2、它具有强大的粘性。
1、它是人们需要的。
这个看似简单的命题,却是我认为最难做到的。什么是人们所需要的?人们需要什么?潜在用户是谁?什么是他们的长期需求,什么是他们的短线需求?用户的需求会有怎样的变化?是一个老少咸宜的软件还是一个针对特定人群的软件?
许多成功的软件是开发者做出来,用户用过之后,才意识到:哦,原来我需要这样的软件。不知道google之前人们是否有如此大的搜索需求,QQ之前人们是否有这样大的聊天交友需求,GUI之前人们是否有对图形界面有如此大的依赖。是的,人肯定有这样的需求。不是有了软件才产生的需求,而是某些人看到了这样的需求,并把它实现了。也许开发者最初的立项的需求并不是“真实”的需求,也许是出入很大的。但是,他们的切入点是对的。《UNIX编程艺术》中援引的一句话:用错误的方法解决正确的问题,总比用正确的方法解决错误的问题来的好。所谓正确的问题,就是找到什么是问题。这里的问题就是什么是真正的需求。有些开发者花了许多时间、经历,投入了大量的物力财力,用了正确的方法,但他们所解决的问题,是否是“正确的”。我十分怀疑。
我很羡慕一些心理学家,他们准确的知道用户的心理和需求,并能提供解决方案。据说GUI开发是离不开心理学家的。我一向是不喜欢创新,我认为只要抓准了需求,新意自然就浮出水面。例如像饭否这样的一句话博客(大约对应国外的Twitter,后者没用过);像RSS订阅,把人们从主动访问转到被动接受信息,就节省了大量的时间,避免访问未曾更新的页面。像博客,让人们有自己发言的一个平台(类似博客的平台一样,但没怎么用过)。
2、强大的粘性。
通用软件的复制成本相当的低。就算你找到了真正的需求,有了正确的方案,可能还是失败。你窥视的市场正是一些寡头和强大对手窥视的市场。除非,1、你的动静很小,或者太弱,还不足以引起对手的注意,而你发掘的需求,又不是很明朗。2、软件的粘性非常强。
所谓软件的粘性,就是一个软件能够粘住一群人。像QQ、MSN就是具有强烈粘性的软件。手机卡也是,例如以前不同手机卡发短信收费标准不同时,一种手机卡就能粘住一片人。具备强大粘性的软件,几乎就是一个平台,可以在上面做非常多的增值业务。