《闪电式开发》PART 4 程序设计师创业遇到的十一个误区 笔记

《闪电式开发》PART 4 程序设计师创业遇到的十一个误区 笔记

我在看《闪电式开发》这本书前,根本不知道世界上存在这么牛的xdite的存在,之所以啃下这本书,就是因为这个Part4。我本人曾经有很长时间做程序设计师的阶段,然后思维渐渐的,要么被同事,要么被各种网文固化了,在创业还未开始,就已经命中诸多思维误区,

xdite给我们列举了11条误区,感觉是字字珠玑,对于打算告别程序生涯,进入创业圈的朋友来说,这些都是鲜活的避坑条款,请记下来吧。

创业其实是一场忘记过去自己,重新学习的过程

  • 反常识:程序码品质并不重要
    • 创业项目不需要太注重code的品质,赶快上线才是王道”。
    • 创业刚开始就不需要注重扩展问题,code quality不重要”。
    • 所谓的“不需要注重扩展”,只是我的一个“选择”。
    • 软件开发所谓最佳实务,是稳定后的最佳选择。而不是创业时的最佳选择。
  • 程序员会把之前上班时学到的best practice,带到创业起步的观念里面。我认为这是最恐怖的一件事情
    • 因为程序设计是一个特殊的工作种类。
      • 程序设计会在公司出现的阶段,通常是公司已经“稳定”以后,才会被雇用。
      • 甚至他们的工作,就是被找来重新架构那些混乱的“生意逻辑”与“不堪使用的程序代码”。
    • 程序设计师,主要的工作职责是:
      • 将重复的过程自动化。
      • 将系统优化再优化。
      • 让程序码结构干净,可扩展。
  • 创业从0到1这个阶段,时间资源很宝贵。
    • 一开始就ALL IN在一个很容易失败的选项。有很高的概率会阵亡。
    • 如果幸运的在创业时遇到一个风口,如果你的项目不在正确时间上线,这场游戏就会完全没有你的份。
    • 对于大多数人(甚至是100%)来说,有时候创业有点像是一场赌博。
    • 很可能你做的产品,只有你自己需要,但别人可能没有需求。
    • 又或者是你的产品,可以有幸扩大,有很大的族群使用。
    • 但在大多数的情况下,这件事情很碰运气。
    • 我最常看到很多程序设计师创业失败的标准典型:“觉得自己做的产品这个很好,程序码也写得很漂亮,当初也花了许多时间筹备,但反复迭代六个月,最后还是无法运作。”
  • 事实上创业会成功的人,反而是那些不太会写程序码的创业家。
    • 或是懂得写程序码,却觉得创业一开始不需要写程序码的连续创业者。
    • 光是用Landing Page验证点子,就赚到一大堆钱。

第一误区:以为成功创业的程序,底层程序代码一定是干净的

  • Over Engineering(过度设计),我觉得这是会让程序设计师最惨的一个习惯。
  • 你很难看到程序设计或软件工程高手,最后成为成功的创业家”。
    • 这当中的差别,在于:
      • 成功的创业家,内心根本没有“干净的程序码架构”这个包袱。
      • 成功的创业家,反而是看到强大的市场需求,卷起袖子马上先干再说。
  • 很多程序设计都会有这样的想法:“我创业一定要按部就班,一切规划完美,然后执行上线。
  • 因为我老板就是创业时乱写东西,搞到后面很多地方都要打掉重练,让生意无法快速扩展。
  • 所以我自己创业,一定要吸收这样的教训。一开始就把程序码写好。”
  • 但是,我必须坦白说,这种事情是不可能存在的。

