当有人向你反馈了一个bug之后

IMG_8026

最近一直想写一篇 bug 相关的文章。昨天晚上打开 Reeder 翻阅的 RSS Timeline,结果发现了这篇「When someone gives you a bug」,作者是一位前端程序员,名叫 RobotJoe。原文网址:

When someone gives you a bug

开始写文章之后我发现每次想写一个主题的时候,从会有合适的素材时不时蹦出来,非常神奇。

故事讲得荡气回肠催人泪下,我一年前就读过中文译文,这次看起来依然心酸不已。于是找了一篇译作(译者已经不可考),重新意译、校对和排版,推送给大家。读完这篇文章,你大概就能理解为什么程序员明明知道创业维艰,成功率极低,还是奋不顾身的跳入创业的大熔炉里,岁月竞逐,情怀不改。

嗯,其实「每个人创业的成功率都很低」这种事,只是没人到处说而已。

Continue reading

为什么大公司看起来都那么糟糕?

10188

江湖传言,你有多爱一个公司,最后就会多恨一个公司,尤其是大公司。是的,在下姓江名湖,名叫江湖。

关于公司和员工,总是有扯不完的话题,无论一个公司看起来多美好,每个员工每年都会产生几次「妈的老子再也不干了,受这份罪干嘛,明天就辞职,谁劝跟谁急」的念头,只不过大部分人睡一觉就过去了,第二天照样乐呵呵编程、设计、写作、争吵、探讨。少数人没过去,然后这些人就真的离职了,加入了另一家公司,或创建了一家公司,然后继续抱怨,或被别人抱怨。

那为啥总是大公司看起来更加糟糕呢?因为大嘛。

大公司总是因为强势、抄袭、垄断、加班、不人性化、KPI 考核等种种原因为人诟病。以前 IBM 这个倒霉蛋作为老大哥就经常成为新型创业公司的假想敌,苹果当年就是这么干的,那时候苹果还是个小弟,1984年的1月22日,在第十八届美国职业橄榄球超级碗大赛中,苹果公司播放了一段构思独特的广告片「1984」。广告借用乔治·奥威尔的小说《1984》映射 IBM 对市场的垄断和不思进取,把 Macintosh 塑造成挑战 IBM 的新生力量,在广告的结尾,屏幕上出现广告词是这样强词夺理的:「1月24日,苹果电脑公司将推出 Macintosh 电脑,你就明白,为什么今天的1984不会变成《1984》」,搞的好像没有 Macintosh 世界就会大难临头似的。

31年过去了,苹果跃了三跃,终于成为科技领域的带头大哥,因果轮回,现在丫开始经常被批评了,比如市场的垄断和产品的不思进取,技术缺乏突破,设计开始堕落,iPhone 上凸起的摄像头,Magic Mouse 和 Pensile 的充电方式等等,口诛笔伐,不一而足。三十年河东,三十年河西,想来让人唏嘘感慨。

谁让你大来着?

公司大了以后总会产生这样或那样的问题,这个道理谁都懂,但是大部分时候人们在进行群嘲的时候,往往会主动忽略规模增加带来的公司管理难度,只顾享受吐槽的快感。总结一下就是先骂痛快了,逻辑对不对有没有价值回头再说。谁都不希望在一个机构臃肿毫无斗志的大公司工作,但是,每个充满雄心壮志的小公司都希望成长为一个大公司。几个人的创业公司有什么好管理的呢?大家对对眼神都知道彼此在干什么,实在不行聚一堆讨论一下,下一个三年计划都出来了。工作就是加班,你不加班谁加班,你不全栈谁全栈?你不能指望前端,也不能指望后端,你得iOS 和 Android 双修,你得 Java 和 JavaScript 双飞。上马可退敌下马可治国。当团队碰到问题无法解决的时候,当所有眼睛都在看着你的时候,你需要拿出勇气和耐力,抽丝剥茧的把问题解决,而不是不负责任的扔给别人,况且也没有别人。

每个人都会怀念公司初创时期的燃情岁月,但是幸福的时光总是短暂的。

公司涨到了100人,开始有了各种机构,财务、HR、产品、设计、研发、市场、销售,纷至沓来,一个都不能少。不能在撸着膀子干了,开始放权,开始有层级,扁平还是矩阵,产品驱动,还是技术驱动,市场驱动还是发布会驱动,员工怎么考核,加班怎么处理,都是问题,还好不是大问题,每个组长大概能把任务捋顺,谁干的好,谁能力强,基本上还能一目了然。只要业绩在增长,一切都顺理成章,每个人都对自己说,我们还是创业公司。

