本文为翻译的文章,作者Joel Abrahamsson,原文:
http://joelabrahamsson.com/lessons-learned-from-a-small-tech-startup/

从小型科技创业公司学到的经验教训

创办新公司并开发新产品有很多潜在的陷阱。下面是我从启动、运营并出售一个由三位程序员创办的公司中所学到的最重要的一些事情。

上周,我在斯德哥尔摩的DevSum大会上发表演讲。我演讲的主题是:我与Marcus Granström, Henrik Lindström创办的200OK AB公司的故事,以及我从那次冒险中所学到的一些经验教训。

在那次演讲中,我首先谈及了公司从头到尾的故事,或者说从想法到被收购的故事。然后讲述了我从中学到的一些经验教训。在这篇文章中我略过故事的细节,重点谈一谈经验教训。我友善地要求读者(也就是你)记住,这纯粹是基于我个人的从一个特定公司得到的一些经验,尽管我个人认为它们可能对于很多其它场景也是适用的。

背景

200OK公司有一款产品名叫Truffler。Truffler是一个灵活的文件搜索与内容提取的SaaS解决方案。稍微简化一点来说,我们在云上提供了预制的ElasticSearch索引,如果需要我们定制的.NET API则需要授权。

该产品除了能够很容易地构建传统的自由文本搜索功能外,它还能帮助开发者利用ElasticSearch查询的强大功能和速度。使用Truffler,开发者可以很容易地创建类似于“给定作者的最新文章”或者“在指定价格区间内,给定品类的产品数”等等这样的功能。

我们在2011启动公司,并且几乎是都是在空余时间工作。2012年,我们把它卖给了瑞典的CMS和电子商务供应商EPiServer。现在产品的商标是EPiServer Find。

在这短暂但紧张的公司生涯中,我学到了太多东西。很多是技术上的,但最有价值的是非技术上的。关于经营公司,关于开发并销售一款产品。并且在公司领域内,销售是怎么运行的。

许多教训看起来是显而易见的。然而,创办一个公司并开发一款产品有很多潜在的陷阱,而且当你身陷其中时很难面面俱到。

下面是我学到的最重要的经验教训的一个总结。

聚焦

聚焦于那些给公司增加价值的事情,这很重要。对于一个没有产品,或者没有一个完整的能够推向市场的产品的初创公司来说,那就意味着把所有努力都聚焦于在开发产品上面。

我意识到,虽然这是在讲一个显而易见的道理,但是当启动一个新公司的时候,你可能会认为有许多除了开发产品之外的事情需要你去做,并且在这些事情上面花费时间。

或许你需要创建一个商标和一个网站。也许你需要挑选并实施一个不错的开发流程。尽管当你有了一款产品之后,这些事情也许是需要做的,但在你真正需要它们之前在这些事情上面花时间,会延长产品推向市场的时间。

对一个没有足够的费用或者资金的公司来说,慢一点推向市场看起来也许不是一个问题。然而,你开发的产品一天没有用户,那么就有一天没有反馈,来自实际使用产品的反馈。每一个这样的日子都是你花时间去猜测市场需求的一天。

我们的情况是,花了几个月时间,把产品从想法变成了初步的可销售的状态。这大部分要归功于我们把几乎所有的时间都用来开发产品,把周边的问题要么放在一边,要么找到快速的解决方案。

两个这样的周边问题都与设计有关。虽然我是优秀界面设计的狂热提倡者,但我们没有很多的设计技巧。同样,虽然我们的商标和网站需要某些类型的界面设计,但它们对我们非常技术性的产品也不是必不可少的。

我们没有纠结在这些问题上,或者尝试自己来搞定这些问题,相反,我们从BrandCrow购买了商标和产品名称的点子。我们也购买了一个简单的、开箱即用的SaaS供应商网站设计。

总之–聚焦在你必须要做的事情上以达到你初步的目标,而不是那些你认为你到达目标后可能需要做的事情上面。

工具