第二误区:预先解决不存在的问题,例如水平扩展

  • 水平扩展”这个词,有点像是程序设计界的春药,听到就容易高潮。
    • 软件工程界现在很流行一个buzzword:“微服务”(micro service)。
    • 指的是把每个功能,都拆成一个个封装完备的小服务,由小服务堆积成为大服务。
    • 用以追求效能上的扩展。
    • 绝大多数公司,都是加机器、加机器,死命撑,撑到有大神加入来救他们
  • 如果一开始务实点,直接用一个大的成熟框架开发,可能就不会有这样的问题:
    • 内部没有overhead,搭建迭代速度很快。
    • 框架通常够成熟,又开源。反而容易google,知道那边可能瓶颈最大,问题好解决。
    • 再不行,就直接把机器换到最大台,直接收工。
  • 创业的重点,真的不在于底层架构如何设计。
    • 预先pre-scale反而变得无法除错。
    • 反而是那些程序设计师不齿的一大包程序码架构,却是容易扩展的选项,要提升效能,用钱就能解决。
    • 钱也不是什么困难的事,一旦产品有了市场,就有了流量,有了流量就有钱。
    • 有业绩,就容易拉得到投资,到时候想请几个软件架构师,重构都行。
  • 很多程序设计师都非常热衷于这种过度架构Over Engineering。
    • 我必须再次强调,我个人不是反对程序设计。
    • 我自己以前还是个技术精湛的程序设计师。
    • 我只是想强调,过去我也曾被这些观念害得很惨。
  • 所以现在听到这些buzzword时,心里常觉得不以为然。
    • 很多事情,真的是必须要先踩过坑,才知道这有多痛。
    • 而多数程序设计,并不知道这些观念对创业来说,都是很毒的毒药。

第三误区:以为创业产品,需经完整规划流程上线,才会取得大成功

  • 第三个冤枉路,就是完整的流程。
    • 很多业界的朋友出来创业,都会有一个执念:希望自己规划的产品,有一条平整的道路,他们深信经过仔细规划,完美执行,产品就会取得巨大的成功。
      • 这种因果逻辑来自:业界厮杀很残酷,不是每个人都有机会赢。
      • 你一开始这场游戏,就会有人出来跟你竞争。
      • 一旦竞争开始,双方会员就会开始比较,然后开始迁移。
    • 当自己一有机会创业,能够100%掌控、规划、打造产品的时候,就想要一切规划的更加完美。去弥补“以前犯的错”。
    • 这也是很典型的“倒果为因”。
    • 我必须要说:“如果你的服务没有人要用。不是功能写得不够完善,就是单纯没有人要用而已”。
  • 没有人要用的原因,有几个:
    • 你可能切不到用户的痛点。
    • 别家的产品虽然bug很多,但是你的产品没有比他的好十倍。
    • 用户没有动机转换到你这里玩。并不是code规划是否完善的问题,而是其他的问题。
  • 创业最宝贵的资源其实是时间。
    • 如果创业者执着于把时间花在写出完整的规格,那么错过风口基本上是必然的事。
    • 创业其实是一场长途旅行,意外时常发生
  • 我在第二次创业后,意识到一件事:创业根本不是能预先规划的事情。
    • 创业,要做的其实只有尽量避免在路途当中别死掉就好了。
    • 最后到不到目的地,甚至都不是重点,重点是有没有享受这个过程。
    • 在过程中又学习到什么。
    • 很多人一开始Over Engineering,花太多准备功夫,还没走到中间,钱就烧完了。
    • 或是花了太久的时间,只在一个小镇打转。
    • 或是出发前,没有对一些意外做基础的小保险,路上踢到个小坑摔死了。
    • 创业路上,满满皆是这种高难度问题。
      • 但现有资源跟不上,唯一的解法只有不惜一切,用奇怪的低科技手段或者是暴力解决。
      • 就像前面有石头挡路,正常心智的程序设计会做的就是:大家围着石头,研讨用切割机,算力学原理,以损伤周遭最低程度之类的方式处理搬走这颗石头。想出最完美的解决方法。
      • 你知道创业家会怎么做吗?
        • 不要走这条路,绕过去!
        • 如果真要走这条路,用炸弹把石头炸掉,走过去。
        • 或者是去弄一个弹簧床,跳过去。
  • 创业家的的作法,简单粗暴,就是GET SHIT DONE。
    • 甚至极端一点,我认为在创业路上,任何一个状况,只要花上超过三天的方法去解决,就是蠢方法。
  • 创业没有办法被“规划”
    • 另外一个反常识是:多数创业当中遇到的挑战,没有办法预先规划解决。
    • 没办法规划一个月以后的事情,只能规划三天之内的事情。
    • 重点在于,当时那个生死存亡之际,没人使用你的服务,
    • 留不住目标使用者的注意力,瞬间就被竞争对手势头掩盖过去。
      • 没人用你的服务,程序写得再好也白做工。
        • 重点真的不在于程序写得有多好,而是在你怎么想出办法快速解决眼前的难题。
        • 有些程序设计很不习惯,创业公司为什么做产品没有规范,反而充满workaround以及政治不正确的作法,觉得很不正规。
  • 但是,这才是创业公司,每天真正面对残酷的状况。
  • 创业公司所有遇到的挑战都是都是动态生成,动态生成的挑战没办法预先规划解法。

