“P1”与“P2”之争落定
2005年9月,苹果秋季新品发布会发布了 iTunes Phone(ROKR E1)和 iPod nano 两款主要产品。
这两款产品的同时亮相,最大的意义在于验证消费者对两种产品的接受度:究竟是纯粹的 iPod 更受欢迎?还是愿意尝试结合了 iPod 的 iTunes Phone?

ROKR E1 在产品生命周期内的总销量约7000台,即便后期降价一半,也挡不住退货潮。
反观 iPod nano,发布仅17天即卖出100万台,成了“爆款”。
答案显而易见,无需再争。
大多数员工都醒悟,不管是把 iPod 加个电话功能,还是把 iPod 放进传统手机,这两种模式本质上是同一种思路。iTunes Phone 的反响也证明了“P1”路线催生的 iPod Phone 即便上市,结局也会大相径庭:
人们会选择购买更加便宜的 iPod 标准版,而不会选择更贵的 iPod GSM 通话版,这个配置的命运不难猜:卖不了多久就下架。
“P1”路线,此时也到了正式结束的时刻,“P2”路线的领导结构也发生了微妙的变化。

“P2”胜出
拿到发布会反响后,乔布斯明确表示,未来公司只做“P2”。“P1”停止一切维护工作,研发成果封存档案,原计划中的“iTunes Phone 2.0”也取消,与摩托罗拉的合作到这里在事实上已经名存实亡。
原“P1”路线、“iTunes Phone”产品线的所有人员和资源,全部转为“P2”的资产,法德尔本人也转为直接支撑“P2”的相关工作。
9月,在「中篇」中已经提到,“P2”当前已经取得了一些成绩,比如待机时间基本达标、“OS X mini”内核基本裁剪到了手机级别、构建了一致的动画系统来缓解设备响应慢的问题、创建了新的桌面启动器 SpringBoard 来接管入口、为交互流程完善了异常处理逻辑、增设了光线传感器和距离传感器、对齐了UX/UI框架、统一了触控指令底层…等等。
用一句话来概括就是:各类能力有了,能力系统化了,系统规范化了。
此刻的“P2”就像一个“什么都没有”的“空瓶子”基础平台。
比如:无法安装第三方应用(根本没有)、没有后台多任务、没有MMS彩信、没有剪贴板功能、没有录像、没有实体键盘…
工程师们小声BB:
这是一台「残废」手机,但算得上是个漂亮的 iPod…
产品经理和一部分高管都虚得不行:
We’re going to ship a toy.
(我们要发个玩具)
的确,“P2”当前只能算作一个技术平台,但称不上产品。上半年的强行军,只有解决了“P2”作为平台的基础能力构建。
下半场的游戏,才刚刚开始。
乔布斯与 Cingular 在2月达成的秘密合作协定中,新产品的研发周期为30个月。
市场预热和宣传工作需要提前开始筹备,对于这种从0-1的全新产品,发布和开售之间必须留4-6个月,供生产相关部门通过消费者期待值和预订数量研判生产规模,以锁定供应链产能和备货量。
与 Cingular 协定中的周期30个月,其实已经包含了这个时间段,并非30个月达成后才发布、预热、开售,双方都等不起。
2007年上半年,必须见客!
由此,这个时间截被乔布斯锁定,并通知了“P2”团队所有人。
乔布斯要求2007年上半年就见客,那么团队就必须在2006年下半年完成产品的整体技术定型,4季度就得布局供应链生产体系。
所以2006年6-8月,“P2”原型的产品形态就得基本开发完成,留给研发团队的时间不到一整年。
工程师们听后人都麻了:
这太疯狂了,这简直就是要我们的命!
显然,仅依靠当前“P2”团队这么些个人,根本不可能完成,得加人。
队伍扩张
9月下旬,乔布斯对福斯托尔表示:
你可以从 OS X 体系中挑选任何一个你想要的人,不限名额,不用借调
从现在开始,“P2”最高优先级
乔布斯也对 HR 部门表示,“P2”项目组不受名额约束,内部转岗可放宽,特殊顶尖人才可直接放行。
当然,乔布斯也约法三章,对福斯托尔提出了明确的限制:
1.人可以加,不可无脑加
Small teams can do big things.
(小团队也能办事大)
确保每个人都是至关重要的存在,整体建制依然要维持“小而精”。绝不能臃肿,每个人都能切实地提升产品完成度。
2.只在内部招聘
I want only people we already trust.
(只要能信任的人)
Go find the best people inside Apple.
(去公司内部找最好的吧)
保密是第一原因,其次是乔布斯不希望外来人员在文化、研发方式、沟通风格方面和内部的人不统一,进而产生矛盾内耗,最终影响产品的质量和进度。自家人都熟,容易配合。
3.招慢点不怕,别放平庸的进来
A players want to work with A players,B players want to work with C players.
(强的都想和强的配合,中不溜的总希望找不如他们的配合)
如果找不到强的就空着,绝不为了填满而填满。
对于那些招进来的人,乔布斯也有明确的要求:
1.能力可立现
Show me.
(展示给我看)
Real artists ship.
(真正的天才会付诸实践)
把你的才能变成可演示的成果,在我面前亲自演示。我不需要你画饼给我听,我要马上的结果。
除非能演示,否则不加人,No demo No people!
2.责任分配明确
Who’s responsible for this?
(这是谁干的?)
每个工程师,向上必须有一个明确汇报对象,向下必须有清晰责任划分。没有中间地带,没有冗余,没有“支撑”一说,每个人都必须对自己的项目全流程负责。
“管好过程,管到结果”
出现任何问题,必须能快速追溯到责任人。
3.信息隔离
You can’t tell anyone what you’re working on.
(你不能告诉任何人你在干啥)
必须全职进组,不允许跨部门、跨项目来回穿插。进组后,必须与原团队切断一切日常联系。除在研发场地外,禁止任何地方、任何形式的提及、讨论有关“P2”的直接或间接信息。
最后,最关键的核心岗位人员进出,由乔布斯亲自把控。任何扩编人员的去留,乔布斯可随时“刹车”。
物理隔绝
9月一系列动作,代表“P2”项目已从试验品正式转为主战场。乔布斯在人员扩编方面“约法三章”的同时,还提出了更加严苛的管理方式:物理隔绝。