公司人数到了1000人……这个管理复杂度已经相当高了,战略决策,业务方向,保老业务,还是开新方向。盈利了,怎么分配利益,亏损了,是不是员工不力。加班还是加薪,团队如何协作,人员怎么管理,用微信还是用钉钉,选 Slack 还是 Tower,上 OA 吗,还是上 ERP?数据有了,有人在分析吗?要 KPI 考核吗?优秀员工伐开心怎么办?混日子的开心了怎么办?劣币驱逐良币了怎么办?老人们不好管了,空降的又水土不服,怎么办?千丝万缕,能把老板愁死。

历经九九八十一难,公司人数终于超过10000人……事实上大部分人根本就不知道如何领导一万人的公司!我也不知道,我压根没在上万人规模的公司待过,待过又怎么样呢?你看到的可能就是冰山一角,根本无法做到一叶知秋,很多时候我们只是以为自己知道而已。这种级别的公司暴露出来的问题就更多了,一抓一大把。为啥?因为这些成长起来的创业者和我们一样,也没管理过这么大的公司,需要时间学习、试错、改变,每次尝试都可能带来新的问题和新的错误,即使前面已经是康庄大道,因为人多,他们也必须在平坦的道路上曲折前行。

遇到问题,解决问题,优化产品,完善制度,这个过程基本上是永无止境的,所以问题永远存在,解决了老问题,迎来了新问题,周而复始,自动调节。公司的文化有问题,员工就会离开,产品有问题,用户就会离开。等一切重新走上正轨是,新的员工和新的用户就会加入进来……

一直有问题怎么办?公司就倒闭了呗。没什么公司永远屹立于浪潮之巅!

根本就没什么完美的或接近完美的公司,憋找了。我们能做的就是:「不要抱怨,不要哀鸣,不要愤怒,默默擦亮手里的武器,准备下一次的战斗」,无论是在这里,还是在那里!

关于钱和理想

IMG_7499

今天发现我订阅的大部分公众号都开始写自我检讨了,也不知道他们2015年到底做错了什么。

我深刻反省了5秒钟,发现自己今年做得非常好,堪称完美,没什么可检讨的。不自信,跑到朋友圈问了一下,我司产品总监刘炯回复:你的人生是完美的,不需要检讨。

看吧,英雄所见略同!

非常累,不想写东西。发布会前后这几天是我们团队最紧张的日子,一级战备,每个人刀出鞘,箭上弦,不达目的枉少年……好吧,中年。每个人都轻抚着雪亮的刀锋,蹑手蹑脚,四处巡视,bug 看见一只,砍死一只。用户上来了,分流、限流,排队处理,有条不紊,交易了,准备订单,付钱了,准备发货,退钱了,取消订单……

发布会终于结束了,气质优雅的 T2 和重量级的老罗终于在年前稍事消停,我们也松了口气,暂时不用再去找寻别的什么了,2015年岁末的这场战斗,算是赢了吧。不完美,但也没有大的纰漏,就像你我的生活一样。

2015年1月,去了趟硅谷,见了次老罗,差不多奠定了今年的人生基调。之前7年,我的生活就像一艘行驶在江面上的船,稳定,坚决,在平缓的江面上缓步航行,今年突然闯进了一个入海口,江面变成海面,风暴,激流,险滩,迎面而来,生活变得波澜壮阔,我的世界里突然开启了很多扇门。很多人年过四十开始缅怀往事,追忆似水年华,畅想退休风景,我却迎来了强敌环伺,横刀立马的格局,这是一种不幸,也是一种幸运。

MacTalk 的成熟与坚持,锤子科技的灵动和坚韧,让我认识了更多优秀的人和美好的事物。我收获了十几万的读者,感谢你们的不离不弃;头上顶了一个沉重而难以管理的老板,挑战重重;最重要的是,我加入到了一个活力四射的年轻团队:锤子科技的云平台。我们负责了锤子科技的官网、电商、云平台、内部运营系统、iOS/Mac 软件等,我们常常并行数十个项目,我们与全公司各种部门进行协作,我们在发布会上线的最后一刻完成产品经理变更的需求,这是一群在刀尖上跳舞的程序员,每个人都充满斗志,年轻,腰间挂着两颗滚烫的肾。和他们在一起,我仿佛也变得年轻了。

总有一天,我要让世界知道,他们每一个人的故事!

锤子科技是个有野心的公司,无论现在有多少劫难和险阻,无论是自己造成的,还是外界带来的,但是其野蛮生长的劲头是在骨子里的,这一点一直没有变,我们只是需要更成熟,更稳健,更规范,更完整,更决绝。2016年,希望能给大家带来更加趋近完美的产品。

