图形计算器诞生记

至少一度,苹果的工程师热衷于在工作之余打造自己的项目。硅谷开始正视这个传统,还要等到多年后谷歌的 20% 策略。但也有人离开了苹果仍孜孜不倦,例如,安迪·赫兹菲尔德离职后为 Mac OS 开发了任务切换软件 Switcher。 但这篇故事不一般,要知道赫兹菲尔德当时向乔布斯要价 25 万美元,而艾维泽和罗宾斯不仅分文不取,他们以积蓄度日,还煞费苦心地逃避安检,潜入大楼。 结果如何?不妨听听项目的发起人艾维泽的讲述。 Pacific Tech 出品的图形计算器由来已久。项目起于 1985 年,当时我还在念书。后来,它变成 Milo,接着又整合到 Adobe 的 FrameMaker 之中。过去的 20 年里,有许多人为它添砖加瓦,苹果在初代 PowerPC 电脑中捆绑了这款软件,不过它的起源却不一般。 我曾为苹果的一个秘密项目工作,但身份并非雇员,而是合同工。不幸是,我们设计的那台电脑过早夭折,永无见天之日。这个项目受公司政治的影响是如此之深,以至于当团队中的工程师请求技术督导的时候,我们的经理却雇来一位心理学家。1993 年 8 月,项目取消,一年的工作尽数蒸发,合同也因此告结,我失业了。 这付之一炬的辛劳让人即沮丧又不舍,于是我打算继续做下去,完成自己未尽的部分。有人雇我做事,我就想完成它。我的门卡仍能打开苹果的大门,还算好事。 许多人同情我。工程师们认为我做的东西挺酷,当众演示时,同事们总说:「要是我在读书的时候也能做出这样的东西就好了。」当时,苹果有一个项目组负责将处理器迁移至 IBM Power PC,这些家伙对我尤为支持,他们认为我的软件可以展示新机器的速度。虽然他们中无一能雇我,但并不妨碍我在这个松适的环境中继续隐匿地工作。 我对 PowerPC 全无所知,也不清楚如何移植这款软件。就这样到了 8 月。某日晚饭过后,有两个家伙跑来告诉我,除非移植完成,否则他们将在我的办公室外安营露宿,于是我们三人在接下来的 6 个小时内编辑了 5 万行代码。这就像一次精密的外科手术,需要掌握艰深晦涩的知识,包括 Mac OS、Power PC 和这款计算器。如果此事由我们三人中任何一人独立完成,则至少需要数周的时间。 凌晨 1 点,我们走了一段长路,来到一间放有 PowerPC 原型机的办公室。我们互相看了对方一眼,深吸一口气,启动了程序……但显示器却蹦出火焰。我们只好静悄悄地把主机抬出来,以避过烟雾警报器,接着将它连到另一台显示器上。燃烧不是软件造成的,只是显示器恰好在那个时候运作失常。图形计算器在新机器上比旧机器快 50 倍,我们玩了一会儿,都觉得「这东西不赖」(这句话在苹果内部已算高度赞扬了)。初次演示虽然令人印象深刻,但还需要数月努力才能将其变为现实。 我找来格雷格·罗宾斯帮忙。他为另一个部门工作,不过合约也刚刚到期,于是罗宾斯告诉他的经理,说我是他的新上司,那位经理并未多问,于是罗的办公室和门卡得以保留。于此相应的,我也告诉人们,罗宾斯是我的新上司。这个二人团队没有经理,因而无须开会,效率也就极高。我们每天工作 12 小时,一周工作 7 天。格雷格有着无尽的精力,而且对细节要求至甚,他通常关在房里整日编程,而我则花大量时间与其他工程师交谈。不过,是我叫他私下来帮忙的,因此我必须和他步调一致。我的卧室里有一扇朝东的窗户,窗帘未遮,所以常随晨曦而起,因此我总是比格雷格早到 10 分钟。也许是认为我已经工作了几个小时,为了看齐,他便工作到深夜,我见他如此,也不好意思提早下班。这种反馈式的循环使工作效率不断提升。 苹果园区的人们见我俩终日在此游荡,开始怀疑我和格雷格的身份了。一些人问:你们是谁,或你们在做什么?当被问到这类问题的时候,我从不撒谎,我相信公司里寡淡的人情不会把我捅出去。谈话通常是这样的: 问:你在这儿工作? 答:不。 问:那你是合同工咯? 答:事实上,也不是。 问:谁给你发工资? 答:没人。 问:那你靠什么生活? 答:我生活简朴呀。 问:(怀疑地)你在这里做什么?! 对话进行到此时,我会展示一下作品,然后解释道:虽然项目已经取消,但是我打算呆在这里将它完成。我既无贷款又独自一人,因此可以靠积蓄度日。苹果的许多工程师也经历过项目的半途而废,他们完全理解我的动机。 臭鼬工程在当时的苹果中颇为强势,工程师们继续完成业已取消的项目,希望管理层能够重新放行。有时,他们成功了。一个代号叫幽灵的项目,重启不下五次。臭鼬工程占用了工程师们的业余时间,他们还有自己的工作要做,而格雷格和我并非雇员,因此无须承担日常工作,我们把臭鼬工程的传统又推进了一小步。 9 月份,一些人搬到我们的办公室,他们注意到我们,不过办公室职员认为我不过是换了一个项目,还没有搬到新项目组而已,这种事情在苹果内经常发生。她问我在哪个组工作,因为职员的位置得由所在小组负责。但当我告诉她真相,她却不觉得好笑,接着,她叫来了保安,命令他们取消我们的门卡,并以毫不疑迟的语气让我们离开。 还好,这个月开始的裁员解救了我们。15000 的苹果员工中,有 20% 失了业,但是名单上没有我俩,因为我们并不「存在」。这之后,许多办公室都空了起来,我们发现了两个,开始每天潜入大楼。我俩在门外等待正式员工的到来,然后装着不经意的样子尾随而入,很多员工认识我们,而且我们用旧门卡做掩护,所以也就没人盘问我们。 工作有了极大的进展,但我们无法独自完成,一个复杂的软件需要团队的努力。一人之力可以做出眩人耳目的演示,但是面对上百万顾客的检验,软件的弱点极易暴露,到时候可就惨了。虽然是陈词滥调,但在我们的工作中,第一个 90% 总是容易的,第二个 90% 开始摧残你的意志,最后要通过那专注细节的 90%,才能打造出一款好的产品。制作一个既容易学习使用,界面又友善实用的软件需要开发者拥有难以置信的技能组合,不仅需要技术与天赋的辅佐,还要张弛有度的工作。格雷格和我能做核心工程,但是离一个成形的产品还有很长的距离。 我们需要专业的质量保证(QA),这是一项困难而且耗时的测试,但它能够暴露设计中的失误以及无法在工作中发现的臭虫。好运天赐,两个未曾谋面的质保专员联系了我们,他们从流言碎语间听说了我们的故事。(我俩成了地下事业的化身,一度轰动一时。)他们二位的日常工作是测试系统软件,麻木心智而又无聊,他们主动帮助我们,还说,「咱们不要把这件事情告诉老板,好不好?」其中一人是数学博士,另一人之前也写过数学软件。他们真是福音使者,而且立马投入了工作。 接下来,需要有人帮忙攒写三维绘图程序。一位专精于此的朋友找了一个周末,离开他的创业公司,写完了全部代码。他只花了两天,换做我,得需要一个月。 参与这项工程的不仅有这些专家,还有图形设计、文档、编程、数学和用户界面等专业人士的协助,这个项目开始初现曙光。要我说,编程的秘密不是才智,虽然它有所帮助,也不是勤奋或经验,虽然它们也有所帮助 — 编程的秘密是拥有聪明的朋友。 最后,还有一个迫切的问题:当新机器开始发售时,如何才能把软件集成到系统中去呢?这个问题给我带来的恐惧远甚于非法闯入苹果可能遭致的刑事起诉。我和格雷格倾尽的所有汗水,朋友和陌生人的秘密援助,那些耗费的时间、技艺、硬件、软饮料和垃圾食物都将废之一炬。 再一次,我残存的理智被一位陌生人的仁慈所拯救。一天凌晨两点,我的办公室来了访客,他是负责制作 PowerPC 系统盘的工程师。他这么解释:「苹果是一家硬件公司,制造工厂离这里很远。组装线的最后一步是将系统软件从母盘拷入每一台电脑的硬盘之中。我负责创建母盘并把它联邦快递到工厂。坦白说,我决定什么软件入选,什么软件废弃。」 他告诉我,如果能在生产开始前把软件给他,图形计算器就会出现在母盘里。然后,在任何人意识到它的存在之前,3 万份装有这款软件的机器已经进入货仓。(现在想起,他也许是在开玩笑。虽然我们并不知道,但这足以鼓起继续前行的勇气了。) 发行一旦有了保证,苹果便成为了一个理想的工作场所。我们认识的每一位工程师都愿意帮助我们,如果我俩是正式员工,绝对得不到如此多的资源。 例如在当时,世界上只有 200 块 PowerPC 芯片,大多数被苹果的硬件工程师拿去使用,即便操作系统项目组也只有几十台装有系统软件的 PowerPC 机,但,我们有两台。工程师们半夜来到我们办公室,从门边塞入机器,其中一位说:「据官方统计,这台机器并不存在,你没有从我这里得到它,我也不认识你。请一定不要让它离开大楼。」 10 月,软件已近完成,工程师们希望我向他们的经理展示这款软件。我的办公室挤满了十几人,我并没想有得到他们的支持,只是觉得有必要作出真诚的努力,让官方接受这件事情。做了 20 分钟的演示,赞叹频起,接着,他们问:「你向谁报告?你在什么团队?为什么我们之前没有看过这个东西?」我解释了潜入公司和项目取消的情况,他们大笑,直到意识到我是认真的。然后他们告诉我:「别再这么做了。」 PowerPC 软件部门的经理是一位正在休假的高校教师,PowerPC 市场总监是一位数学老师的儿子。他们看到了这款教学软件在校园中推广的价值,于是立即采纳了它。 然后,事情开始变得奇异。QA 经理派人测试我们的产品(我并没有告诉他,他的手下早已动手了),本地化小组派人将其翻译成 20 种语言,人机界面组进行了一项正式的可用性研究,我身在旋风的中心。不过,格雷格和我依然要潜入大楼,由于没有订单,PowerPC 的负责人无法给我们提供门卡;而没有合同,订单也无从谈起;他们无法伪造合同,而且如果法律知道真相,我们就得离开苹果了。 一日,格雷格潜伏在外,他装作放松的样子。忽然,一位工程师跑上前说,「我受够了你们整天在这里闲晃!」接着,他拨打电话,用我们的名义叫来有关人士。我在他身边听了 20 分钟的谈话:「不,没有订单,因为我们没有付钱给他们。不,没有合同,因为他们不是合同工。不,他们也不是雇员,我们没想雇佣他们。是的,他们必须进入这栋楼,因为他们为我们编写代码。不,我们没有订单号。再说一次,没有订单,我们没有付钱。」最后,他磨灭了园区管理的斗志,他们同意发给我们门卡,但仍要走标准的形式,而我们的身份从合同工变成了勤务人员。当被问到订单号的时候,我和格雷格就套一句万用回答:「签的是免费合同。」第二天,我们拿到了门卡,这是橙色的勤务门卡,和餐厅员工、花匠、复印机维修员的一样。 官方的认可令人激动。忽然间,有更多的人热烈的参与进来,但是,当针对老师和学生所做的可用性测试开始后,我们再一次发现,离大功告成还很遥远。 我一直为我们简单和优雅的设计而自豪,我希望这款程序随同每一台麦金塔发行,所以一开始便打算为所有用户设计,即便是那些对电脑知之甚少而且厌恶数学的人。我想让数学和游戏一样,轻松又有趣。在教室里,任何用来研究软件如何使用的时间,都是对教学时间的损耗。坐在单向镜的后面,看着受测用户的挣扎,这让我觉得,程序员是最没有资格为新手设计软件的。5 天之后,格雷格和我回到了苹果,我们决定为软件增加反馈功能,就好像我们站在用户身边,亲自为他们阐释。 我们不再是秘密,这也带来了其他的改变。一次对外演示后,一个人电告苹果,声称我们侵犯了他的专利,局面一度混乱,直到我找到了先于他的作品。另一家公司是 Mathematica 的开发商,他们要求苹果移除我们的软件,苹果很礼貌地拒绝了。苹果在为我们撑腰。 11 月,我们进入了紧急模式,每日工作 16 小时,一周工作 7 天,时时感到压力。最后的那段日子做了什么已经成为了模糊的回忆 — 起床、抓起一个面包圈,边吃边开车,工作到精疲力竭为止,然后睡觉,然后重复这样的过程。如果这故事是一部电影,你会见到时针不停的旋转,日历在风中飘散。 1994 年 1 月,项目完成了。图形计算器至此成为了麦金塔的一部分。世界各地的教师把它当作一块动态黑板,描绘抽象的概念。安装这款软件的电脑超过 2000 万台。虽然,它从未正式地存在。 为什么格雷格和我如此荒唐的潜入一家市值 80 亿美元的公司,为它无偿工作?当时,苹果正面临财务困境,所以我们开玩笑说,我俩可是为一家非盈利组织工作。在现实中,我们的动机是复杂的,一部分是因为 PowerPC 令人赞叹的机能,我们希望展示它的能力,就像脊髓抽液中的一句术语:「好了,吸力开到最大!」一部分是因为我们觉得这个故事值得告诉后人;还有一部分,是关乎男子汉的抱负──我们之前从未发售超过 100 万份的软件;重要的是,格雷格和我都认为,创造优质的教育软件对公众有益,我们希望帮助孩子们学好数学,公立学校太穷,买不起软件,所以最有效的办法是在出厂前预装到每一台机器中。 除了这些考虑,还有另一些关乎心理和政治方面的问题。我是为了借此走出项目取消所带来的痛苦吗?我是为了实现自己的目而占用一家跨国企业的资源吗?还是我天真,被一个体系所操纵,以至于极其努力地为了它的利益而工作?我是一个我行我素的人吗?这么做是因为傲慢和自负,还是想要推动教育事业? 我把这件事看做一项颠覆强权的试验。企业和官僚体系的结构无法避免强权,我没有操控别人的权力,没有预算,也没有下属。我不向任何人汇报,其他人也不用听我的差遣。但数十人自发地进行合作,以忠诚、友谊和对技艺的热爱为动力。我们是黑客,这么做纯粹是为了快乐。 经过 6 个月艰苦的无酬劳动,格雷格无法向他的父母解释正在做的事情。他们不用电脑,唯一阅读的期刊是纽约时报。因此,当项目结束时,我问格雷格是否原意登上纽约时报,好让父母知道他在做什么,他给了我唯一可能的回答:「是的,就这么做。」我俩打赌,输了的人要在萨拉托加的黑羊餐厅(当地一家不错的法国餐馆)请客。老实说,我希望自己输,但我还是打了那个电话...从此,格雷格再也不和我打赌了:1994 年 3 月 11 日,我俩站在我家前院的照片登上了纽约时报商务专栏的头版,同时还有一篇描写苹果、IBM 和摩托罗拉同盟的文章。我认识的一位苹果公关对此极为恼怒,我曾问她是否原意派人接受采访,但她告诉我工程师不允许和媒体接触。对于那些无法被解雇的人,很难讲的通道理,但这篇报道对苹果是正面的,而我们的父母也很高兴。 我们曾想开发 Windows 98 版本,但无奈,微软的安保措施太强了 :p

[作者:罗恩·艾维泽;原文链接]