10月初,苹果总部“1 Infinite Loop”大楼的1-2层启动装修工作,对于场地的改进,乔布斯也“微操”了一遍:
1.门禁“森严”
所有内场、外场出入口一律安装门禁系统,严格限制人员的活动范围,每个员工的工卡都根据职能,划定了许可活动范围。
即便是“P2”核心成员,也不容许在办公区自由活动、谈论项目任何细节,乔布斯自己也不行。
2.墙里再“墙”
加筑外墙,将整个办公区围起来,与外界直接“隔断”。大楼外墙的玻璃全部更换为防窥探玻璃。
If it leaks, it dies.
(一旦泄露,它就完蛋)
乔布斯明白,竞争对手的复制能力非常强悍,最好的保护就是让他们不知道我们在做什么。“P2”能否“隐蔽行军,先于敌抢占高地”就看我们的保密工作能否滴水不漏。
显然,这是为战时状态准备的。
3.“Demo Room”房间
乔布斯对演示的要求极高,只要项目取得任何进展,都必须能够快速部署、快速演示、快速上手。
Show me!
(给我看!)
所以,在内场的中央,还专门设计了一个“Demo Room(演示空间)”。里面配备固定的演示大屏,并定制了一系列专用的接口,能让“P2”原形机即插即演示。只要是对演示有帮助的工具、电路板、传感器模组等,在这个房间均配齐。
同时,本空间的墙壁和大门采用了隔音板。乔布斯容许大家在这个房间激烈讨论,同时不会泄露任何声音信息到外面,也不会打扰外面的工程师工作。
4.原形机专用工作区
在场地中,专门为硬件工程师配备了一个区域,具备快速拆装工位、零件储备区、零件加工台、小型机床等一系列生产设备。工程师们可以快速设计,快速打样,快速加工成型。
This has to be a real product.
(它必须真实)
乔布斯对样机有“所见即所得”的高要求,所有工程师所需的工具,乔布斯都在这个区域配齐。
5.“网吧座”
Fast decisions, fast arguments, fast fixes.
(迅速决策,迅速辩论,迅速行动)
带隔板的“卡座”被取消,所有工程师在一条长长的、没有遮挡的大桌子并排落座,软件和硬件工程师混坐。取消多余的独立办公室,各组负责人要与工程师混坐,时刻关注进度。
Innovation comes from people bumping into each other.
(创造源于人与人的碰撞)
这种类似“网吧座”的座位编排方式极大地消除了人与人之间的沟通障碍,遇到问题可以马上面对面讨论。
这种场地理念颠覆了传统 Mac 产品的研发模式,乔布斯试图将沟通产生的成本和时间挤压至最低。事实证明相当有效,但对人反应敏捷度要求很高,产生的心理压力也相当大。在工位上,工程师们几乎处于“没法喘气”的狂奔状态。
6.保险库与记录存档
在办公区,所有“P2”样机,不使用的状态下,一律要存放至机要室的保险柜中上锁。每个员工的样机使用(在哪里用,用多久,用来干什么,何时归还,归还时样机状态)均会形成记录统一上载数据库。
You couldn’t talk about it, even at home.
(家里都不能讲)
任何异常行为都会被“P2”的行政管理第一时间注意到,并启动相应的问责。
Once Jobs decided Project Purple mattered,he reshaped not just the team — but the space they worked in.
(一旦乔布斯认定项目重要性,他不仅会改变团队,还会改变团队的环境)
室内设计方面讲,这种结构一开始就将“信息壁垒”扼杀在摇篮中,让该马上流通的信息马上流通,该隔绝的信息则被围得水泄不通。
这种保密级别堪称乔布斯的“曼哈顿计划”,严密度堪比CIA,他为“P2”营造了一个极端安全的“孕育”环境。
应用生态问题
说回问题:“P2”没有应用程序怎么办?
大家的第一反应是加功能/加应用,但这么搞好不容易压下来的功耗和待机时间又爆炸了,加也不是,不加也不是。
手机不是电脑,能用的资源相当有限
尤其是乔布斯在9月发布会后提出要在2006年中定型,年底供应链搭建要基本完成,次年择机发布的要求之后,大家一时之间束手无策。
对此,在团队内部,形成了三种阵营:
以业务为主导的产品经理们认为功能必须完整,第三方应用程序一定要有:
没有应用,我们怎么和 Cingular 和消费者交代?
以技术为主导的工程师们认为,当前“P2”才刚刚成形,还有很多问题没有解决,现在就开始考虑应用程序和更多功能太早了:
加什么加!再加咱们就全部完蛋了!!
而首席设计师艾维的团队和福斯托尔这边,他两对乔布斯比较了解,达成了比较默契的一致:
产品设计要保持极简,系统一致性要优先。增加功能,不能破坏系统本身的秩序
这一阵营较为中立,加功能可以,但要严格按照系统设定的边界和约束来运行。
9月下旬,这个问题上升到了“P2”高层会议中,三个阵营吵得不可开交,总结就是三个问题:
- 第三方App做还是不做?
- 要不要开放后台多任务能力?
- 要不要再加几个实体按键做功能快捷键?
对此,乔布斯给出了一个优先级顺序:
Phone、iPod、Internet、everything else later.
(电话、播放器、网络优先,其余靠边站)
Better to be great at a few things,than mediocre at many.
(干好一件事,好过干一堆平庸事)
对于第三方App,乔布斯也有明确的态度:
We are not ready to let other people break it.
(我们还没准备好让别人去破坏它)
目前“P2”系统不成熟,安全防护也没构建完整,功耗也不可控,搞第三方应用还为时尚早。
We ship confidence, not features.
(我们要先构建信任,而不是具体功能)
这场会议,奠定了“P2”未来一段时间的工作方针,其中几条核心的纪要就是:
- 优先打磨电话、信息、邮件、iPod App 等一系列自家应用程序。
- 持续优化、统一 OS 本身的体验和功耗。
- 第三方应用程序暂不开放,但方向正确。先构建约束开发者的环境,比如指定的开发工具、Kit、上架渠道等,等成熟之后,再统一择机开放给第三方。
- 一切让产品变得复杂的问题,延期再议。
其中第3点存在问题,既然当下不打算开放能力给第三方开发者,那眼下总不能空着吧?没有生态,等产品发布了,如何向消费者和运营商交代?
对此,工程师们也进行了讨论,提出了三种思路:
- 开放精简版的 SDK 给开发者
Once it’s out, it’s forever.
(一旦公布,就改不了了)
显然这个点子不行,乔布斯直接否决。
- 只给一部分合作伙伴开放 SDK
给谁?又不给谁?
这是市场公平问题,会出现客诉,乔布斯也直接否决。
- 就当没这回事,不讲
咱们不讲用户就不会问吗?
掩耳盗铃,这招更行不通,否决。
正在为此陷入苦恼的乔布斯,突然注意到一个东西:Safari App。
Safari 扛大旗
“P2”的操作系统源自 OS X,Safari 浏览器也是从 OS X 上搬过来的。能兼容完整 HTML 框架,比如各类 CSS 样式、JavaScript、DOM、Ajax 等,能力非常全面。

所以,Safari App 实际已成为当下手机界中最强大的浏览器,超过市面上任何手机厂商的浏览器。
乔布斯动了动脑瓜子,想出个鬼点子:Web App

They are apps,They just happen to be written in web technologies.
(它们是App,只不过是用网页的技术写的)
Web App,字面意思就是网页应用,基于 HTML 浏览器的代码和组件,将网页开发成能够承载服务的载体,进而包装成一款应用,那不就是个应用程序吗?
Web App 直接在浏览器运行,无需开发者独立开发一款 App,开发范式全球通用,不存在任何的兼容问题,也不会产生后台进程和额外耗电。
如果 Safari 已经是桌面级,那 Web 本身就是一个平台。
安全方面,Safari 所有的开发工具和 SDK 都是现成的,Web App 完全受控于 Safari 的规则,平台的开放和安全性也有保障。
Developers can build amazing apps today.
(今天,开发者能开发出令人惊叹的应用)
乔布斯都已经想好了未来发布会上的台词,妙啊,妙不可言!
当然,这个想法也遭到了工程师的质疑,Web App 存在诸多限制,不能像原生应用一样强大,这么做会不会影响产品本身的竞争力?
It’s good enough for now.
(目前够用了)
这次乔布斯非常坦率,承认 Web App 的不足,毕竟这本就是权宜之计,等第三方开发能力构建完善,Web App 也就结束使命了。Web App 能力是否完善、功能是否强大自始至终都不重要,其存在的意义非常鲜明:填补空白,嫁接过渡。
到这里,“P2”的下一阶段工作重心算是有了基本的框架,所有人都行动了起来。
收敛
10月,由于定型节点乔布斯卡2006年中左右,“P2”操作系统已经没有更多的时间来大规模改造,福斯托尔需要赶紧开始“善后”工作。
内核、框架不再讨论改进与否,硬件传感器也要冻结成为系统的一部分,不再讨论去留。UI/UX/触控指令等人机交互逻辑与框架,也不再大改,只做修正迭代。
乔布斯示意当下的工作主题:“收敛”
We are not done building the future,We are done changing the foundation.
(未来我们没搞好,但当下的基础我们搞好了)
新能力不用考虑加了,第三方 Kit 也暂时放一放,“OS X mini”的基本形态固定后,把所有的能力、API、范式、控制方式等内容都要做成统一的 SDK 进行管理。
软件固定之后,硬件也要连同一起固定,不再做大变动,硬件开发必须围绕软件的需求来定义。
与上述工作同步进行的,就是关于 Web App 的完善事宜,Safari 被定义为当前阶段第三方应用的入口,与此配套的 Web kit、JavaScript 引擎等内容的优化和增补工作也开始推进。
虽然大家都在按部就班地干活,但一部分工程师仍然存在担忧,颇有微词:
We’re shipping something that looks unfinished.
(我们在搬运“半成品”)
11月,“P2”的硬件定型工作进入了关键时刻,其中主要内容包含:
·机身形态固定
·屏幕尺寸固定
·正面和机身侧面物理按键固定
·听筒、光线感应器、距离感应器等传感器固定
·网络制式选择 EDGE 并固定,Wi-Fi、蓝牙模块固定
·三星 ARM CPU 固定,内存选择 NAND Flash 方案并固定,RAM 内存固定为 128MB
然而,一个最最最关键的零件,艾维设计团队和硬件工程团队发生了剧烈的矛盾。
电池问题
艾维的设计团队明确主张“P2”的机身要轻薄、优雅、精致,这是苹果产品的 DNA ,是品牌的核心。
你们怎么不上天呢!
硬件工程团队认为,“P2”要运行高计算力的 CPU,驱动众多元器件,还要带一个“电老虎” 多点触控屏,以及 EDGE 通信模块连续不断的在网待机。不仅电池需要大容量,内部空间也需要设计成利于硬件散热的结构,这些都需要设备有足够的厚度,无论如何都做不到“纤薄”。
两个团队之间激烈的讨论,还扯出了一个著名问题:
电池该不该可拆卸?
乔布斯又该出场了,先回答第一个容量的问题,对于硬件工程团队表示:
功能适当靠边,外形优先,定制电池的形状
而对于设计团队则表示:
做不到纤薄,那就先让机身摸起来纤薄

关于电池容量的固定,乔布斯与团队针对传统手机进行了详细的调研。
传统手机持续通话时间3-6小时,纯待机则能达到10-15天。待机时长和持续通话时间是两个重要的衡量指标。
但乔布斯认为,仅用这两个指标来衡量“P2”不够,因为“P2”本质上是一台微型 PC,其运行方式和任务模型与传统手机完全不同,“P2”相比传统手机有着更高的功耗。
最关键的,乔布斯还要将 iPod App 放进“P2”,那么持续的音乐播放和视频播放时间也需要纳入考虑。