今天是2015年最后一天,把最后的感谢献给我的家人,我在你们身边得到了最好的照顾和关怀,没有你们,我将一事无成!

最后,回答一个关于钱和理想的问题,曾经有个工程师在微信上问我,如何从为了钱而编程进化到为了理想编程。我的回复是,先把钱挣够了,就可以为理想编程了。

初入职场,最重要的事就是提升自己的能力,而不是去做自己喜欢的事情,这个阶段钱能够养活自己就行。等你到了技能等身、拔剑四顾的阶段,尽快把这些技能转化成银元,这个阶段,不要对自己说,钱我看的很淡。照顾好自己,照顾好家人,为他们提供更好的生活条件才是你应该做的事情。等财富稍微自由一些,你会突然发现,世界变得更加广阔,你的很多顾虑、担心、畏缩消失不见了,这时候,就到了为理想编程的时候!

所以,能多挣一点就多挣一点。

祝大家新年快乐!

iOS 9 的字体及其他

2015 年 9 月 9 日,苹果发布了一系列新产品,同时对开发者和众测用户开放了 iOS 9 GM Candidate 版的下载。按照苹果的惯例,除非有重大 bug,否则 GM 版基本上就是最终发布的正式版,所以我也乐得安心下载,并通过 iTunes 的「Option + 检查更新」方式升级了系统。一般情况下,这种升级方式都是安全的,稳妥的,健康的,但也不排除出现问题的可能性,比如你人品不好……

冯老师有一次通过这种方式升级的时候,咣的一声就白苹果了,于是彻底重新恢复,并丢失了一周的数据。从此我对冯老师的为人有了新的认识。另外,在我刚刚升级了9.0GM版本的时候,冯老师悍然把 iPhone 6 升级到了9.1。对于这个在9.0还未正式发布的时候就敢无所畏惧挑战 9.1的汉子,我暗挑大拇指,佩服!然后冯老师咣的一声就不能用微信了,然后就降级了。

早知今日,何必当初,对吧?

iOS 比 OS X 的更新速度快得多,至少没有苹果「重新定义的一分钟」。经过短暂的白苹果界面之后,简单设置,你的系统已经升级到 iOS9了,那个万年不变的主屏幕界面简直是……宛若初见!根本就没什么变化嘛,难道被冯老师、二爷和三表弟骗了?不能啊,以前都是我骗他们的。仔细看了看,我终于见到了这个星球上最为性感和让人着迷(你违反广告法了!有本事去告我啊)的字体:San Francisco 和苹方。

好,今天我们主要来说说字体。

虽然我一直靠技术安身立命行走江湖,但内心柔软,和纯粹的铁面程序员(只认代码不认人)相比,我略显文艺,对优秀的设计交互、简洁的字体排版一直情有独钟,难以自拔。识字以来,我的大部分闲暇时间都花在阅读上了,纸版的、电子的、电子墨水的、只有墨水的,不一而足,读得多了,你自然会关注字体。

在这个信息化的时代,传播最为广泛的,不是音频,不是视频,不是图片,而是文字。无论身处何处,文字都如影随形,在你身边流淌,而字体可以赋予文字声音和感觉。你每天读到文字,看到字体,不同的屏幕,不同的设备会显现出大大小小的文字和字体,有些会让你感到优雅,体味愉悦,感受性感,有些则会让你丧失阅读的兴趣。可以说字体给了文字各种可能性。很多喜欢使用 Mac 和 iPhone 的朋友也会和我一样,最初是被 iOS 和 OS X 的字体吸引吧。

这一次,苹果推出的是 San Francisco 字体和专为中文系统设计的苹方字体。据说是「苹果公司在近20年来设计的第一款新字体」。在升级了新系统之后,我觉得这个字体是成功的、符合人民群众审美的。由于全新的系统字体,我甚至觉得,几乎每一款 App,都有了一个全新的面孔和温暖的名字。是的,就是辣么神奇!

San Francisco 是一种简洁的无衬线字体,最初应用于 Apple Watch 38mm 和 42mm 屏幕上,清晰、柔和和高可读性是 San Francisco 最为鲜明的特点,这种字体让你在狭小的 Apple Watch 屏幕上依然可以毫不费力的攫取信息。San Francisco 字体分为两种,一种是 SF,一种是 SF Compact,Apple Watch 用的是后者,也就是压缩版,最新发布的 iOS 9和 OS X 10.11 都采用了 SF。对应的中文字体就是苹果称之为更加地道的「苹方」。

屏幕快照 2015-09-15 下午11.17.27

