几年前,一位首次创业的创业者在融天使轮之前找我做技术咨询。详细了解之后,我发现了他在技术选择上犯了不少低级错误。
例如他的核心技术人员在选择技术框架时,不是按照公司的产品需求选择,而是按照喜好选择。他的技术路线图也过于乐观(同时建立Web端和移动端),这些都与他的业务不匹配。
早期创业公司在技术选择上与大型公司不同,它不应倾向于过早建立全面、完备的系统,而应偏向于产生短期和中期的生产力,并方便快速迭代,讲求实用主义。
本文将主要讨论非技术创业的早期创业公司,怎么避免踏进那些致命的技术陷阱。
1.过早扩展
这是早期创业公司最容易犯的技术错误,指的是在公司还小,产品和业务还不完善时,就把时间和资源用于技术上的大规模构建。
在达到产品市场契合之前就进行大规模扩展是浪费技术资源,并极有可能对早期创业公司造成破坏性影响。因为这些创业公司通常只有较少的资金,工程师的数量也不够。
既然过早扩展对于早期创业公司有如此大的破坏性,为何它仍然经常发生?
首先,扩展在一定程度上可以解决问题,并对技术团队有吸引力。Twitter的初始版本的程序其实相对简单,但随着用户量的大幅增加,大量的数据涌入,造成了Twitter较为频繁的卡顿甚至停机。解决这种巨大的挑战对于技术团队的成员来说充满着吸引力,但这种吸引力正使得技术团队更倾向于过早扩展。
其次是工程师对于完美的一种追求,很多在大型科技公司工作过的工程师,已经习惯了公司拥有的完备系统,很难忍受自己欠下“技术债务”。同时他们在技术路线图上会倾向于围绕未来的需求进行超规模的优化和提前准备。于是在公司的用户量还少,产品功能还较简单时,就为了那些还不存在的用户以及还没有完善的业务需求提前做准备,而不是为现在已经拥有的用户完善功能,改善体验。
无论是公司创始人,还是技术、产品团队的领导者和成员,都应该明确一个原则,要围绕着解决用户(客户)的需求来工作。
2.使用过于新的,未经验证的技术
加入创业公司的工程师通常都具有较强的创新能力和创新意愿。他们希望使用那些最新的技术,构建一些非常酷的功能,这些技术可能包括新的语言、工具等等。这种策略可能确实会在短期内奏效,例如会提升一些产品易用性或运行速度。但是最新的技术通常代表着未经验证,尽管它们看起来能提供一些吸引人的特性,但我们很难预测它有哪些缺陷,在什么地方会出现问题。
新的技术同时代表着技术生态的不完善和资源的缺乏,因为并没有很多人在用,遇到了问题没有现成的解决办法,这无疑增加了工程师的工作难度。例如要实现同样的功能,使用相对成熟的技术可能较快完成,遇到问题解决起来也有前例可依,可以花更多的时间和资源到完善产品和功能上;使用新的技术需要花更多时间,遇到问题也需要工程师们自行摸索解决的方法,花在功能完善上的资源和时间更少,还有可能在将来埋下隐患。
如果是技术出身的创始人,对于这种情况当然有很好的解决方法,对于非技术出身的创始人,选择一个靠谱的技术合伙人就相当重要。在管理团队的层面,明确用户和客户优先的原则,明确在保持技术优势的同时为产品和功能服务的策略,然后与技术团队的工程师们同步这些原则和策略,确保公司的资源不因为选错技术路线而被浪费。
3.雇佣不适合的工程师
创业公司在招聘工程师时最容易犯的一个错误就是倾向于寻找“摇滚明星”式的员工,他们拥有光鲜的学历,在大公司有过较高的职位和光鲜履历。这样的工程师对于融资也许有好处,投资人都倾向于投明星团队。
但创始人应该务实的选择合适的工程师,避免雇佣过多不适合早期创业公司的工程师,这些工程师包括但不限于“摇滚明星”,他们可能会对公司带来各种各样的风险。
科技巨头出身的工程师习惯于扩展系统,并且会对初创期那些还不“完美”的技术或代码感到不舒服,他们也没有太多直接接触用户的经验。
计算机科学家会认为早期创业公司使用的技术过于简单,从而感到厌倦,也会倾向于过度技术化,而不是围绕用户需求。
初级的工程师通常会被过于新的技术吸引,却又没有足够的实力帮助创业公司构建系统。
早期创业公司招聘非常考验创始人的功力,他需要超越学历和花哨的简历,去寻找最适合自己项目的工程师。这些工程师应该对公司的愿景和目标感到兴奋,即使在构建产品的过程中遇到困难,也能坚持。他们要具有最小可行性产品(MVP)的思维模式,能适应不断迭代。他们也应该拥有足够的经验和能力,既要会维护系统,也要会构建系统。
在理念和态度上,创业公司的工程师应该把技术视为解决问题的手段,他们会首先考虑用户的需求,然后再考虑怎么用技术来解决问题,而不是先决定用什么新技术,然后再思考这些技术可以解决什么问题。只具有技术思维的工程师可能并不适合创业公司,他们应该同时具有对客户的同理心和解决问题的灵感和直觉。
另一个对创始人的提醒:在创业的每一个阶段,创业公司对工程师的需求是不同的,一个非常适合5人小团队的工程师,在团队规模扩张到30或50人时可能会表现糟糕。创始人和公司的技术管理者们要时刻关注自己的技术团队,保证每一个阶段都有相对应的人员配置。
4.产品和管理问题
早期创业公司的创始人会倾向于过度乐观,当然这要分两面看,它可以让创始人拥有克服困难的勇气和韧性,也可能导致他高估自己和团队的能力,以过快的节奏招人和融资,最后因为业务不成熟,钱烧完了而死掉。
这种过于乐观的态度也会感染工程团队,要么让他们过于激进,要么就迷茫。创始人应该做的是帮助他们明确阶段性的目标和愿景,并且帮大家降降温。
对于一些技术背景不强的创始团队,经常寻求外部的技术咨询来提供公司技术路线上的指导,比如文首介绍的公司就咨询了我。但创始人们真的要仔细分辨这些“专家”,一个只在特定的大公司工作过的人,花几个小时了解你的新创业公司,可能他并不能提出什么有意义的建议。
最后,尽管本文之前一直在强调技术要为产品服务,要为客户服务,但技术对于创业公司的重要性是毋庸置疑的,创始团队要充分认识到工程师应该是任何重大产品决策的关键组成部分,要让一线的工程师也有发言权。例如谷歌哪怕已经是巨头,他的创始人也会定期与一线工程师们面对面交流,让他们知道公司正在做什么,并听取他们对于公司业务和产品的反馈,这可能也是谷歌能始终保持较为旺盛的创新力的原因之一。