这里老猫做个展开,对于电池容量的固定,并不是多个指标联合考虑折中,而是“核心任务保底”策略。
“P2”核心功能是通话,那么最先确保的就是通话时长。乔布斯认为“P2”应该达到业内平均水平的第一梯队,也就是6小时,那么电池容量最少要确保“P2”能在通话状态撑够6小时。
这是最关键的一个指标,测试的是电池的下限,然后用这个“基线”来推导机身内部结构的设计。在容纳所有必要的元器件后,确保安全的情况下,还能够安装可支撑6小时通话的电池。
为了防止电池的体积对部分元器件的空间造成挤兑,一些元件需要转移或叠放(产生积热),甚至会被砍掉。
完整的功能=更多元器件=更多的功耗,更少的元器件=功能不完整,这是一组工程矛盾。按照当时的技术条件,这种空间平衡极难控制。
理论上,电池容量满足最低通话时间的指标后,经过定制手段,将电池的厚度尽可能做薄,再加上其他所有元器件的最小必要结构体积,就等于艾维他们工业设计团队能做的机身大小。
没完,当艾维他们将机身设计固定后,工程团队再重新评估机身内部的具体空间情况,反向再为电池抠出一些空间,以增大电池的容量,“抠一点是一点”。
所以,电池容量的固定是一个牵一发动全身,且需反复横跳的系统性问题。

早期的“P2”在电池、元器件、外形三者之间,基本上只能算解决了“凑一起”的问题,真正开始系统化解决,是从 iPhone 4 开始。
说回“P2”
第二个问题,电池该不该支持拆卸?
这个问题同样吵得不可开交,工程团队起初支持可拆卸,理由很简单,目前市面上的手机都能拆卸电池,那“P2”也应该支持电池拆卸,这是行业共识。
运营商 Cingular 也明确询问过这个问题,硬件部门更是在意电池的售后维修和老化问题的处理成本。
但艾维设计团队,几乎是不带任何犹豫地直接否决了这个提议:
如果电池可拆卸,那“P2”不可能做成这个形态

设计团队认为,如果电池可拆卸,那么电池本身和机身的结合部位将会徒增大量不必要的结构占用,比如:
·必须设计卡扣、结合部,标准化金属触点
·必须为电池拆卸的结合部位预留支持拆卸动作的冗余空间
·必须将电池设计成方方正正,便于拆卸的形态
·必须给电池本体设计外壳

后果也很明显,“P2”一定会变厚,且电池容量会比现在少20%-30%,根本达不到6小时通话时间的要求。
对于这个问题,乔布斯的态度非常明确:
为了换一次电池,牺牲每天的续航,不值得
他之所以这么理解,是因为他对此有超前行业至少10年的逆天理解:
电池,不应该只是个零件/耗材。
电池应该是“会思考的”,电池是“P2”硬件系统的一部分。
电池本身的电量、内阻、锂离子活性、温度,都是可以被监控的。“P2”的系统,能够实时监控电池本身的具体状态,进行更加科学、精确地分配/调度。
系统能根据电池的状态,动态调整自身的性能峰值、充电电流节奏、放电节奏等。
电池自己“会说话”,让系统“听到”,系统也能主动“询问”电池的状态,从而让耗电元件与供电元件之间形成默契的配合
其中,电池内阻对元器件瞬时爆发性工作产生的影响十分明显,比如 CPU 最高速度时,通讯模块建立网络连接时,拍照/拍视频时。
内阻高的电池在这一瞬间给不到足够高的电压,就会导致元器件工作不正常,甚至直接关机。
系统具备直接监控电池状态的能力,就能够实时调整硬件的能耗,确保设备整体工作正常,元器件的工况一定是基于电池的状态动态变化的。
“P2”是精密的掌上 PC ,是个“活物”,不应该用传统设备的“拼凑”思维来决定它的形态,各大厂商都在做的就是对的吗?并不。

这就是 iOS 的“性能管理机制”的起点。(当然,多年后出现“降频门”也是因其保守的调度策略)
同时,乔布斯也反对盲目跟随行业主流:
People don’t know what they want until you show it to them.
(在看到东西前,人们根本不知道自己想要什么)
不是人家怎么做,我们就该怎么做。不是人家都这么做,我们也要这么做,这不是惯不惯例的问题,而是取决于:
我们自己该怎么定义它的命运?
人们真的需要可拆卸的电池吗?并不,人们想要的是更持久、更稳定、更安全、更优雅的系统化产品,而不是为了拆卸电池而使用产品。
If you want a great product, you can’t let users take it apart.
(一款出色的产品,就不该让使用者拆开它)
乔布斯认为,“P2”的核心价值,不由电池可不可拆卸去体现。相反,可拆卸电池,是一种妥协,是产品的失控,是“不灵活”的。
在2010年的采访中,乔布斯同样表达了相同的观点
We think the right way to do it is to have an integrated product.
(我们认为,正确的做法就是推出一款整合型产品)
可以看到,电池的容量和电池是否拆卸两个问题,对于“P2”的内部结构和外形设计都起着近乎决定性的作用。如果各个团队之间对这两个问题无法达成高度一致,那么“P2”将卡在这里,永远无法完成它最后一公里的形态定义。
好在乔布斯有明确的立场和认识,“P2”总算是可以从“一堆零件”的状态变成一个整体,成为产品“该有的样子”。
面板规格固定
12月,电池的容量和安装模式确定后,硬件工程团队完成了“P2”融合第一阶段的主板设计。

电池和主板采用上下“拼接”结构,主板本身采用方形集中式主板。SoC、基带、内存集中布局,周边围绕各类射频信号模组。
后来证明方形主板存在严重的干扰问题,老猫将在后续做专题分析。
外形设计方面,确定为直板全触控,屏幕尺寸定义为3.5英寸320*480分辨率。
3.5英寸比较容易理解,乔布斯有明确的要求:
You can use it with one hand.
(你能用一只手使用它)
它是随时随地、站着、走着、拿咖啡的时候使用
这方面,艾维设计团队做了很多的人因实验,充分迁移了隔壁第五代 iPod 的外形经验,最终确定了这个范围的尺寸。
至于屏幕分辨率,第五代 iPod 采用2.5英寸320*240屏,带来了非常绚丽的照片、视频播放能力。

而“P2”采用 iPod 5 的面板2纵向拼接,正好就是 320480 的3.5英寸,这个尺寸刚好卡在设计团队人因实验的最佳单手控制区间内,且符合4:3这个业内高度通用的比例。
iPod 5 上使用的 UI 框架信息流范式小改就能直接平移到“P2”上(GUI框架定义难点不在高度,而是在宽度,宽度会导致大量没有自适应宽度的 kit 失效、重叠、变形,从而影响体验),无需单独从0-1开发。
在这个环节“P2”和 iPod 工程产生核心交集,“P2”能借助 iPod 的成果赋能,大幅度提高后期系统和应用程序的开发速度。
计算方面,320*480也刚好能让芯片的图形渲染性能实现 60FPS 的流畅度,恰好这个分辨率和尺寸,供应链又有刚好成熟的面板方案。
好像屏幕尺寸和分辨率的定义工作十分轻松?
这其实是一种很巧妙的方法,在核心指标上留有相对的变动空间,再在供应链体系中寻找现成的解决方案,两者一匹配,只要误差足够小,就能得到一个可用的解决方案,无需重新开模定制零件。
到这一步,“P2”的硬件和软件总算有了一个较为固定的形态,乔布斯示意:
We know what it is now.Just make it good.
(现在知道它是啥了,只管做好它)
“P2”进入了24小时全天使用测试,工程师们需要携带它模拟各种各样的场景。各项参数和性能表现在不断的打磨中,逐步趋向于稳定。
大家都满怀期待,“P2”真的要成了,于是下一个问题产生了:
如果我们现在就公布它,外界会怎么看待它?
“排练一整年”
2006,新年伊始,苹果高层战略规划会议,乔布斯将“P2”定义为苹果公司未来10年的平台核心(至少10年)。
他的眼光很长远,如果要发展一个新的品类,那就不能只把“P2”当成一个眼下的产品去打造,而是要把它发展成一条能长期“生长”下去的产品线。
“P2”将成为这条路线的开端,它将决定后续所有的发展方向。所以“P2”只能成功,不能失败,它不再是试验品,不再是一个单纯的技术路径,不再是“iPod Phone”那样的分支产品线。
“P2”将承载公司的命运,成为苹果未来相当长一段时间中,赖以生存的核心产品线。
乔布斯在新年的开始,将“P2”抬升到了史无前例的高度,比肩核心业务 Mac PC 的地位。开创一条全新的产品线,明确告诉所有人:
This ships next year.
(明年就得发货)
他已经在策划,拿着“P2”赶 MacWorld 2007 发布会的场子。
MacWorld 简介
在这里,老猫大致展开一下 MacWorld。

MacWorld 又称 iWorld,是苹果公司的专属产品博览会,由国际数据集团(IDG)承办。始于1985年,每年1月举行,是苹果定期向外界公布新品/新技术的对外专场展会。