SF 和苹方是专门针对视网膜屏幕设计的字体,读来清爽怡人,痛快淋漓,高端大气上档次,低调奢华有内涵……好吧,由于理不屈而词穷,我很难用语言描述这两款字体,把截屏发给以辞藻华丽著称于世的二爷鉴书看,伊也只是发出嗬嗬的声响,最后艰难吐出了两个字:「性感」。苹方在字形和风格上应该介于冬青黑体和兰亭黑之间,字体圆润饱满,「完全去除喇叭口和原系统字体中令人诟病的刺眼起笔,同时保持合适的中宫和字面(1)」,让人百看不厌。同时,SF 字体支持 iOS 的 Dynamic Type 动态字体调节技术,能够根据字号动态调整字间距以及字体高度,简直是设计师和程序员的福音!

对于很多无视字体的普通用户来说,他们会发出「这不就是黑体吗」的喃喃自语!但是,多看一会,我相信这些用户同样能感受到阅读和字体带来的优雅体验。即使用户很难意识到,但任何细微的改变都会给阅读体验带来本质的影响,这是设计师和程序员的职责和使命。

好的设计就像空气,对于用户来说可能是透明的,无法觉察的,只有失去时才会追悔莫及。要珍惜!

可以说新字体是我最喜欢的 iOS 9 特性之一。等大家正式升级之后,可以细细体味,据说就在今晚。

iOS 9 的这次更新有很多功能改进,具体可以参考:http://www.apple.com/cn/ios/whats-new/ ,我会在后续的文章中谈几个官网少有提及的,但我觉得有趣又有用的功能吧。

另外,大部分人在升级了 iOS 9 之后发现卡顿,确实是这样,那是因为新系统安装后要做各种初始化,建立索引。用一段时间后你就会发现,iOS 9 流畅的不像话。

有时候我们只是需要一点耐心,而不是无知者无畏。

祝各位升级顺利!

每个人都该懂点设计

SS

就像编程,设计需要天赋和品味。如果你没有,去多读点书吧,像我一样。

锤子科技是一家非常强调设计和用户体验的公司,披着硬件的外衣,注重软件品质和互联网服务。很多人以为,在锤子科技工作,设计师和产品经理的地位是至高无上的,他们身着华服,或脚踏五彩祥云,或骑了高头骏马,在天空和高山上俯视茫茫大地,思索,探究设计领域的尽头和用户体验的极致……间或扔下一些需求和设计碎片,程序员们欣喜若狂的跑过去捡起来,屁颠屁颠的去实现了……

其实骑在马上的是你们罗哥!

我们常常看到这样一些的对话场景(文学创作别当真啊)……

老罗和产品经理:

罗:你不能这样了
产品:是,我真的不能这样了
罗:你得这样吧!
产品:嗯,确实得这样

老罗和设计师的对话:

罗:这里的打光不够,这里要描个边儿
设计:好的
罗:安卓图标和 Finder 图标的结合度不够完美
设计:-_-#,那我再想想吧

老罗和程序员的对话:

罗:这部分功能实现需要多长时间?
程序:三周
罗:这个效果能实现吗?
程序:……目前不能
罗:产品和设计过来一下,你看看人家说做不了你们设计个啥?

之所以出现这种情况,是因为老罗在很多人以为他是个英语教师或相声演员的时候,已经大踏步的抛开过往,跨越边界,绝尘而去。由于个人的天赋和品味,他自己在用户体验和设计领域形成了一套原则和观点。虽然无法绘制出精美的作品,但是他知道,怎么做可能是最好的。最要命的是,大部分时候,他是对的。当然,老罗还没有神到碾压程序员的地步。由于年龄和精力的原因,他没有时间再去了解操作系统、数据结构、编程语言和各种技术框架和引擎,很早的时候还会让程序员写一段技术语言放到微博上去调侃,现在这个时间也没有了。

在技术领域,他意识到,自己无法做到庖丁解牛,事无巨细,于是他选择了相信技术人员。都是一群老实孩子,不相信你们还能相信谁呢?

于是,我们松了一口气,技术人员在锤子科技的处境,是相对宽松的。我们最大的压力是,面对公司快速成长的业务,如果让现有的团队能力,快速提升,让人、技术和团队,能够为公司和用户提供最大的保障和最好的服务。

但是,如果一个技术人员,对产品和设计毫无感觉,不仅难以理解需求,也无法做出近乎完美的产品,同时,你还会受到降维攻击。比如有一天,我们在开例会的时候讨论产品,我指着一个设计元素说,这里的厚度减少一些,是否更好呢?罗哥扭头看了我一眼说,池老,这是工业设计语言,不是编程语言……