第四误区:创业一开始没有钱,所以跑去接案,边接案边开发产品

  • 许多创业者创业的初衷其实很可笑,“我一身好本领,老板当初给我的薪水低估我的身价。凭什么老板赚走那么多的钱,我的功劳那么大,但是我并没有得到很合理的报酬。”
  • 创业应该没那么难,反正在写程序时都已经知道老板的Knowhow,只要出去开一个me too,跟他做一样的事情,甚至做得更好,一定可以比老板赚更多的钱。
  • 这是多数程序设计出来创业时,比较天真的想法。
  • 创业一开始,无论是谁都需要资本启动。但是创业一开始,我自己没有钱,身上只有技术。一开始我可以先帮别人写程序代工接案,赚到第一桶金或边接案边做产品。
  • 这是创业我走过最冤枉的一条路。
  • 所以每当听到软件工程师要创业,向我请教创业相关问题。我都会劝他们:别接案了。想创业去跟银行贷款一笔钱,直接去做你想要的产品,别绕一大圈。
  • 为了“想创业”而去创业。是一个完全错误的开始。
    • 而且接案是一个挺痛苦的行业。接案的坏处在于:
      • 接案的时候,就算你的产出是100分,业主也只会觉得这些产出是60分。做120分,业主觉得这刚好在他心目中也顶多是80分而已。但是,如果你做60分80分,他会觉得是20分。
      • 接案有淡季,有旺季。员工看你旺季很赚钱,但他却不知道淡季不赚钱。Billing hour很容易被知道价钱,他会觉得老板在billing hour上赚那么多钱,怎么都没有分员工。
      • 接案公司员工,也不喜欢自己反复做不同的新产品,他会觉得没有跟着产品共同成长累积。所以这些刚训练好的员工,在训练好能够独当一面的时候就走了,流失率很大。
    • 所以接案这个行业,本质上等于:
      • 只是卖时间
      • 帮别家公司训练工程师,自己的公司没有累积资产。
  • 行业有一个理论:就是如果你创业没有赚超过之前工作薪资的三倍,根本是赔钱的事情。所以我建议适合创业的状态,是你知道自己确定能做出什么有价值的产品,再出来开始。
  • 万一没有钱开始,第一笔资金又没人投资,就去跟银行借钱。
  • 接案这个方向是下下之选。