名义上由第三方承办,实际上苹果可以主导全局,事实上成为了苹果专属的发布会,乔布斯演讲的主场,又被俗称为“乔布斯时间”。很多观众买票参会,就是奔着听乔布斯讲故事来的(雷军年度演讲就很像这...)。
来参会的产品供应商,也基本都是 Mac 生态内的第三方供应商,他们也希望借苹果的流量,来曝光自己的服务和产品。

MacWorld 有专属的杂志和编辑,定期刊登苹果产品的最新信息,在科技圈中广为传播。多年来,为苹果积累了一批基数庞大的关注者,孵化了大量的消费者和开发者、加盟商等。

MacWorld 在科技界有十分深远的影响力,每次苹果都会借此发布一些此前从未谋面的新品。
整个发布会,演讲节奏可以被乔布斯完全掌控,不限时长,演示可以反复中断/重来。多年来,媒体也习惯了这种安排,所以会给予默契的尊重,不“拆台”、不打断、不刁难。
即便发布了一些不够成熟的概念型新产品,观众也会给予较高的包容度。毕竟来到 MacWorld 现场的观众和媒体,大多都是抱着:
苹果今年会有什么新花样?
的心态来参会,乔布斯很容易就能把嘉宾的节奏带动起来,按照他的顺序去聚焦注意力,听故事。
2008年,乔布斯不再亲自参加。2009年后,苹果其他人也不再参加 MacWorld,2014年彻底停办。
停办原因也很简单:iPhone 成功后,苹果已经获得了足够高的关注度,已经有足够的影响力和产品线规模独立承办大型发布会,不再需要第三方组织帮忙造势。

MacWorld 也就此完成了历史使命,未来所有的发布会都是苹果自己主办。比如春季新品发布会、WWDC开发者大会、秋季新品发布会等,这些发布会的影响力实际上已经完全超越了 MacWorld。
“P2”亮相策略
说回“P2”,对于乔布斯来说,MacWorld 这种高聚焦、高容忍、主旋律已经形成历史惯例的发布会,是让“P2”安全亮相的不二之选。
他已经在心里默认,“P2”就应该在2007年的 MacWorld 亮相,这对整个大产品线能否成功进入市场至关重要。
按照他的规划,“P2”在2006年这一年中,需要解决几个关键的问题:
- 将系统优化到极致流畅,但不再加功能
I don’t want features.I want coherence.
(别整些花样,我要连贯)
- 所有内置应用程序,必须优化到“发布会1.0级别质量”。
Every built-in app ships at 1.0 quality.
(每个应用必须达到出厂级1.0质量标准)
- 外观、材质、用料、结构等必须完成定型,不再考虑任何牵动硬件的大改,软件要反过来全面适配硬件固定后的形态,两者必须完成最终的“契合”。
工程上我们已经赢了,但产品上我们还没开始。
- 对外,产品营销方案要完成叙事设计。在营销方案中,不允许出现任何“平台”、“第三方应用程序”、“开发者 SDK”、“生态”等字眼。
If we say platform,people will judge it like a PC.
(如果我们说它是平台,人们就把它当电脑来评价了)
- 对内,平台的生态建设工作要完成前期的主体部分,比如 OTA 机制、API 统一规范化管理与调用机制、第三方 App 沙盒体系、应用程序的权限管理体系等,做好“由内部使用到开放第三方”的准备。
但是,要统一口径,任何人不能透露任何信息,外面有人问,就说:
We’re shipping a phone.
(我们要发个手机)
除了上述指示,乔布斯还给出了一个大致的时间表:
1月-4月,系统、硬件、结构完成定型
4月-8月,人机交互的流畅度、动画、模拟物理反馈优化到极致
9月-12月,模拟演练,确保所有核心应用场景都能在发布会演示中顺利跑完全程,确保演示完美。还没解决的 BUG 要绕开,必经之路上的卡点要攻克
这一整年,全公司所有的工程师资源、技术资源,都会向“P2”倾斜,其他产品线的研发进展可以根据情况适当放缓。
此时此刻的乔布斯,已经把“P2”当成了他人生中的又一次“Macintosh 时刻”,上一次,还是在1984年。

Safari “爆炸”
看完乔布斯的安排,再回到“P2”本身。
1月,“P2”新的“身体”已经合并完成,它有了全新设计的机身、新的主板、整合之后的触控屏、定制的显示面板,第一眼看起来很像个产品该有的样子。
然而,只要一开始使用它,又出新问题了。
“P2”貌似还没适应新的“身体”,只要稍微操作快速一点,或是应用切换频繁一点,亦或者不按照预设的用户路径去点击,它都有极高的概率崩溃,或变得十分卡顿。
It would crash if you looked at it the wrong way.
(只要你用非同寻常的方式去用它,它就崩了)
尤其是 Safari,屁事忒多。
“P2”当前的操作系统整体上比较简单,逻辑不复杂。比如电话、短信、iPod App、图片、日历设置,都属于原始的本地应用,它们不需要占用网络资源就能使用。
但是 Safari 不同,它是网络入口,是“P2”的数据服务中枢。工程师们使用 Safari 访问网络时,它成为了最复杂、最占用资源的那个。
Safari 会吃掉大量内存,网络 IO 被它密集占用,还要跑JavaScript、动态 DOM,调用 GPU 处理图像解码、渲染网页的排版和字体等等等等。
而乔布斯当初构想的 Web App 概念,落地过程和“P2”有限的硬件资源存在相当大的冲突。开发 Web App 使用的 Web Kit 集,大多数都是假定在内存较为充足、CPU 可长时间高频率运转的桌面 PC 跑。
这些 Kit 直接拿来开发“P2”的 Web App 存在天然的水土不服。
Safari 是第一个把“P2”干宕机的应用。
并且,以 Safari 为源头,还牵连出了一系列的问题,堪比“大型灾难现场”:
·加载网页过程中,突然来电,导致网页重新加载
·加载完成后关屏,再开屏解锁,导致网页JS线程悬挂,卡死
·浏览网页时,将 Wi-Fi 切换为 GSM,WebView 死锁(最严重)
·把手机横过来,切换横屏模式,导致 CPU 瞬间性能爆炸黑屏
一句话形容 Safari 复杂度:
它不是一个应用,而是半个操作系统
Safari 把“P2”操作系统的一系列问题都暴露出来了。
然后,更加要命的事情,就是用户可能会在 Safari 上搞任何我们想不到的小动作
比如等半天不出来,就会不停地“戳戳戳”,导致系统不断重复加载。上一些奇奇怪怪的,嵌套一大堆图片、视频的网站,还会不断地放大缩小网页上的任何内容。
用户的“魔法”操作叠加 Safari 本就消耗硬件资源,两者混在一起的体验,如同煮了一锅“五味俱全”难以下咽的乱炖。
面对这个问题,乔布斯慌的一批。
在他构想中,Safari 是“P2”数据服务唯一入口,是用户访问“一切”的大门,如果 Safari 在演示中出现问题,那么“P2”就崩了,所谓的“革命性”都会沦为媒体面前的笑柄。
If Safari can’t work,nothing else matters.
(如果 Safari 有问题,那一切都没意义了)
Safari 将直接决定乔布斯酝酿许久的发布会剧本能不能顺利讲下去。
对于 Safari 的一系列问题,乔布斯做了指示…
由于 Safari 问题众多、复杂且系统,一言难尽,软件团队的解决策略和步骤老猫将在后续篇讲解。
输入法可用
2月,“P2”紧赶慢赶,软件团队的精力聚焦 Safari 和系统两者的优化工作上,各项工作稳步推进。其中,一项最重要的功能在本月取得了明显的进展:输入法。

经过几个月,“P2”上搭载的全尺寸 QWERTY 虚拟键盘输入法引入了自动纠错功能,多点触控的点击精度也经过了反复的优化。
史蒂夫现在能不骂人地打完一段话了
负责输入法的工程师们总算是送了一口气。
前端和交互设计团队持续发力,系统全局的惯性滚动、物理回弹等效果也越来越像真实世界中的感受。
但是,仍然存在问题,比如不同的工程师,手指粗细不同,输入法对这种个体差异产生的偏差纠错能力很差,对于手指较粗的人,依旧会产生一些误触。
Assume the user is sloppy.
(假设用户心不在焉)
乔布斯认为,输入法应该具备“理解”用户每一次点击键盘时的意图,而非傻瓜式的精确响应点击区域的字母。
这个要求,对负责输入法的软件团队是一种挑战。要让输入法能够“理解”用户的意图,就需要一套能够学习用户输入习惯,动态调整键盘响应区域的算法。
在这里老猫展开一下,实现这种能力,工程师要做三个关键步骤:
- 增加每个按键的实际响应面积(按键 UI 尺寸不变,但触控感知面积往外适当延展)
- 自动纠错的优先级要高于精确区域响应
- 两种技术再交叉,通过算法来动态调整每个按键的触控感知区XY坐标的偏量和感知区的面积大小,以适应用户经常性点击的区域,就能让输入法实现“理解”用户的点击意图。
在这里,算法的学习逻辑也不难。通过记录用户点击某个字母之后,是否会点击删除,转而又点击相邻的另外一个字母。这种行为一旦次数多了(积分计算 + 点击频率热力图),算法就将这个相邻字母的实际响应区域往经常被删除的字母的感知区域适当延伸,以提高正确率。而经常被删的字母则适当缩小感知区域并往另外一个方向稍作偏移,但不会偏移出精确响应边界,实现相对的触控权“让渡”。
另一种就是用户连续输入一个词汇,中间某个字母错了。输入法给出拼写正确的词汇联想结果,如果用户选择了这个结果,那么也会针对中间输错的字母的感知区域往相邻正确字母的方位适当偏移,从而完成一次学习纠偏动作。
开发完成后,再将这套算法嵌套在输入法上,在苹果内部充分测试,让各类不同手型的人都来使用,让机器学习一遍。统合数据并继承,就能完成一套具备“理解”人意图的输入法 1.0 版本,直接让消费者使用。
消费者使用的时间越长,输入法的顺手程度越高,进而实现每个用户自己的输入习惯“私人定制”。
这是一套极为先进的算法,在当时,Only Apple can do,并且吸取了 FingerWorks 的诸多精华技术。
但话说回来,对于“P2”,这是一套不得不做的算法。竞争对手都是物理全键盘,每一颗按键都能被用户的手指明确地摸到,在输入效率和准确度方面,对缺乏手感的全触控屏有着天然的“血脉压制”,这套算法是对虚拟键盘没有手感的补充。