程序员创办的公司有巨大的潜力!你可以构建任何事情!你也可能会有很多关于如何构建你的产品的观点和想法。通常,这类想法会涉及某种类型的工具。当谈及聚焦在核心产品开发上面时,程序员创办的公司选取最优工具的机会可能是一个危险的陷阱。

程序员通过搭建一个构建服务器来启动一个项目,或者讨论使用什么样的Scrum/Kanban/或者其他的面板,这并不少见。我并不打算争辩说用来加快开发的工具和流程是不值得的。相反,我想说的是在一个创业公司的初期,你需要考虑所有的成本,特别是可能用在开发产品上的时间成本。

我想,对于程序员创办的公司,这尤其重要。为什么?嗯,在这样的一个公司里,你有能力创建任何你想要的工具。第二,程序员在他们的日常工作当中,通常不是由他们来选择自己的工具和流程,这样的话,在自己的公司里选择“完美”的工具就成了一个巨大的诱惑。

以我的经验,讨论使用什么面板,在你还没有任何东西需要构建的时候来搭建构建服务器,或者详细讨论使用什么开发栈(经常是以你想要学习的而不是你已经掌握的结尾),尽管有趣,但这些对于开发一套将要推向市场的产品来说,是非常没有帮助的。

我不是说你不应该在持续集成和交付或者找到一个管理开发的流程上进行投资。相反,作为程序员,它可能诱使你在真正拥有它们之前来解决这些问题。确保你明智地使用时间和资源。为了达到那样的目的,你应该使用没有门槛或者门槛较低的工具。

对我们来说那意味着,在其它事情当中,在Google Docs中使用一个简单的电子表格来管理积压的事情和工作事项,基于ASP.NET(我们都比较熟悉)来构建我们的网站,并把网站放在AppHarbor上面。

沟通

沟通很重要。

不是吧,你写这篇文章就是来说这个?!

嗯,是的。然而,我实际上学到的是,常规的沟通是关键。对我们来说,由于我们经常不是在同一个地方或者同一个时间点工作,我们很快发现这种兼职工作的方式很难让我们每个人都达成共识。

为了解决这个问题,我们决定在Skype上开周会。每个周日的晚上10点,我们通过Skype聚在一起,仔细检查积压的事项,讨论重要的决定以及如何继续推进我们的产品。这些会议是强制的,没有任何理由不参加。当然,我们也会在其它时间使用不同的媒体以各种各样的形式进行交谈,但周日的会议是我们沟通方面的“固定节目”。每周至少一次会议,除了让每个人都能参与进谈话的好处外,一个固定的会议时间意味着大家能够很容易地了解其他人的情况,我们需要花时间来讨论公司的进展。

所以,沟通的重要性是易而易见的,但要记住,很容易就只是那么想当然地认为,直到我们从缺乏沟通中遭到损失。每个人都参与的一个固定计划的会议是容易实施的一个解决方案。

冲突

几个程序员聚在一起开个公司,实现你们开发一个很酷的产品的梦想。你们很可能会在技术细节方面有一些激烈的争论,但也让你们从那些一般公司里的废话中解脱出来,你在工作中最不愿意面对的可能就是处理冲突,对吧?

我们发现,刚开始的时候,我们三个人之间的每件事都进展得很顺利。会有不同的意见,但总能通过达到同一个目标的不同方式来解决–让产品变得很酷。

然而,在几个月快节奏的开发完成之后,经常是在半夜或者周末,我们开始遭到冲突带来的损失。再加上那个时候我们还没有一个付费的客户以验证我们做的是正确的事情,一些同样类型的作为员工所经历的冲突开始浮出水面。

对我们来说,冲突主要围绕两件互相关联的事情。其一是产品开发延迟带来的挫败。第二个是每个人在公司和产品上投入了多少努力所带来的不平衡。

幸运的是,一段时间后,我们直面这些问题并讨论它们。一旦我们这样做,很快就有了垂手可得的解决办法。我们需要管理期望。