当时,我感觉受到了1000点伤害,降血5格。大漠孤烟直,长河落日圆。那个时候我就知道,每个人都该懂点设计!你不专业一点,人家怎么和你交流呢?在现代社会,设计和视觉传播已经深深的印入了很多人的脑海,缺乏优秀的设计和交互体验的产品,注定无法具备长久的生命力。

一直以来我个人对产品和设计充满兴趣,只不过之前做平台或架构产品,设计方面的要求没有那么强烈,虽然自己会去通过阅读「设计心理学」「写给大家看的设计书」「Web表单设计」「设计的觉醒」等设计相关的书籍来提升自己的设计素养,但知之甚浅。

对于一名黑客和程序员来说,学习设计最痛苦的是,很多事情无法量化,写惯了代码,算法和引擎的程序员们,难以理解一个设计作品是如何完成。事实上,设计师也无法描述他们自己的创作过程。比如你去问方迟是如何设计出 Smartisan OS 里那些充满情感和灵性的界面和图标的,萌神一般会挠挠头发说,哦,设计呢最重要的部分是隐喻,有时也是最难的。然后转身就躲进他的Retina 5k iMac 里去了。这些设计师们,他们只是充满天赋和设计的兴趣,不断摸索和实践,然后开创出自己独特的设计风格。

设计师的产品,是最好的自我表达,他们用自己的想法创造出一个井然有序的世界,并将其展示给大家,赞同的人自然会聚合而来,不赞同的,就像你身边的风,来去自如,留也无法留住。

好在设计和任何一个领域一样,同样存在一些规则和框架,比如排版、留白、构图、色彩、字体等。如果我们了解了这些知识,即使不能自己设计出精美的作品,但至少能够理解和欣赏这些设计,最终能够参与其中。想掌握这些规则、框架,没有别的办法,就是读书和实践,并与那些设计天才们厮混在一起。

除了之前读的那些书,最近在读的两本「黑客与设计」「日本的八个审美意识」都是不错的设计读物。同时我还请教了另一位程序员兼设计师,他的名字叫做 Felix,曲径的创始人。他对自己的介绍是:

Felix is a designer, product manager and Rails developer. Felix has a strong passion and enthusiasm in design, Zen, minimalism, and Japanese aesthetics in general.

可见这是一位充满了设计、灵性和禅意的程序员,当我提出让他推荐几本书的要求时,他想了想回复我,我需要写一篇文章,于是就有了这篇「推荐几本设计相关的书」。

网址:http://dingyu.me

他在文中推荐了《Zen of Palm》、《知日 断舍离》、《知日 日本禅》和《Japanese Design》,并逐一做了说明,文中间或流露出自己的设计体验和感受,读来收获甚多。

以文中的一首禅意十足诗歌做个结尾吧:

春日傍晚
落日西斜
远海的岛屿渐渐看不见了
忽然岛上亮起了一盏盏灯火
指明了它们的所在
— 正冈子规

程序员很穷

bug 修完了吗

程序员很穷,他们要么是显得很穷,要么是真的很穷。

前几天一位做市场的同事跑过来问,池老师,我有一位朋友,快30了,想转行写程序,您觉得有戏吗?我看了看满目疮痍的他说,如果是你就没戏。

30多岁转行做程序员当然可行,毕竟历史上存在一些大器晚成的案例,这些经过渲染和修饰的案例给在时间长河中苦苦挣扎的人们带来些许希望的火光,但那毕竟是火光,一阵风来过,也许就灭了。如果你真的热爱技术和编程,渴望通过自己的代码实现别人的想法,或自己的想法,为世界带来更美好的产品,那么任何时候学习编程都不晚,编程给你带来的好处绝不仅仅限于你的工作领域,关于这一点,你看看李笑来老师就可以了,有时候我觉得,他简直是个专业的程序员,兼产品经理。但是,如果你只是觉得程序员挣钱容易,那还是算了吧,因为程序员不轻松、不浪漫、不被人理解,也许,还很穷。

很多人羡慕程序员工作没几年就可以拿着看起来不错的薪水,但是,如果他们在未来的几年内技术水平没有突破性的提升,或者缺乏一点灵性和品味,那么可能在未来很长一段时间内,他们都会保持这个薪资水平,直到有一天,你不得不接受,比自己小五岁或十岁的程序员,也拿到了和自己一样薪酬。不是经常说程序员年薪百万吗?是啊,那是行业里的顶级程序员,他们为了让自己的水准达到这样的要求,经常要付出十年以上刻苦努力和练习,初春,寒冬,清晨,深夜,当你们去欧洲浪的时候,当你们去卡拉 OK 唱的时候,他们都在不停的 Practice,Practice……

Continue reading