第五误区:错判风口的重要性,以为“风口上的猪”只是纯粹幸运

  • 创业怎么挑IDEA?
    • 后来我真的站过几次风口之后,我才发现风口上能飞的真不是猪,都是神人。
    • 因为风口里面被弄死的人,真是多到无法想像。在风口里,勉强站稳都很困难了,更何况是能稳稳飞上去的人。
  • 我几次比较成功的创业,都是飞在风口上。
    • 这些行业,完全不是当初我想做的事业。
    • 我只是在时机到的时候,发现有需求,站在那里做出来,然后就爆红了。
    • 去做比特币交易所,是我从小的愿望吗?怎么可能!
  • 第一次创业的软件工程师,经常好奇如何找到创业的IDEA?
    • 要做你热爱的事情,去解决领域里面没人解决的事。
    • 我之前当程序设计的时候,是没有人生的。没有人生该怎么办?当然是寻找我的人生。
    • 我后来真的开始赚钱,是开Rails补习班。
      • 这是我另外一段人生的开始。我因为很会写程序码,所以我有办法教人写程序,后来我甚至擅长教人写程序。
      • 我对教学开始有热忱之后,花了很多时间改善教学效率,并且有办法做到大规模水平扩展。
    • 这就是我新的人生。
  • 程序设计的世界是个很单一的世界。
    • 我以前思考很单一、单纯,甚至很薄弱、很狭隘、很可笑,就像现在有时候我也会觉得工程师的视角很狭隘一样。
    • 在这个世界上,要能够真正赚到钱,唯一的途径就是贡献自己的社会价值。这件事必须要拥抱现实,拥抱人生才有办法做到。
  • 工程师的价值观与正常人的人生其实不太一样。
    • 真实的世界是“很脏的”。我后来会找到创业的方向,赚钱的方向,也是因为我重新找到人生。
  • 如果你创业的策略是,看别人做什么赚了大钱,接着想办法复制对方。
    • 绝大多数情况下,这是个没有用的策略。程序设计师虽然具备自动化的技术,但创业是靠生意里面的诸多细节。
    • 单凭程序去创业,不可能会成功。
  • 创业能够赚到钱的题目,是社会上压力很大但尚未被解决的问题。
  • 而所谓“风口”指的就是压力很大的领域;压力很大指的是“需求存在”但“社会基础建设跟不上”。

第六误区:以为天使投资是慈善事业

  • 创业取得第一笔启动资金的方式有很多种。其中一种类型是投资。
  • 一般人对于“天使投资”的粗浅认知是这样的:
    • 看到idea以及人对了,就爽快投资,也不会做太复杂的调查。
    • 不干涉公司经营。
  • 所谓“天使投资”并不是善心投资,而是投资策略的一种,本质上是“早期项目投资”。
    • 早期项目投资的策略是
      • 假设这位创业投资者,手上有一千万,一次投一百间,每间投资十万,
      • 在这当中有一百间公司,有一间公司这笔投资赚了一亿,也就是中了一千倍。
      • 那么这一千万的报酬率,最后就是赚10倍。
      • 虽然有99 间公司失败,但无所谓,因为新创公司非常容易失败。
      • 有人统计过,五年之内,只有1%的创业公司能够存活下来。
    • 早期投资人要增加胜率的方式,就是一次投资很多间公司,增加投资成功的概率。
    • 因为在这个阶段,公司实在太容易失败,如果增加太多micro manage,成功概率未必也会显著提升。
    • 天使投资人的投资策略就是直接在风口上狂投100间,只要其中一间报酬1000倍。整体投资就有10倍回收。
    • A、B、C、D轮,只是倍数大小的不同。
    • 如果你想承担较小的风险,就投越后阶段的轮。
    • 当然,后面公司生存下来的概率越大,但是投资报酬率也相对比较低。
  • 天使投资的“天使”不是善心的“天使”。
    • 很多创业者误会了这一点。
    • 天使投资只是一种投资的策略。
    • VC的世界也是人吃人。
  • 如果创业者能够从投资者的逻辑角度重新审视自己的作品,会看到很不一样的世界。
    • YC有一门课,叫做YC创业公司投资者学校,非常推荐大家去看。从投资者的逻辑倒推回去思考,
    • 你反而会知道要做什么才会有人投资,更容易水平扩展。
    • 如果大家都在拿资本玩的时候,你没有取得资本跟着用钱玩,那你的成功概率可能就会小一些。
    • 这就是为什么我会劝朋友,创业尽量选择风口题目。
    • 天使投资的题目,应该是说赌“不是零就是一千”,
      • 如果创业者目标只有三倍。这是天使投资,我没有兴趣花那么大的风险,去赌投资报酬率只有三的题目;
      • 如果只有三,资本要出场,非常困难。
      • 我完全搞不懂这是什么样的融资策略,最后也没有投这个项目。