交互方面讲,在触屏上用户需要先看准,再点击。按键没有物理轮廓,根本无法判断自己究竟是点“中了”还是没点中,只能依靠输入结果来判断。
说回“P2”,如果输入法不能主动去学习用户的习惯,输入效率将会成为“P2”的重大缺点。等到发布会上,乔布斯的故事很难讲下去。
工程团队随即按照指示投入了工作。
图像分级渲染
3月,距离发布会9个月。此时的“P2”在电源管理策略方面取得了进展。比如 CPU 频率根据使用状态动态调节、没有操作的状态下自动降频等逻辑,耗电水平有细微的降低。
但是,电池依然掉得很厉害,纵观“P2”的所有功耗,最大的消耗就是这块显示屏。在显示屏中,相当一部分耗电来自不间断的刷新,导致“P2”续航水平仍然无法满足一天正常使用。
屏幕的刷新率是固定的60帧,界面上所有的 UI 元素都共同使用这套刷新节奏,统一走的 GPU 渲染管线。这套逻辑是从 Mac 搬过来的,但 Mac 可以全天插电使用,这根本不算问题。
即便,画面没有任何变化,但 GPU 的渲染仍在继续(刷60帧没变化的界面),这是当前对续航影响最大的问题。
If nothing is changing,why are we working?
(如果啥都没变,我们为啥还要干活?)
乔布斯敏锐地捕捉到了这个问题的关键点,他认为,屏幕刷新必须要“有理由”,如果什么都没改变,那就该冻结,只有界面在变化时才刷新。
用户也不是每时每刻都在操作,每次操作与操作之间的间隔,都可以被冻结,这样就能省下大量的无效刷新耗电
工程师们经过研究,提出了一个策略:分级刷新机制。
那么,如何分级呢?老猫展开一下:
工程师们对屏幕上内容的变化进行了观察和研究,发现内容一般呈现三种状态:静止、局部变化、全局变化。
这三种等级可以对应三种刷新方式:
- 静止时,仅渲染1帧并保存,然后持续显示这1帧,比如看一个静态的网页,看一张照片。
- 局部变化时,仅渲染变化的部分,其他无变化的区域继续沿用那1帧的内容。比如某个按键点击之后颜色发生变化,某个区域显示的内容发生局部的变化等。
- 全局变化时,GPU 全力渲染。比如滚动列表、图片放大缩小、App 之间的切换,返回桌面等。
而这三种等级之间,会根据用户的操作产生的屏幕内容变化来自动匹配,自动切换。
这套机制后来发展到了“3.5”等级,具体思路老猫在后续篇中细讲。
It shouldn’t feel like it’s still thinking.
(不能让人觉得它还在思考)
乔布斯认为,动画结束,渲染也就结束,GPU 就该结束工作,保留渲染结果即可。
屏幕的内容刷新应该从第三等级,随着动画的结束,逐步回落到第二等级,最终回到第一等级。同理,当界面上的内容开始变化,就从第一等级逐步上升到第二等级,再上升到第三等级。
Fast when you touch it.Calm when you don’t.
(触碰时迅速反应,不碰时沉着冷静)
GPU 能够“一张一弛”,像“呼吸”一样工作,这就是乔布斯对这个问题的定义。
这套机制与 Safari 的改进工作密切相关,具体内容老猫将和 Safari 的问题在本专栏续篇中一起讲。
本次工作,让系统可以向现实妥协,但不是向平庸妥协,而是系统的资源调度将变得更加精密。
在本月,除了上述这件重要的事情之外,还有一件硬件方面的改动:将塑料触控面板更改为玻璃触控面板。
塑料改玻璃绝非“换个材料”那般简单,其引发了一系列硬件大改动,并非一般自媒体讲的那么轻描淡写且时间还是错的(根本不是发布前两周的突发奇想)。由于篇幅有限,老猫将在续篇中展开阐述材料变化引发的一系列工程改变。
4月,距离发布会8个月。“P2”前期部署的几个重要任务都取得了明显的进展。
现在“P2”能够连续使用几个小时不崩溃,演示也不再需要频繁重启,能连续演示多个任务。比如电话、信息、邮件的状态已经全部统一,多任务切换过程也稳定许多。
特别是之前提到的“软件异常崩溃的恢复”问题,也有了清晰统一的解决路径。
工程师们对“P2”的自信度明显提高了一截,大家都开始习惯性随身携带,时不时拿出来点几下。
整体上,“P2”的状态呈现出一片欣欣向荣的景象。但实际上,大家都在有意无意避开一些操作。
所有的使用流程、测试都建立在正常使用行为基础上。所有的测试,都按部就班地执行标准顺序。所有的模型,都有标准的流程行为范式。
一切都看起来没问题,但,没问题本身就是问题。
用户可能会以任何工程师们意想不到的方式去使用“P2”,“一通操作猛如虎”依然会崩溃/出错。
We’re not polishing,We’re proving.
(我们不是打补丁,我们是在证明)
乔布斯开始让工程师们“乱用”,模拟真实的通话中断、网络中断,各种花式中断,比如快速切换应用等等。
殊不知,这种压力测试,将“P2”推向了重大危机中。
“P2”存亡危机
5月,距离发布会7个月。在乔布斯提出“乱用”测试之后,“P2”引爆了一堆之前始料未及的稀奇古怪问题。
曾经的测试、演示 Demo,剧本都是提前写好的,路径都是预设的,在这种条件下,“P2”的表现堪称令人满意。
混乱测试启动之后,卡顿、卡死、假死、崩溃等一系列现象变成了家常便饭。
广大消费者根本不会按照我们预设的 Golden Path(最佳路径)去使用“P2”,所有的测试路径,都只是我们“幻想”出来的。那么在消费者手中,“P2”就是个不知道什么时候会爆的雷。
This still feels fragile.
(显然现在还很不靠谱)
乔布斯担心,如果在发布会上炸了,那“P2”就完蛋了。时间已经不多,大家必须抓紧修好它。
6月,距离发布会6个月。在本月,Safari 经过一段时间的改进,稳定性有明显的提升。系统方面,针对上个月发现的各类中断问题有了一系列应对的解决方案。比如来电强制中断应用程序,用户操作中断则冻结应用状态释放线程资源等等。
大家的工作依然照旧,思路上仍然惯性沿用之前的 Golden Path(最佳路径)去测试产品,即便乔布斯提出了“乱用”的要求,工程师们也并没有彻底贯彻到每个操作中。
然而,对于乔布斯而言,最恐怖的事情,并不是“P2”频繁出问题,而是工程师们的一种心态:
“这会儿先别点 Home 键”
“现在千万别接电话”
“等等,等一下再切换”
…
在测试过程中,工程师们会不断地去提醒测试工程师,注意这,注意那,这不行,那不行。
“乱用”本该是一种暴露产品问题的方法,但工程师们却将这种方法拿来绕开问题,刻意避雷,这是本末倒置
工程师们不仅刻意逃避问题,还教别人如何逃避。这是集体性的规避责任,是避重就轻,是害怕,是一种对产品质量不负责任,且这种“病毒”在传播。
到底还有多少我们没发现或是被我们掩盖的 Bug?
Stop building for demos!
(停止这种为了演示而演示的行为!)
乔布斯非常生气,他强硬地叫停了这种 Golden Path 工作模式。
测试团队和软件团队“坐一起”这种模式存在极大问题,双方的信息各自高度透明,交流频次极高,互相都能预判对方的预判。导致了项目测试时双方都很默契地去寻求 Golden Path,绕开了大量的隐藏 Bug。
两个团队必须分开!互相不能知道各自在干什么,双方要像“红蓝对抗”一样出其不意地考察对方,才能让这些隐匿在各种旮旯的 Bug 被抓住。
7月,距离发布会还有5个月。输入法团队取得了重大进展,虚拟键盘精心设计了算法,纠错能力大幅度提升,误触率创下了历史最低点,持握机身时输入节奏已经趋向于自然而然,已经快要接近“发布会级别1.0”版本。
整体的 UX 架构、人机交互逻辑、任务进入与冻结、退出的流程也已经高度一致,系统统筹方面已经标准化、结构化,“P2”整体看起来像个“能卖”的产品了。
但是,乔布斯此刻高兴不起来,上个月的事情让他无法对这些取得的进展过早叫好。那些没有被发现的 Bug 就像一把把“达摩克利斯之剑”悬在他的头上,寝食难安。
于是,他准备来一场“遭遇战”,在没有任何准备的情况下,对“P2”进行一次内部压力测试。
他示意测试团队要设计出一系列最“混乱”最“刁钻”的测试用例,尽可能足够模拟真实的环境。且不能向软件团队透露任何“情报”,要让软件团队在没有任何预判的情况下,“突袭”他们。
本月,“突袭”演示开始了,软件团队没有收到任何提前通知,而是突然就被叫到了演示空间中。毫无准备,一场大型“洋相”现场随即拉开了序幕。
所有演示的顺序都是随机的,所有演示步骤都是混乱穿插的。在演示过程中乔布斯还不断地提出稀奇古怪的点子:
等等,这里先退出去点另外一个…
这里要断个网…
别急,我先切换看个照片…
软件团队匆匆忙忙连滚带爬,整场演示堪称大型连环翻车追尾现场,“P2”被折腾得“冒烟”,一句话形容:
不是在重启,就是在重启的路上
这场“突袭”演示结束后,乔布斯彻底笑不出来了。没了脾气,浑身充满疲惫感。
If this happens on stage, we’re done.
(如果在舞台上出现这些个,我们就完犊子了)
满脑子都在思考一个问题:这下咋整?
由于“修复系统稳定性”的篇幅较长,乔布斯指导的具体策略和团队工作方法老猫拆分为几个关键点,将在后续篇中展开讲解。
8月,距离发布会还有4个月。经过一系列紧急工作之后,“P2”的系统可靠性有了较大的提升,具体体现为:
连续压力使用数小时不崩溃、崩溃后可“合理”恢复、UI“假死”情况基本上已经不存在。
系统有了明确的行为边界,它会自己限定用户能用什么,不能用什么,并且自身也知道自己哪些功能无法实现,会在交互流程中告知用户。但是当前“P2”的性能、内存、电池只能说勉强够用。
This is good enough to ship…if we don’t add anything else.
(已经足够拿去卖了,别加功能就行了)
这是十分罕见的表态,乔布斯并没有像之前一样追求完美,而是按下了刹车键。毕竟,已经没有多少时间能拿去精益求精了。
他示意团队,将当前已有的这些功能完善到“不踩雷”的状态,就能在发布会上有足够的说服力。
总体来看,这4个月的工作,“P2”总算从一种“不确定的崩溃”暂时转为了“应该能见客”的状态,所有人都送了一口气。
那么,下一步该干什么呢?
最后冲刺
9月,距离发布会3个月。
苹果的高层会议上,乔布斯定义了当前“P2”的状况:
我们已经完成了它的发明,剩下的就是清理现实中的脏问题。
现在,我们不需要加任何新功能,只需要让“P2”变得更稳定、更一致,让它整体达到“发布会1.0级别”的质量水平。
在本月,软件团队重点针对“状态机”管理机制下了功夫,明确了每一个状态下的软件行为边界。
通俗讲,就是在锁屏、解锁、来电、通话、App 前台、点击 Home 键后等,在这些状态中,哪些指令被允许,哪些指令被禁止,哪些线程该工作,哪些线程该冻结。