尽管我们在开始的时候都同意投入许多的时间和努力,但我们没有定义那意味着什么。后来,当我们都开始疲惫并面对生活中其它需要注意的事情的时候,我们发现每个人投入在公司上的时间有很大的不同。

所以,认识到这个问题,我们找到了一个简单的办法。我们决定每个人每周应该花十个小时在能够为公司增加价值的事情上面。如果是全职工作,这个数字或许应该是四十个小时。

我们期望彼此应该投入多少努力,这个定义好之后,我们就消除了很多关于“不公平”的冲突。这也带来了另外一个好处,因为我们现在能够更容易的评估开发节奏,制定计划,把新功能排序也变得更容易。

我从这里学到的是,无论你在做什么,如果你不是一个人,肯定会有困难的时候,冲突就会应运而生。很难预测到底是什么冲突,但是迟早会变得明显,除非提前进行预防。在一个由几位朋友和同事创建的公司中,我认为避免许多冲突的关键是管理期望,关于每个人应该投入多少努力到公司的期望。如果有人没有按约定的给出产出物,或者更努力地工作但方向跑偏了,讨论这样的事情也很重要。

法律

开公司就是做生意。做生意意味着有许多法律方面的因素需要考虑。对于一个产品价值依赖于知识产权的公司更是如此,比如软件。有很多法律因素要考虑,比如:

  • 还没有启动公司之前,规定公司或者产品的所有权。

  • 知识产权。比如,如果你还处于受雇的状态来开发产品,那么你应该确保你所有的雇主都同意你所做的事情。而且,带个朋友来写一些代码或者做一些其他的工作,看起来是个不错的主意,但你要搞明白代码的所有权。同样的,也许你是在黑客马拉松的一个较大型的分组中开始开发产品,然后仅有部分成员继续在上面工作,如果是这样,你需要以某种方法来确定知识产权归属。

  • 你所使用的任何第三方软件的知识产权和许可

  • 你的产品的使用/终端用户许可协议的一般性条件/条款

当然也有可能受到诱惑,启动公司、构建并销售产品而没有考虑这些事情。然而,一旦你开始获得用户,这些事情就会是问题。更不必说你的公司试图筹集资金并且被收购。换句话说,尽早处理这些无聊的法律方面的事务。

尽管最好让强大的法律团队来处理法律方面的事情,但是你可能没有那么多钱。然而,开始的时候,很多事情都不是真正需要的。同意英文电子邮件中所涉及的文档或者其它事情,可以让你走得比较远。如果有冲突,你可以求助于它,并且一旦你有了律师,把事情都用法律语言来阐述,这也是个很好的起点。

销售和营销

有一个伟大的点子,有一个伟大的开发团队,是启动公司的一个伟大的开始。然而,“一个伟大的产品自己就卖出去了”,这样的想法可不一定对。首先,所有潜在的顾客或者伙伴需要知道产品的存在,第二,他们需要认识到他们需要这个产品。

我们在斯德哥尔摩的一个本地用户组上介绍我们的产品。几乎4个月之后我们才有了第一个付费顾客。尽管我们做了很多市场营销活动,第一个顾客的产生要归功于在那个用户组上的演讲。

如果我们没有在早期就展示我们的产品,我们可能永远不会有那个对我们非常重要的第一个顾客。营销很重要。

这并不意味着你必须花很多钱在上面。在用户组上讨论,在Twitter写作,发出通讯稿,接受播客的采访,把视频放在YouTube上面,与生意伙伴喝酒,都不会花掉你的一毛钱。

然而,如果你不做那些事情,或者花一堆现金去打广告,那么没有任何人会知道你的产品,如果没人知道你的产品的存在,那就没有人会购买它。

现在,假定你有一份市场推广计划,那并不一定意味着有人会购买它,特别是你想把它买给别的公司。你知道,大部分公司都经常被销售最便宜的产品。

就是说,即使你可能知道你的产品对顾客来说是明摆着需要的东西,他们购买以后肯定能赚钱,你以这样的方式来定价,这是不够的。你得说服你的顾客。