我觉得创业者,如果创业想要募资,必须先搞清楚募资界的生态链,不然很容易表错情,很容易一直碰壁或陷在奇怪的循环里。

第七误区:眼睛只盯着产品,没看着市场

  • 一个好产品,但是没有分销能力,也没有现金流。
  • 通常看起来,好像是只有程序设计会做出这种类型的产品。
  • 程序设计常会认为做出一个好产品,就是一切!好产品,业绩就会自动成长。
  • 《Blitzscaling,闪电式扩张》这本书中,特别指出这个通病。
    • 这本书的观点认为要创业成功,不只要做一个能够product market fit的产品,更要考虑到这个产品怎么样做distribution。
    • 要打的市场有多大?
    • 还要观察持续运营的能力、毛利、频次,这些指标要够高。
  • 创业也是一样,我只是在某些关卡玩过太多遍。
    • 例如,前一阵子我玩Two Points Hospital,这个游戏我玩了30遍。
    • 玩到最后医院不管怎么盖都会赚钱。
    • 我不是医院经营大神,我只是玩30遍。
  • 所以那些文章,不是嘲笑或不屑,而是我以前曾死在这个关卡过。
  • 我只是好心说出来:“在这个关卡,用这样的方式玩,死亡概率接近100%”。

第八误区:以为技术高墙是唯一标准,快速招募人员至上,价值观不重要

  • 价值观,完全不能妥协!
    • 欧美的团队很强调招募人必须看重价值观,认为价值观远胜过一切,宁愿速度慢也不要招募到价值观不一致的人。
    • 以前我还在网络公司时,技术团队在招人,通常看中的是这个人的技术栈(过去学过的整套技术)。
      • 当一个团队里面,同事们彼此之间价值观不相容的时候,就会产生冲突与矛盾。
      • 小则做事不能协调,大则整天内斗,甚至为了伤害同事不惜搞烂公司。
      • 所以价值观是完全不能妥协的事情。
  • “价值观”的意思是:你为什么想要在这间公司,在这间公司里面你做人处事的基本原则,你平时自己做人处事的原则。
  • 你平时遇到紧急的状况,你会做什么样的决断。
  • 在中国创业时,我新的团队成员,背景都是“全栈营”同学。
    • 全栈营同学,价值观都一致。
    • 像我的同事,当年全栈营的同学,
      • 现在做产品的功力都超级厉害,
      • UI/UX做的超级好,
      • 风险控管超级仔细,
      • 文案写得比我好,
      • 每个人都比我强。
  • 再一次强调,价值观,真的是最重要的事!

人都会成长,也许同事现在做事情比较慢,可是价值观与我们一样,他们会成长。

第九误区:以为技术能解决“生意上的难题”

  • 在传统产品开发流程,许多团队是使用瀑布式开发。
    • 瀑布式开发的意思就是先详尽写好规格,再进行开发。
    • 但是这样的开发流程很耗费时间,
    • 也很容易做出与现实需求差异很远的产品。
  • 所以程序开发界对这件事情,进行了改革。
    • 宣导我们应该使用“敏捷开发”,
    • 舍弃完整的规格,
    • 并用轻便的用户故事User Story替代,
    • 大幅提升开发效率。
  • 使用User Story出现了另外一个问题,
    • 就是User Story通常是程序设计自己决定,程序设计师有时候就会自high,
    • 写了一大堆User Story,却不是销售部门的需求,
    • 而是程序设计师觉得自己需要的,还很开心执行下去。
  • 我以前还刚接触到敏捷时,觉得SCRUM这个框架也很厉害,但觉得这个方式怪怪的。
    • SCRUM用点数扑克牌,团队成员用点数扑克牌大家比较工时权重分数计算决定。
    • 一个功能应不应该排入优先顺序,应该是市场需求决定吧。
    • 怎么会是程序设计用扑克牌比较工时呢?
  • 后来实际创业,才发现这种开发方法,跟温室真空开发,实在没两样。
  • 再来,Growth Hack的兴起,让一些程序设计认为在网站、App里面埋点,就能做成长。
    • 埋点用资料辅助行销决策,的确是这套方法论的基础。
    • 但不表示可以不听使用者feedback,没办法只用测量以及改 UI 接口就能让营业额上升。