以及当一种状态切换到另一种状态时,系统权限会如何释放,释放后又如何恢复到被收回前的状态等。
“状态机”管理机制严格限制了每个应用程序在“P2”上运行的资源边界,就像用绳子将这些 App 捆绑了起来,做到仅在“用户需要”时按照有限的条件去办“该办的”事。
但是,工程师们低估了用户的行为。在本月的压力测试中,测试团队开始模拟真实的小白用户,用尽可能“第一次接触这个产品”的方式去测试“P2”。比如,连续滑动、连续返回或退出,无脑连续点击屏幕,各种因单手持握产生的各种各样的误触等。
对于工程师而言,这些毫无章法和逻辑的行为是不合理的,用户不会、也不应该这么去使用“P2”。
但事实恰恰相反,这些看似不合理的行为,却是用户极为常见的“玩机”手法。在这些没有逻辑的胡乱操作中,“P2”仍然会出现 UI 错乱、等待计算的指令堆积成山,然后崩溃死机等问题。
If they touch it, it has to do something sane.
(如果碰到它,它必须合理反应)
乔布斯认为,“P2”应该学会辨别人的行为,不能无脑地执行用户所有的指令。
对此,软件团队将用户的指令分为三级:
- 不明确指令:如果用户输入的指令是不明确的,无法理解的,那么系统要学会忽略、抛弃,不让指令进入 CPU 的计算序列中排队。
- 无效指令:如果遇到明确,但无法执行的指令,那就直接阻止,告诉用户这样做没有用。然后抛弃掉,不让其占用太多资源。
- 有效指令有限响应:对于可以执行的指令,仅计算这个指令的最小变化,仅1次计算、1次跳转、1次结果,不“过度响应”。
同时,系统也要做瘦身,很多看起来很酷炫、很连贯、很合理但冗长的交互流程也直接砍掉,仅作简单的反馈即可,不让过多跳转占用资源。
这种整体性的系统“收口”大幅度提高了“P2”对无效指令的判断能力,减少了无意义的算力浪费,为续航赢得了更多的电力。
10月,距离发布会还剩2个月。
在事关“P2”的发布事宜上,工程团队、产品团队、市场团队三方开了一系列“共识会议”,大家各执一词。
工程团队认为,“P2”现在还不够成熟,还需要再修几个月才能见客,一堆 Bug 还没修完,偶尔崩溃的情况依然存在,还不能拿去卖。
产品团队则认为,“P2”现在看起来已经非常完善,它比市面上所有的手机都好,完全可以按时上发布会并开启售卖。
市场团队的压力最大,他们为“P2”发布会已经筹备了一年,营销方案也已经策划好,市场预热的各项工作都已经准备就绪,就等发布会的到来,坚决不再接受任何可能的延期。
乔布斯自己则对这些事不太感冒,而是坚持每天都亲自使用“P2”,一有问题立即指出,立刻给软件团队指示。每一个被发现的问题,他都会亲自判断:
Would I be embarrassed if this happened on stage?
(如果讲台上闹这出,我会尴尬吗?)
由于时间已经非常紧迫,在他看来能接受的小毛病,都可以先记录下来,放一放。但对于那些不能容忍的毛病,他一定会督促软件团队“再改一版”。
他不停地排练,调整演讲稿。无论如何,即将到来的发布会一定要“尽在掌控”。
其中最关键的一件事:“P2”究竟该叫什么名字?
在本月也有了最终的结论:
iPhone

“P2”被命名为 iPhone 的前后脉络三言两语讲不完,具体内容老猫将在后续篇中讲,主线篇以围绕工程为主。
但是,这个名称的第一次公布必须在发布会上,需要严格保密,内部仍旧使用项目代号。
11月,距离发布会还剩1个月。
The keynote is not the product!
(PPT不是产品)
乔布斯对软件团队为了保险,提出「是否为演示开发一套特制系统」的提议表示反对。他认为,这种专门为演示准备特制系统的方式,本质上还是没有彻底摈弃 Golden Path 的工作思维。
如果“P2”只适合发布会,那它就完蛋了。
对此,乔布斯对这次的发布会增加了新的规则:“P2”不享有特权演示路径,不可使用特制系统,系统现在是什么状态,发布会就是什么状态,“P2”要“本色出演”。
所以,福斯托尔你们抓紧修吧,剩下的时间要按分钟来支配。对于软件团队而言,现在乔布斯本人就是“最终用户”。
12月,发布会即将来临。
市场团队已经启动了2007年度 MacWorld 发布会的各项准备工作,组织策划,议程,嘉宾邀请等事项都已经开始推进。

