第一个经验就是:小处着眼,要确信你真的喜欢这行当。
我赢了Mac OS创新奖后,
人们开始注意到我的软件了。我也如愿以偿的买了家庭影院显示器,每周还能吃一顿墨西哥菜。哇!真美。钱还是源源不断的来,虽然不够过日子,但也多到让我开
始担心,担心被起诉了。然后,我的下一个目标就是成立Flying
Meat公司,这样我被告了的话,他们就拿不走我的房子了。我就这么做了,最终在eSellerate上设立好我的公司账户。目标是个好东东,如果你能完成一些目标,就表明你在按计划行事。
经验二:设置目标。如果你能达成,就说明你没走偏。
2003年的OS X大会上,上次的获奖者上台回答观众提问。有人问道:“你们有多少能靠这个获奖软件养活自己的?”。Paul Kafasis, Brent
Simmons, Omni Group的一帮人, 和Oliver Breidenbach举了手,我和其他人没有。
faint.我要单干。
好吧,我有了新的目标:独立程序员。但是很明显,这个目标不是一朝一夕能完成的,我不能跳下船才想下一步能游多久。我还在还房贷。我恨背债,恨得咬牙切齿。
于 是,我得坐下来算一算我每月得有多少收入才能收支平衡。大概就在这个时候,我写了"goals"
cgi脚本。这是一段Python脚本,它能连到我每单都即时更新的销售服务器,打印出一些统计数据:比如,今天卖了多少钱,如果eSellerate不
提成的话我能得到多少,过去7,3,6,180以及365天都卖了多少,今年的收入如何,最重要的:离目标还差百分之多少。我还增加了一个“奢侈”目标。
每月要是能达到目标的话,我的柱状图就是绿的,否则就是红的。背景是黑颜色。下图是2003年3到12月的情况(每月两个柱子,矮的是实际目标,高的是奢
侈目标)。

看到没有绿色吧。不过还好,趋势还是向上的(7月份我得的那个奖)。
我虔诚的运行这段脚本,每天,每小时,有时每5分钟。有时候,白天的工作很无聊,我就瞪着眼睛看着它,祈祷着能把它看绿了。
时间一天天过去,到了2004年了:

情况不妙。八月份的销售糟透了。我看着我的梦想要一点点化为泡影,很是沮丧。到底是咋回事!?!看看,我03年12月才发布VoodoPad
1.1.1,同时也发布了VoodoPad
Lite。我有一天销售破了纪录...是因为发布了免费版,再仔细找找。拐点在1,2月份,那时发布更新比较频繁。然后我开始写2.0版,也就是“不可能
完成的任务”版。由于计划的特性太多,互相影响,早期没法发布。这可是个坏主意:不更新就等于没销量。
经验三:稳步改进你的产品。大的更新意味着很长时间以内都没有版本发布,会影响销量。
九月份我开始公开Beta测试,然后结婚了,然后又有好几个Beta版测试。VoodooPad 2.0于2004年12月发布。

哇啊!销量猛增我归结为好几个原因:人们喜欢这个新的主要版本,其他的原因我过了阵子才找到...用户就是觉着2.0用着舒服。现在,我不
认为你能这周发行1.0下周就2.0.但是如果你稍微有点名气,在Blog和新闻站上都有人八卦你的新版本的话,人们就都想:“嗨,这个我得瞧瞧”。这就
是我的理论。
终于,我达到目标了。现在是辞职的时候了!
经验四:别辞职。
这个月能达到目标,不见得下个月也行。我觉着得把钱都存起来以备不时之需。销售不好的月份这样平均下来也不太难看。这是我长期计划的一部分:我下海之前至少得有相当与6个月工资的存款。
经验五:存钱,未雨绸缪。
有时你会交狗屎运。你做了个很棒的mp3播放器,然后苹果也做了一个,还免费。这也是写FlySketch的起因:
经验六:不要把所有的鸡蛋放到一个篮子里。
我写了FlySketch,以防VoodooPad突然卖不出去时还能进帐。现在有了两个产品就可以捆绑销售,而且整天守着只为一个桌面Wiki工作对脑子也不好。
继续...
结果是05年四月以后,我的目标实现了。我成为独立开发者的信心与日俱增。我说服老婆,决定搬到西雅图,在那里开始全职工作。头六个月我要赚X刀,下六个月(从06年一月算起)我要赚得更多...
这里有张有趣的图:
我不会告诉你我的收入,我还没有富到那个份上。但是我能每个月按计划给我涨工资了。我现在能赚的钱比第一份工作多,比最后一份工作少。我没有暴富,但做得还不错。我要是能找个生活成本低的地方,我的业绩会好看一点。不过,没啥的,住在西北也不赖。
还有最后一条经验,我写的有点累了:
经验七:做出人人都想要的产品还不够,得让他们想到掏腰包。
我
见过好多很酷的想法死掉了,这些想法就是不能激起人们的购买欲。我能想见你为了这个想法挥汗如雨的工作,到头来却一无所获:要对自己的产品挑剔一点。比如
我的FlyGesture,靠它我是没法成为独立开发者的,受众太小。它有拥趸,但是和VoodooPad甚至和FlySketch都没法比。如果你看不
到销售在增长的话,你恐怕得另谋出路了。
实现方式也很重要。你当然可以用Java写,但是你要花好久才能把它打磨成一个Mac应用。
Carbon是很酷,但也很艰涩。REALbasic有时也好用,但我还没看见一个大众软件用这东东写的。就用Cocoa吧,长远来看,收益无穷。是
的,Objective-C是个撇语言,C也是,你得学。我就学了。我唯一挂科的就是cs103:C语言程序设计入门。所以么,你甚至都不需要是个好程序员。(面试官老大,你想让我写一个冒泡排序呀?废话,我当然不会 - 你找下一个人吧)
你也得让产品看起来感觉不错。让它称得上是一个真正的Mac应用。有人某天对我说Brent
Simmons和我都对做好用的用户界面很有心得。我告诉他,我们都只是在模仿Panic的做法。看看别人是怎么做的?这才是秘诀。
模仿那些你喜欢的,取其精华,去其糟粕。这就是经验七点五。
就这些了。我的一文不收零风险免费成功秘笈。
做个计划,设置靠谱的目标,达成这些目标,多样化你的产品,存点钱,准备四倍的耐心,开始快乐之旅吧。当然,最重要的是你得努力工作。这不难,也不容易。需要时间,耐心和艰苦的工作。
现在,轮到你了,去写个好点的widget吧。(别跑去又写一个做笔记的软件,这世界上已经不需要第二个了。[3])
-----
译注:
[1]Evening at Adler 是一帮有名气的Mac开发者的一次座谈。
[2]XCode是Mac上的开发环境。Mac OS X上的开发基本都是用Objective-C + Cocoa。
[3]作者的VoodooPad就是一款做笔记的软件。
[4]谢谢carrie敲打了几下。