要这么做可能会涉及开会,展示,进行PPT演讲,把产品功能与任何你的竞争对手进行对比,不断讨论销售协议等等。

所以,你很可能需要花大量的时间不仅营销的产品,而且要销售你的产品。如果你不想因为销售产品而破产的话,那么在为你的产品定价的时候,你就需要把这些努力考虑进去。

Joel Spolsky在2014写过一篇非常棒的关于软件定价的文章,标题是:骆驼和橡皮鸭。在那篇文章中,他很好地总结了我们的经验:

大公司很好的保护自己规避购买某些贵重商品的风险,他们实际上抬高昂贵东西的成本,从1000美元到75000美元,大部分都越过了他们设置的所有成本障碍,保证采购没有搞错的可能性。

定价的时候,除了把营销和销售的成本考虑进去以外,你也应该意识到时间成本,以及时间对于产品开发意味着什么。对我们来说,作为一个由三个程序员组成的公司,我们发现一旦我们的产品开始在市场上推进,我们就不再是真正的程序员。我们变成了销售员。

我们花了太多时间在会议、创作演讲和其他销售材料、编写销售协议上面,所以真正开发的时间所剩无几。尽管看来那是一个美好的问题,因为我们毕竟赚钱了;我们没有赚足够多的钱来雇佣销售。

所以,下次如果与几个程序员合伙开公司,我会坚持要一个负责销售的合作伙伴。

结论

设计构建你自己的产品,没有受到任何外界的约束或者干扰,是很多程序员梦寐以求的。确实是,与另外两个伟大的开发人员来启动200OK并开发一个款产品,我是经历过的最有意思的事情之一。然而,我们很快发现,产品开发只是生意中很小的一部分。总结下来,我们从这次小型创业公司冒险旅途中学到的关键东西,以及这篇文章的中心内容是:

  • 聚焦于开发产品并把它推向市场。把一个创业公司作为一个试验场,至少在早期,是一种不错的办法,因为这样就不用构建并销售一款产品。

  • 讨论并写下你对于公司以及其他人的期望。如果你是常规工作之外来进行开发工作,要确定你应该每周在上面花多少时间。

  • 不要认为沟通是理所当然的事情。如果你是兼职开公司,或者你们没有在一起,那么找到对每个人都比较合适的一个固定时间来开会。

  • 制定一个营销和销售计划。如果你打算把产品卖给公司,并且产品价格只比免费多一点点,那么把销售成本也划入价格当中。

最重要的是–如果你没有好的销售渠道,那么你没有办法销售你的产品。所以,如果想从黑客马拉松中启动一个公司,或者考虑与几个程序员一起开公司,那么请考虑也带几个懂销售的人加入。

欢迎关注微信公众号,获取更多信息。