最终取决有没有打对市场,打对痛点。

第十误区:以为产品好就是一切,忽略现在已经进入闪电战的时代

  • Paul Graham曾经写过一篇经典的论文,叫Do things don’t scale,这让很多人对创业做产品有错误印象。
  • Do things don’t scale的步骤是:
    • Step 1: Do things that don’t scale.
    • Step 2: Achieve scale.
    • Step 3: Do things that scale.
  • 但BlitzScaling指出,现在的战争应该要这样打:
    • Step 1: Do things that don’t scale.
    • Step 2: Reach the next stage of blitzscaling.
    • Step 3: Figure out how to do one set of things that scale, while somehow also finding a way to do a completely different set of things that don’t scale.
    • Step 4: Reach the next stage of blitzscaling.
    • Step 5: Repeat over and over until you reach complete market dominance.
  • 因为Do Things Don’t scale这个理论太经典。导致硅谷一大堆创业公司,把精力花在精进产品之上,认为把产品反复修改到够好,就能到达扩展阶段。
  • 在阅读《Blitzscaling》时,我就意识到现在战争的速度与血腥速度,时代已经不同以往。
  • 硅谷最新的Growth Hack,现在已经不谈AARRR,而在讲如何搭建Product上的 Viral Loop,如何利用 Viral Loop快速占满管道。

对我来说这点真是很大的教训。

第十一误区:我们一开始就能打造一个一劳永逸的产品

  • 一开始就想把最终产品写到位。但这是创业最常发生的状况。
    • 你没办法一次写到位。甚至pre-architecture还会害死自己。
  • 很多系统都是一再重写reinvent。
    • 我以前很羡慕别人的服务有强大完整的风险控制系统。
    • 以为别人都是找来大师开发出来的。
    • 当自己在开风险控制系统时,才发现是血泪去堆出系统规则。
    • 一条一条暴力补上去。再一次性重构成一个架构稳固的系统。
  • 有工程师朋友问过我怎么规划1.1版本的产品?
    • 我回答如果产品有“1.1”版,还需要规划,那这个产品基本上没有量。
    • 因为能够做的起来的产品版号是1.0,2.0,4.0 这样大跃进得跳。
    • 每个礼拜开发的版本号不用规划,真实客户feedback会占据接下来你开发的目标,活生生的startup真实状况就是这样。
    • 每天有做不完的事,灭不完的火。
    • 但这不是哪个startup管理不好,所以很多火。
    • 而是所有startup本身都是着火的公司。
  • 创业团队的心力重点,在于灭掉眼前会让公司当场死亡的大火。
    • 如果一个成员抱怨他在的创业公司一天到晚都在失火,没有制度。不是这间公司不好,而是他不应该待在这个生态里面。
    • 他应该待在制度成熟稳定不需要变化的大公司里,而不是出现在创业公司里。
    • 所谓的火箭,指的是充满需要扑灭的火,而不是冷气温度适宜的飞机头等舱。
  • 我过去学到的一切,都是错的
    • 我2012年创业,在创业之前,我花了四年的时间,把技术练得顶尖。
    • 后面又我花六年的时间,逐渐把我学过的engineering知识都忘掉。
    • 所以今天我才可以站在这里。

我希望这一章可以让大家知道,不只方法论重要,忘掉过去自己的一切,更重要。