代码改变世界

我做共享软件这三年

2011-06-24 16:16  麦舒  阅读(5600)  评论(53编辑  收藏  举报

     ALinq 这个产品就做差不多三年了,回想起当初,就宛如一眨眼的功夫。这个软件是从 08 七月份开始做的,八月份发布,当然,那时候也不叫 ALinq ,而是 LinqToAccessDB ,后来随着对数据库的支持越来越多,才改名叫做 ALinq 的,ALinq 的是取自于 Any 的第一个字母,意为 linq to any database,事实上,ALinq 虽然没有 linq to any database,但是,能 linq to 大部份的数据库了。

      做这个软件还真是件偶然的事情,主要是因为一个项目要用 Access 数据库,本人很喜欢 Linq to SQL,在Google 了很长一段时间后,实在找不到一个好用的 Linq to Access,于是就尝试自己写一个,没想到还真写成了,于是就放出来和大家共享,没想到反映还挺不错,在大伙的要求下,一步步地把它完善起来,变成现在这个样子。

这三年,基本上是全职开发,从无到有,一步一个脚印,把 ALinq 打磨成一个精良的软件,应一些朋友的要求,谈谈 ALinq 开发的一些经验,希望我这些经验,能对你们有用。

一、模仿 + 创新 + 细分用户群

      模仿与创新,这个很容易理解,使用过 ALinq 的朋友都看得出来,ALinq 是模仿 Linq to SQL 的,但是加入了很多创新,这些创新,都不是凭空来的,而是来自客户的需求,但同时,又反过吸引更多的用户来使用。细分用户群,意思是说,你首先得发现细分领域下的一小群用户。很幸运,我做 ALinq 的时候,市面上还没有类似的,流行的商业软件。这个市场,当时还是一片空白。因此很容易积累起第一批用户,这批用户在使用的时候,不断地对我的软件进行反馈,然后,我根据这些反馈,不断地进行改良,使得 ALinq 越来越贴近客户。要是当时,我是模仿某个成熟产品的,我想一定很难成功。举个例子:现在国内,到处都是 CodeSmith 的破解版,你想通过单纯的模仿,是很难成功的。因为任何软件,刚出来的时候,都是功能简单,BUG 多多,试问,你怎么去吸入用户使用呢?就算有偶尔有用户用了,也很快会放弃 ,转而使用功能强大的破解版。

      所以,必须细分出一部份用户,并且,这部份用户得足够多,支撑得起软件发展。没有用户,一切扯淡。在你软件很弱小的时候,想抢大佬们的用户,更是天方夜潭。记住,模仿与创新,都是于基于那小群用户的。

      年轻人,都喜欢干一番事业,在园子,随处可看到这种年轻人,这是件好事。但是,做任何事情都要讲究方式、方法。方式方法不对,必然会受到市场的惩罚。在你找不到目标用户的时候,还是先静下心来,专研技术吧。年轻,虽然不畏惧失败,但是,白白地去做牺性品,是没有何意义的,还不如积累些技术,静静地等待机会。


二、聆听客户,注重他们的需求

      产品的功能,不要单凭自己的想象,去做,而是要基于客户的需求。很多年轻的程序员,都是凭自己的想象,给自己的软件提出需求,并且在做之前,从来就没有和自己的用户做过沟通。当然,这个错误,我年轻的时候也一样犯过。经常在园子里看到一些年少轻狂的程序员,目空一切,总自以为那些老程序员,知识技能过时。(哥看到这些话,通常是一笑而过)在这里提醒一下,姜还是老的辣,这句话能流传到现在,说明它还是有点道理的。

     很多做 ORM 的朋友,在拿他们产品和别人产品作比较的时候,很爱吹嘘自己的软件性能是如何如何地好。我从没听过哪个朋友说,“我的产品,是根据 XXX 个用户的反馈,不断地完善而来的。”试问,你的用户,真是需要一个性能强大的 ORM 吗?也许有,但是,肯定不多,最起码没有多得支撑得起你软件的发展。我想,绝大部份选择 ORM 的客户,都是希望能够快点把工作完成,可以按时下班,好好休息。一个产品,它的功能,如果不是客户想要,想要客户接受,难上加难。相反,如果一个软件,是客户想要的,他会主动跑过来找你。

ALinq 的很多功能,可以说,都是来源于用户的需求,比如说,批量更新,删除。还有设计器的 Attirbute 功能等等。做产品,不要单凭自己的想象,而是要基于客户的需求。

三、注重细节


      一个软件成熟与否,很大程度上看细仔,一个成熟稳定的软件,应该在仔细上做得很好。当然,我们的产品在这方面,还多需要改进的地方,在这里说出来,也希望其它做软件的朋友注意一下。

产品的细节主要包括:

1、软件打开后界面,一眼看上去,要给人一种安全可靠,用着放心的感觉(就象女人看男人一样)。如果你不知道怎么做,看看 Visutal Studio 吧,它本身就是一个很好的范利。

2、产品的设置,菜单,选项这些,应该是简约而不简单,应该能让新手很快上手,但是上手后,想要的功能,都能很方便找得到。看过很多国内的小软件,很多功能选项都堆在一块,看上去的第一感觉,就是很复杂,不和如何上手。

3、要有完善文档,手册,还有范例。

4、要有一个好的官方网站,应该能够让客户快速地了解你的产品,下载到你们的产品。还要起到客户和官方沟通的渠道作用。

四、用心服务客户,得到客户认同


     我对待每一个客户,都是很用心的。由于有不少客户都是国外的,所以往往半夜三更爬起来回复客户的邮件,因为我知道,客户碰到问题,得不到解决,心里是很焦急的。而且要尽可能地快,让客户感觉到你的诚意,感觉到你对他的重视。

     在国内的,有很多商家,都是靠忽悠,然后收了钱,就不管的了,出了问题就推来推去。其实这种做法,是很短视。当你的软件、服务得客户的认同,客户就会替你免费宣传。产品的口碑,就是靠用户宣传开来的。我有一位美国用户,就给我介绍了好几个美国的客户,还有一位法国的客户也是。当然,国内也不错的客户,国内有位老客户,外包公司的,他们公司从我的产品刚出来的时候,一直用到现在。同样也给我介绍了不少客户。


五、注意和客户的沟通交流

      要善于和客户沟通,当然,沟通的手段可以是多种多样的,博客,QQ、邮件这些都可以,及时收集他们对反馈回来的信息。看看他们有没有些什么新的需求。每逢过节,发封电子邮件,或者电子贺卡,让客户知道,你还记得有他这么一个人,同时,你的公司仍然活着。

六、国际化

      很多朋友可能觉得把软件卖到国外去,很难,其实,并没有想象中的难。最起码,对于我来说,大部份的收入,都是来自国外的。做国外市,最痛苦的就是时差问题,尤其是美国用户,他们通常是 12 点上班,然后早上 7 就下班的了。记得有一次,为美国的一位用户提供在线服务,一直在电脑旁边待到凌晨三点多。法国、德国的用户就好很多,大慨是晚上六、七点钟的时候。除了时间,可能还有一部份用户担心语言。但是根据我这经验,这个倒不是什么大问题,因为你可以截图,还可以给代码范例。最大的问题反而是推广、宣传。

下面我给大家简单说一下步骤:

1、当然,你的软件,还有网站,文档这些肯定得是英文的。

2、要有一个帐号,用来收款的,我用的是 Paypal,官网:http://www.paypal.com 。

注意:不能注册贝宝,那个是专门做国内的,只能收人民币,不过好处是不用收续费。

除了Payal,还有很多选择。选择它,主要是因为它简单,其它的太复杂了,看着头都大了。另外,你可以到 htt://www.cnsw.org 这个网站上看看,那里有很多做海外共享的朋友,可以和他们交流。

3、做完这些,接着就是推广了。同样,推广的方式、方法也有很多。包括常见的论坛推广,博客推广,还有在 Google 上做关键字的推广。


OK,我的一些开发经验就先介绍到这里,希望我的这些经验对大家有用。