一位瑞典程序员的创业感悟相关推荐

  1. 一位工作8年程序员的成长感悟,值得深思

    一位工作8年程序员的成长感悟,值得深思 文|洪生鹏 01 刚毕业时,到一家软件创业公司上班,公司规模不大,加上领导只有6个人,主要做教育平台,那时待遇,1500元.(不怕你笑话,刚毕业时对薪资不敢期望 ...

  2. 骨灰级程序员的创业复盘:第一年盈利被当骗子,线下广阔天地大有可为

    今天给大家分享一篇采访性的文章,文章中的采访对象是一个骨灰级程序员:左耳朵耗子,也就是陈皓.采访的内容就是一个程序员的创业经历.我希望大家通过阅读这段采访的内容,可以体会和感悟到程序员的创业之路,以及 ...

  3. 一位经验丰富的程序员如何建立网络初创企业?

    很多程序员都有一个创业梦想,但是面临未知的风险,很多人又只能止步不前.如何降低创业的风险?如何提高创业的成功可能?本 Chat 给拥有创业梦想的人们介绍一个最新的网络企业创业方法-愿景驱动开发(Vis ...

  4. 12位中年程序员:代码一敲十年,收入虽高前途摇摆

    该文章为转载如有侵权请联系删除! 程序员群体曾是低调多金的代表,但最近996话题.甲骨文大裁员等事件持续发酵,让这个群体成了大众眼中的"失意中年人". 年轻时的拼命,换来的却是中年 ...

  5. 雷靖,一个程序员的创业路

    雷靖,一个程序员的创业路 作者:CHINAASP | <!--发表者: <a href="http://www.iteer.net/userinfo.php?uid=4" ...

  6. 全球最厉害最有钱的24位顶尖程序员及其代表项目(公号回复“顶尖程序员”下载PDF资料)

    全球最厉害最有钱的24位顶尖程序员及其代表项目(公号回复"顶尖程序员"下载PDF资料) 原创: 秦陇纪 数据简化DataSimp 今天 数据简化DataSimp导读:全球最厉害最有 ...

  7. 90 后程序员:“创业一时爽,一直创业一直爽”

    作者 | 闫辉           责编 | 朱珂欣 出品 | CSDN(ID:CSDNnews) 说到 90 后程序员,你会想到些什么? 信息时代,为 90 后提供了更多的机会和资源,让他们拥有良好 ...

  8. 程序员在创业项目中能做些什么

    摘要 程序员在创业项目中能做什么,这个问题问的有些奇怪,程序员除了写代码还能干什么呢,管你做什么业务,电商,O2O,金融,SAAS,都是一把梭,没有什么CRUD解决不了的·.本文谈谈我的不同看法 价值 ...

  9. 近4万Star,登月源码登顶GitHub,这位女程序员“拯救”了阿波罗

    作者 | 伍杏玲 转载自CSDN(ID:CSDNnews) 1969 年 7 月 20 日,"阿波罗 11 号"飞船登月,宇航员尼尔·阿姆斯特朗(Neil Armstrong)成功 ...

  10. 转载:一位资深程序员大牛给予Java初学者的学习路线建议

    一位资深程序员大牛给予Java初学者的学习路线建议 java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是我你是如何学习Java的,能不能给点建议?今天我是打算来 ...

最新文章

  1. 【RocketMQ工作原理】消息的生产过程
  2. 几十万的词如何用每页500词分页展示_如何写出一份优秀的应届生简历?
  3. 【采用】解读消金业务风控模型的6个层级
  4. tensorflow随笔-检测浮点数类型check_numerics
  5. BZOJ 1609 Usaco Eating Together
  6. Order asynchronous mode
  7. java idea 模块_idea 多模块项目依赖父工程class找不到问题的方法
  8. c#把日期改成数字字符串_C#编写壹个函数将输入的中文日期转换为阿拉伯数字日期...
  9. MySQL命名、设计及使用规范《MySQL命名、设计及使用规范》
  10. Linux内核分析 - 网络[十一]:ICMP模块
  11. python函数归值_Python函数基础与函数递归
  12. Python自动化开发学习的第九周----线程、进程、协程
  13. 【译】R包介绍:Online Random Forest
  14. 实习日记(4-28)
  15. 微型计算机原理与接口技术第三版答案
  16. Redis HyperLogLog 是什么?这些场景使用它,让我枪出如龙,一笑破苍穹
  17. CocoaPods的spec
  18. 常用的推挽输出、开漏输出、上拉输入
  19. xcode 项目 was compiled with optimization -stepping may behave oddly ;variable may not be available
  20. ue4当中材质自定义uv和多套uv

热门文章

  1. matlab tic and toc,[转载]matlab中tic和toc(转)
  2. 8K V-by-One LVDS信号发生器
  3. RHEL 7 修改网卡的ip地址
  4. 二叉树模型matlab实现,利用Matlab实现二叉树的树形显示
  5. 为什么我的电脑显示rpc服务器不可用,电脑提示RPC服务器不可用解决办法
  6. git push时报错: hook declined to update refs/heads/detail-header
  7. HTML基础-李南江
  8. ATTiny85 Arduino开发环境搭建及使用
  9. TIFF图像文件格式详解——转载
  10. 网页制作html怎么居中,网页制作中的水平居中和垂直居中解决方法集合