在办公室,乔布斯反复推敲和检查发布会执行文档。每一步,每个动作,都必须固定掉,且要编号,比如:
·解锁
·滑动菜单
·点击某个图标
·等待多久
·要讲什么台词
·进入什么页面
·要切换到哪个页面
……
乔布斯十分紧张,虽然他用严格的标准要求软件团队把系统的稳定性尽可能提高,以降低在发布会上“出洋相”的概率。但临近发布会之际,他仍然有些惴惴不安。特别是这场发布会不同以往,他要带来一个全新的、从未有过先例的产品。
他不知道观众会作何感想,不知道媒体会如何评价,也不知道竞争对手会如何看待“P2”。
一切可能的反馈,都只是猜测。
此刻的他变得谨小慎微,他对任何可能影响到发布会的因素,都表现出比以往更高的警惕性。
If it’s not on stage, it’s not going in.
(不演示,就拿掉)
他让软件团队把那些还不成熟的,处于实验阶段的功能、UI 交互都先拿掉,以免引发不必要的麻烦。
乔布斯认为,“P2”的系统,应该学会“强硬”地回绝用户那些不合理的操作,这样不仅能保护自身有限的资源不被随意浪费,也能引导用户以正确的行为来使用它,这是一种人与机器之间的“双向交流”。
Rude is better than broken.
(强硬比崩溃更稳)
他增强了对用户“乱用”行为的约束,以其疲于应对,不如直接拒绝用户的“离谱”指令,比如:
·用户快速连击屏幕,直接忽略
·应用程序崩溃难救,就直接杀掉进程,“闪退”回桌面
·用户频繁切换状态,就强制回桌面
·某些功能出现冲突,就直接弹窗提示无法执行请重试
等等,这些“一刀切”举措进一步提高了“P2”在面对用户时的系统稳定性。
工程师们察觉到乔布斯这种状态,再次小心翼翼地询问:
要不,做个演示版?
乔布斯拒绝了,他仍旧坚持使用原生的系统,即便充满诸多不确定,但这不是“作弊”的理由。
“魔怔”排练
An iPod, a phone, and an Internet communicator…
(一部iPod,一部手机,和整个网络通讯设备…)
乔布斯不断试讲,反复重写开场的第一句话,写了又删,删了又写无数遍。用户听得懂吗?用户能理解吗?用户能接受吗?如何引导用户进入“P2”的世界?
他反复在台上踱步,试讲每一句话,到试讲完全场。他会挑选不同的时间点来排练,即便手上拿的不是“P2”,他也会带入情境“翩翩起舞”,把手上的任意设备想象成“P2”。
Nothing surprises me on stage.
(舞台上要“见怪不怪”)
他要求自己,不论遇到任何的突发情况,他都要自然而然,行云流水地圆场。他也知道现在“P2”仍然不完美,仍然有很多 Bug 要修,仍有可能在台上“雷”,但是此刻他释然了。
This is the best phone the world has ever seen — even with its flaws.
(这是迄今最牛B的手机,就算有点小毛病又怎样?)
“P2”已经领先所有厂商,已经超越了时代,已经足以挑战所有厂商的现有产品。两年的努力,都集大成于“P2”身上,是全公司1800名天才工程师凝聚的劳动成果。
乔布斯变得自信,变得从容不迫,工程师们每天都在亲眼目睹乔布斯的心态在肉眼可见地变化。
随着一次又一次的排练,从最初的“炮仗”一点就炸,到疲惫不堪,再到当下的“清澈”,他的目标越来越明确,越来越清楚自己在做什么。
演讲台上,周围的灯光调暗、聚焦,此时此刻仿佛世界一下子变得安静,所有人的目光都“坐落”在他身上。

An iPod, a phone, and an Internet communicator…
在场陪练的人都感受到:史蒂夫已经准备好了。
突发事件
2007年1月,距离发布会仅一周。
The week we almost died
(这周我们差点全完蛋)
苹果在 MacWorld 的会场旁边的 Moscone West 酒店里建立了一个发布会临时指挥室。

大家在紧罗密布地测试着即将在发布会上使用的“P2”演示机,在测试过程中,工程师们发现一个问题:
同一台测试机,第一天在执行相同的一套操作之后,第二天再重复一次就存在明显的卡顿。
怎么会越用越卡?
工程师立刻紧急排查原因,发现“P2”经过好几天的彩排,连续使用不关机,Safari 中 Web Kit 的大量无效文件都堆积在 RAM 中,只有重启才能恢复。
发布会当天,这些设备会连续演示数小时。如果在发布会上越用越卡,那就可能成为翻车现场。
We’re not rebooting on stage.
(我们不会在台上重来一次)
但是在台上,重启行为是绝对不被允许的。机会只有一次,乔布斯必须保证“P2”首发一次就顺利亮相。
现在根本没有多余的时间让软件团队做精细的优化,只能做最简单粗暴的改造:Safari 的部分功能被禁用,缓存上限被限定,缓存的增加行为被压制,同时减少在发布会上演示用的 Web App 的复杂度。
这个问题暂时按住了,但另一边又冒出了新问题。
由于临时指挥室所在的酒店电话信号较差,在演示拨号时,偶发没有“嘟嘟”声,拨号界面卡住的问题。
如果这种现象在发布会上出现,那就是“当众打不通电话”的 T0 级别事故
怎么办?要不直接取消电话演示?用一个假的录屏视频来替代?
If we can’t make a phone call, we shouldn’t be here.
(如果不能打电话,那我们来这儿个寂寞?)
经过讨论,工程师们想到一个鬼点子:在会场部署专用基站
信号差本质上是环境问题,那就改变环境,“P2”届时仅需拨打几个“无论如何都能通”的电话即可,不需要任何改动,这不算作弊。
乔布斯立即同意了这个做法,算是有了补救措施。
然而,第三个问题紧接着冒出来了。
只要乔布斯稍微快半秒钟点击屏幕,在动画播放未结束前。UI 界面就会卡住,虽然屏幕还亮着,但是没有任何反应。
这个 BUG 很难复现,需要操作手速非常快,工程师一时之间查不出到底哪里出了问题,但是有一点可以确认:只要在动画播放未结束之前点击屏幕,就会“雷”。
Then don’t let it do that.
(别让它这样)
宁可没有反应,也不能乱反应!工程师给动画播放加了一道锁:动画播放结束前,忽略任何触控指令。
上述3个问题,都是在发布会前夕发现的“高危”风险。在乔布斯看来,哪怕其中一个在舞台上发生,都将对“P2”的亮相产生不可逆的负面影响。对于消费者而言,这是苹果第一次做手机,首战必须告捷。顺利先入为主,才能建立良好的信任开端。
前夕
7日,距离发布会还有1天。
乔布斯仔细地检查着后天要使用的 Keynote 演讲材料,对一个关于 Safari 功能的深度演示桥段反复进行琢磨。
这是一段4-6分钟长的演示内容:
用 Safari 打开一个十分复杂、内容众多、长度极长的 PC 级网页。能够自然地快速滑动、惯性滑动,还能双指放大缩小,精确操作每一个按键。并且能在两个完整网页之间切换。整套操作丝滑流畅,效果相当震撼。
这是完整的互联网
这个桥段,是整场发布会的高潮。他想通过这个环节,向观众展示“P2”具备真正的桌面级网页浏览能力,这是其他厂商的同类产品不具备的能力。
但是,Safari 在彩排中仍然存在偶尔的崩溃、卡死、白屏等问题,Safari 本身就是一个高风险应用。
打电话出问题,可以解释为信号不好,滑动失败可以再来一次,但 Safari 崩溃,这场面就很难圆了,乔布斯没法向观众解释。
It’s amazing, but it’s not essential.
(的确惊艳,但不是必要)
经过慎重考虑,乔布斯最终还是删掉了这个桥段。他认为,这段只是让观众觉得“P2”有多么厉害,但并不能增加更多“它是什么”的理解。
发布会并不需要“展示一切”。
8日,明天就是发布会。
这一天,工程师发现一个在极端情况下可能会触发的 Bug,虽然发布会上不一定碰到,但按照惯例,都是紧急修改一个版本。
We ship the devil we know.
(这是我们熟悉的威胁)
乔布斯认为,已知的问题比未知的问题安全得多,只要在演示时避开即可。如果再改一版系统,可能还会改出一堆新 Bug,反而更加不安全。
当下就到此为止吧
系统版本冻结,工程师不再触碰任何代码,所有设定保持现状,静待明天到来。
MacWorld 2007
2007年1月9日,发布会当天。

咳
This is a day I’ve been looking forward to for two and a half years.
(这一天,我期待了整整两年半)

Today, Apple is going to reinvent the phone.
(今天,苹果将重新发明手机)

We’re introducing three revolutionary products of this class.
(我们将发布三款革命性的产品)
The first one is a widescreen iPod with touch controls.
(第一款,是带触控的宽屏iPod)
The second is a revolutionary mobile phone.
(第二款,是一部革命性的手机)
And the third is a breakthrough Internet communications device.
(第三款,是一部突破性的互联网设备)

These are not three separate devices. This is one device.
(这不是三款设备,而是一款设备)

And we are calling it iPhone.
(它的名字叫 — iPhone)

…
相信大多数对 iPhone 感兴趣的读者,都看过乔布斯的完整版80分钟发布会视频。毫无疑问,这场发布会取得了空前的成功,台下的观众无一不用兴趣高涨的眼神看着 PPT 上的“iPhone”,乔布斯吊足了胃口。
在视频中,他重点讲解了 iPod、电话、邮件、Safari、谷歌地图、照片,特别是来电时的音乐中断处理,两个人通话合并为3个人的集体电话会议,还通过谷歌地图上的信息打电话给星巴克整蛊要“点4000杯咖啡”。
即将结束时,遥控器短暂失灵,乔布斯巧妙地用他和沃兹尼亚克在里德学院做“电视信号干扰器”的故事来打圆场,展现出了极强的演讲控场能力。
雅虎、谷歌、Cingular 的 CEO 也都到场出席演讲。乔布斯承诺未来 iPhone 将支持 3G 网络,首批 iPhone 将在2007年中发货。
其中,作为运营商代表的 Cingular CEO 斯坦·西格曼 在致辞后半段,说了一句话:

The let's Apple be Apple,the Cingular be Cingular
(让苹果做苹果,Cingular 做 Cingular)
这段话更像是在说给某家公司听:我们合作,但不干涉。我们协同,但不妥协,就差直呼其名了。
在结尾,乔布斯宣布了一个最为重要的决定。
更名“Apple Inc”
苹果公司的名称,即日起,从之前的“Apple Computer Inc”更名为“Apple Inc”,这个名称的变化看似只是删除了一个词,但从公司的业务可能性讲,用一个符号来表示:
“♾️”
苹果开启了一个新的时代,iPhone 就是这把钥匙。

但,这场发布会还有很多细节没有交代完,比如乔布斯只有提到 iPhone 上运行的是“OS X”,但没有正式将其命名为“iPhone OS”,“Purple(紫色计划)”也还没有结束…
老猫点评
经 上、中、下 三篇文章的讲解,“Purple(紫色计划)”的核心内容到这里已经讲完,但老猫相信,这些只是 iPhone 研发计划中的沧海一粟。
为期两年半,前后参与人数多达1800人。从硬件到软件再到硬件,每个细节都融入了工程师们的思考,每个特性都经过反复的打磨,每个功能都经过反复的利益权衡。加上之前苹果察觉到手机对 iPod 的威胁并做出的相应准备,时间跨度长达4年。
整个计划,绝非某个人做些指挥工作就能做到,而是需要说服一群人“舍命陪君子”,豪赌4年的时光,每个人都承担了相应的风险。
下一战:赢得信任
严格讲,第一代 iPhone 并不是完全体,它只是一个“被严格裁剪到可发布级1.0版”的简易产品。
“iPhone OS”系统还未完成功能的构建,软件生态基本为0,系统服务极度收敛,在发布会上,大量展示的用户界面还只是简易的列表形式。
后台多任务也不存在,系统的整体稳定性也仅能用于日常一般强度,不能爽快地高强度玩耍。
3G 网络缺席,发布会上明确示意将在日后推出 3G 版本,相当于直接告诉消费者:需要高速网络就等下一代吧。
用一个词形容第一代 iPhone:
能卖
消费者面对突如其来的“重新发明手机”,戒断反应非常明显。在发布会后的两个月内,消费者基本上对 iPhone 都秉持怀疑态度。
没有键盘咋打字?虚拟键盘靠谱吗?
屏幕这么大摔了很容易坏吧?
酷的一批,但好像我用不上…
没有第三方应用程序啊,游戏也没法玩
苹果的竞争对手们对 iPhone 嗤之以鼻,
诺基亚的 Symbian 当时已经成为了行业标准:“iPhone 很酷,但不会是主导”
黑莓认为“键盘才是效率”,没有物理键盘就谈不上商务。
微软认为“我们已经有 Windows Mobile”,iPhone 的定价太贵,难以走量。
摩托罗拉则非常自信“高价玩具而已,我们才是定义手机形态的公司”。
这场发布会,苹果让人们认识了 iPhone,但是让人们信任 iPhone,又有一段很长的路,从历史累计销量就能看出:
初代 iPhone 600万台,iPhone 3GS 3500万台,iPhone 4 5000万台
第四代产品 iPhone 4 上市时,才能称之为真正意义上的被大众接纳。因为在同期,竞争对手诺基亚的累积出货量是 3.42 亿台。即便是自家产品 iPod,累积销量也达到 2.18 亿台。
从第一代 iPhone 长征到 iPhone 4,苹果又将如何一步步赢得消费者信任?期间又遇到了什么困难?乔布斯又如何带队去解决?
毕竟,雪山爬完,还有草地…(续集铺垫)
众人皆醉我独醒
当所有的厂商都不看好 iPhone 时,有一家厂商对此有截然不同的理解:Google。

Android 诞生非常早,2003年10月就出现了,最初作为对标黑莓的低成本智能手机操作系统存在。2005年7月被 Google 收购,但 Android 的技术路径不变,照旧发展。
2006年底,Android 的首款原型机 Sooner 诞生,正好和 iPhone 即将发布的事宜撞了个正着。

iPhone 发布会后,Android 创始人 安迪·鲁宾 :
我们完蛋了
iPhone 对 Android 影响最大的并非多点全触控人机交互,而是意识到 iPhone 这种“硬件围绕软件,软件发展为应用生态”的路线非常具有前瞻性。
当前的手机硬件和外形就像一个牢笼,将软件困在里面。
软件要根据硬件的规则去做事情,这会极大限制作用空间
iPhone 仅提供一个屏幕,这能赋予软件更多形式,达成更多目的
Google 随即开始全面重构 Android,彻底推翻之前的全键盘设计。使用全屏触控方案,全面拥抱“硬件围绕软件”的思想。意图将 Android 打造成类似 iPhone 那样的“谷歌服务站”操作系统。
用户要的不是一台机器,要的是一种舒适、稳定、长久、高效的生活方式
运营商的恐惧
运营商意识到,AT&T 和苹果的这种合作模式是在挑战其他运营商与手机厂商固有的传统模式。
在以往,手机软件的方方面面运营商都会深度介入,尽可能占有用户访问的每个入口,植入最多的广告,赚最多的钱。
让苹果做苹果
这种模式,本质上是将自己原本可以占有的权利交还给手机厂商自己定义,这将会丢失大量的变现入口和路径,这是一般运营商不可接受的。
于是,在相当一段时间,AT&T + 苹果,其他运营商 + Android/诺基亚/黑莓,演变成了具有对抗味道的两大阵营,传统的运营商在尝试最大限度地保护自己的利益。
最直观的体现,就是 Android 开源,厂商/运营商自主可以完成应用的植入,无需取得 Google 同意,那么厂商/运营商就能“先入为主”地占有变现路径,倾销自己的服务。

iPhone 由于极端严格的系统限制,预置任何第三方应用程序需苹果同意,且高度加密不允许随意修改系统,对运营商来说系统是完全无法介入的。但对用户而言 iOS 这种模式显然十分安全纯净,用户有一种“我的 iPhone 我说了算”的掌控感
问题来了,AT&T 没法介入 iOS,那他们怎么赚钱呢?
在老猫看来,AT&T 换了一种思路。
iPhone 是一种极为依赖数据服务的设备,并不像其他普通手机那样,只打电话、发短信也能用。可以说,没有数据服务的 iPhone 基本上就是个酷炫一点的非智能手机。
而数据服务产生的营收比一般语音电话费用高得多。
只要使用 iPhone 就必然要开通语音+数据的套餐,否则无法使用 iPhone 身上任何基于网络的服务
而能够为 iPhone 提供数据服务的,仅有 AT&T 一家运营商,而 AT&T 数据服务和 Cingular 电话服务又是唯一的绑定关系。所以,消费者想要使用 iPhone 就必须办理或持有 Cingular 的电话卡+开通 AT&T 流量套餐
然后,再签订24个月的使用合约与消费者绑定一段时间关系,养成习惯,把用户培养成长期客户,所以早期的 iPhone 基本都是“合约机”模式。
相信你已经感觉到了,这个模式其实运营商对设备的介入更深,更隐秘,某种程度上讲:
iPhone 本身就是 Cingular 独占的用户入口,看似 iOS 没有任何运营商介入的痕迹,实际上消费者每一次使用,都在依赖 Cingular 的网络服务,并产生数据服务佣金,且这种绑定关系缔结长达两年
同时,Cingular 算准了苹果的用户画像一般都是高净值、高收入的高端用户,他们对品牌具有极高的忠诚度,这简直就是一座用户金矿
消费者给 Cingular 交的费用更多了,包括但不限于电话+流量服务费。由于保密原因,几乎没有人知道 Cingular 从 iPhone 身上获得了多少利润(老猫也没找到可靠资料)。老猫只知道,AT&T 向苹果支付的“合约分成”单项就高达数十亿美元……
在这种模式下,Cingular 只需要做好数据业务,帮助苹果销售 iPhone。苹果只需要把产品做得更好用,开发更多服务和下一代产品,各自都更加专注。且两年合约让用户“不得不”去使用 iPhone,促进了苹果品牌忠诚度和运营商依赖关系的培养
苹果、Cingular、消费者三方的默契就像一个三角形,造就了一个“用了 iPhone 就回不去”的稳定局面。
结语
写到本篇,老猫的长篇系列也暂告一段落了,有粉丝对老猫说“你能不能写几篇小的”,已经感受到了大家面对老猫的长文时,阅读压力拉满…
接下来,老猫将会缩减篇幅,降低阅读压力,在确保质量和信息密度不减的情况下,做到“精、短、多更、勤更”。
同时,新的一年,欢迎新粉丝,感谢老粉丝。
如果您喜欢老猫的内容或期待看到本专栏更多的后续篇章,求关注~求转发~求赞,您的支持就是老猫写稿的动力源,咱们下篇再会。
