写点什么

关于如何创办软件公司的建议

2018 年 2 月 22 日

本文要点:

  • 选择正确的市场阶段很重要
  • 不同的销售方式会带来不同的机会
  • 使用外包,但是记得聪明地去使用它
  • 法律部分是项目的免疫系统
  • 设计出软件原型很重要

你有一个关于创业的想法。嗯,看起来你确实有个想法了。但是即使这个想法是你众多的想法中最好的一个,它足够让你成功吗?这个问题随后又可以引申到一系列其他的问题上。在没有大量启动资金和经验的情况下,我有机会成功吗?我本身需要是一个软件开发人员吗?在最开始,我需要做什么?如果你有这些疑问,那么请跟随本文的建议,学习如何在没有软件能力和大量资金的情况下,成功建立一个软件开发公司。

进行市场调研

在你成立软件公司之前第一件你需要做的事情是做好市场调研。找到你主要的竞争对手、目标群体、以及目标群体的需求和偏好。分析你介入市场所处的阶段:导入期、成熟期或者衰退期。

  1. 导入期,市场上还没有类似的软件。因此,市场要不是对你的产品有着巨大的需求量,要不根本就没有需求,如果你无法说服用户使用这款产品。

让我们来看几个相关的例子:

在 2008 年,Airbnb 公司推出了一个网站,方便人们在全世界的范围内预订住宿。想法是允许游客从当地居民那里租到住房。开始的时候,投资者都很不愿意投钱到这个项目中,因为当时大家都认为很少有人会愿意把自己的房子租给陌生人。然而,因为这个公司是在经济大衰退(the Great Recession)时期成立的,那个时候人们都迫切地需要额外的收入,从而促成了这项服务的普及。现在,这个网站已经拥有超过 2 亿的客户,覆盖了 191 多个国家。

在 2009 年,Uber 也成功在经济衰退期成功赢利。他们开发了一个应用,帮助用户能够联系到私家车司机。这项服务不但满足了司机想要挣点外快的需求,同时也满足了想要便宜出行的乘客的需求。现在,这项服务已经在超过 83 个国家和 737 座城市内运行了。

所以,Uber 和 Airbnb 在市场最需要他们的时候,成功地提出了新的想法。但是,有时候,好的主意也有可能出现的太早。

在线娱乐公司 Z.com 成立于 90 年代,每个月会吸引 750000 名游客。尽管它筹集到了足够多的资金,并且建立在了一个好的商业模式之上,但是这家公司还是在 2003 年倒闭了。原因是创始人没有考虑到 1999-2000 年期间,宽带的普及率非常低,因此,用户很难在线观看视频。两年之后,当美国宽带的普及率达到 50% 之后,Youtube 成功地进入了在线视频领域。如你所见的,Z.com 在市场尚未准备好的时候就进入了市场。

  1. 在成熟期,你的竞争对手已经在类似的软件上获得良好收入,但市场仍有一定空间。比如,你知道如何创建一个更强大或更实惠的替代方案。这可能是进入市场的最佳阶段。

例如,Kaltura 建立于 2006 年,并且推出了一个用于管理、散布和发布视频内容的视频平台。创始人没有试图瞄准整个市场,而是决定瞄准企业、教育和媒体等多个领域。现在,约有 30 万家企业、教育和媒体机构在使用该公司的服务。这个例子说明,在成熟市场也可能取得成功,当你着眼于特定的利基市场,而不是试图用自己的解决方案来满足所有需求的时候。

但是,如果仔细考虑的话,其实采用相反的策略也有可能成功。Masquerade Technologies Inc 成立于 2015 年,向用户推出了 MSQRD(Masquerade),一款换脸移动应用。这款应用支持用户从材料库里选用不同的过滤面具或者效果来改变其外貌,并且可以将修改过后的照片分享给 Facebook 和 Instagram 的朋友。尽管这项应用是在东欧研发的,但是却很快的在美国和亚太地区流行起来,并且在 2016 年被 Facebook 收购了。该应用病毒式传播的秘密在于该公司全球化了他们的应用:在走向全球化的同时,又在不同的地区本土化,为不同的地区创造了不同的滤镜效果。例如,他们为美国的用户提供了好莱坞明星的面具,但同时又用斯大林和普京的面具来吸引俄罗斯的用户。

  1. 在衰退期,与你产品类似的产品在市场上已经饱和,这就意味着你的想法落后了。

在 2010 年,Rdio 推出了一款基于订阅的音乐流媒体网站。这项服务曾经在 85 个国家受到欢迎。但是这个公司一直跟在它的竞争者 Spotify 后面挣扎,最终缴械投降。之后 Rdio 宣布破产,并且在 2015 年被它的竞争者潘朵拉傳媒公司(Pandora Media, Inc.)收购。

这个例子表明,创业公司面临的问题可能并不是失败的产品,而是一个过于饱和的市场。如果用户完全满意已有的解决方案,那么他们可能并不愿意寻找任何替代方案。更重要的是,如果他们可以免费使用类似的服务,那么他们很难切换到使用你的解决方案。同样的情况也发生在上述的例子中,当 Rdio 提供付费版本的产品时,Spotify 已经开始在其基于广告的产品版本中提供了类似的免费服务。

选择正确的阶段切入市场对于产品的成功至关重要。你不应该着眼于软件本身,而应该注意潜在客户本身。如果他们对你的解决方案感兴趣,你则更有机会成功。

选择正确的方式来销售软件

另一件是你如何销售产品。如果现在市场上有类似的产品,学习下你的竞争对手是如何做的。基本上来说,你可以选择将软件直接销售给最终用户或是允许用户通过网站下载。

在直接销售的情况下,你将需要和大公司以及中小企业直接交易。你可以出售软件的许可证或者收取订阅费用,允许订阅产品在一段时间内可以使用。你也可以为客户量身定做其需要的软件。你的收益将主要取决于软件本身的独特性和市场上竞争者的数量。总的来说,向大公司出售一些贵的许可证可能会跟向中小企业出售大量廉价许可证的收益相当。

如果你计划通过网站来销售你的软件,你应该先让用户免费试用你的产品,以检验该产品是否适用于这些用户。与此同时,你还可能从相关的支持和维护中获得收入。

运营你的软件开发业务

大体上来说,在没有技术合作伙伴的情况下,你也可能拥有一个成功的软件业务。但是,有一个很熟悉代码的伙伴可能会大有裨益。他们可以兼职参与到公司的事务中,帮助查看评审软件的架构和代码。相应的,你可以将一部分公司的股权作为回报。但是,这样做也就意味着你将需要和他们共享未来不断增长的收益。

另一种选择是转向可靠提供软件即服务的供应商。但是以这种方式,你会很依赖于供应商,对软件开发的控制权也会减少。除此以外,你应该分配额外的时间和预算在与供应商的沟通上面,以确保软件满足你的需求

开始

一旦你做好了市场调研,并且决定了售卖产品的方式,基本上你就可以开始着手创立你的软件公司了。

你可以按以下分步指南来开展你的工作。

1). 保护你的知识产权

一旦你有了一个想法,申请必要的专利和注册商标来保护它。让你的合作者在产品创建阶段签署保密协议,以防止任何项目相关信息泄露。

2). 制定一份商业计划

说明你的商业目的、产品、目标受众、竞争对手、财务需求以及产品预期上市的时间。不要低估了这一步,因为错误的商业模式很有可能会削弱成功的可能性。

Quirky 公司提供了一个发明平台,在该平台上人们可以对其中意的产品想法进行投票,随后公司在 2009 年制造并销售这些票选出来的产品。这个公司花费了超过 80 万美元来研发这些产品,但是都没有带来很高的利润。之后这家公司费力地筹集了资金,并经历了多次裁员,甚至之后关闭了其中的一个办事处,最终申请了破产,并且在 2015 年卖出了这项业务。现在这个发明创业公司,在新的所有者和新的商业模式的支持下再次回到了市场。新的平台保留了其原有的目的,但是Quirky 本身不再负责生产产品,取而代之地是将这项任务委托给其他公司。

这个创业公司没有进行市场验证,并且选择了错误的分销渠道,通过零售连锁店售卖其产品。因此,他们在库存上超支,但是又对每个产品是否都满足了消费者真实的需求缺乏清楚地认识。毕竟,浏览一个你喜欢的发明,并不意味着你已经准备了好为此付款。

3). 考虑法律、税收和保险

以税收为导向决定企业的法律结构。为防止之后软件出问题,请注意购买相关的保险。

4). 吸引开发者

组建自己的软件开发团队是很困难、耗时和昂贵的。至少在最初期的时候,可以考虑外包研发工作。这样的话,你就可以将特定的工作交由该方面的专家完成。如果他们是海外的员工,与美国国内专家的薪金相比,你或许可以节省一些劳务费上的开销。但是这样做也会有缺点,比如更长的项目参与时间、昂贵的现场培训、语言障碍、不同的时区等。然而,可靠的承包商也可以将这些缺点的影响降到最低。

当你雇佣了一个软件开发团队,请记住下面的几点:

  • 不要与可疑的外包供应商或自由职业者签订合同。尤其是考虑到可靠性和安全性的问题,相信你也不想有一天你正准备收取软件费用的时候,发现这个软件可以免费下载。理想状况下,你应该找一个有良好信誉的软件开发公司。拥有超过 50 名员工,并且成立时间超过 5 年,这两个指标都很容易查到,也很关键。跟一个好的软件开发公司合作,有助于加快项目的实施。
  • 请记住保留源代码的所有权。为确保这一点,当开发人员为你创建软件的时候,你可以应用“雇佣作品原则(work-for-hire)”,即他们会在雇佣时是作为雇员,并不拥有作品的所有权。如果你找开发商合作,请将源代码储存在自己的源代码存储库中,而不是开发商的存储库中。否则,在更换开发团队或者供应商的时候,你可能需要从头开始手头的项目。

相反地,雇佣错误的人甚至会破坏最精细的计划。GovWorks Inc. 成立于 1998 年,并启动了一个公民请求网站,旨在促进公民与地方政府之间的沟通。创始人有一个完善的商业计划,充足的风险资本和不断增加的受众。然而,由于创始人之间的斗争,管理不善以及项目团队无力保证高质量的产品,最终这个公司宣布破产,并于 2001 年卖给了 First Data Corporation。缺乏妥善协调的团队工作导致了这个公司的失败

5). 做好软件测试

软件测试揭示了软件中的漏洞并保证了它的质量。由此可以增加用户的满意度,并进一步增加你的收益和声誉。

这里有几个测试的选项来确保你提供了一个有品质保证的产品:

  • 将测试工作外包给之前帮你做软件开发的公司。因为这家公司已经理解你的项目。除此以外,同一家公司里的开发人员和测试人员更容易相互协作来解决项目有关的问题。更重要的是,将开发和测试交由一家公司完成,可能会减少将这些工作分配给不同公司所需要的成本。
  • 将测试外包给一家独立的能够保证质量的公司。通过这种方式,新的测试人员可以为项目带来全新的视角。然而,缺点是他们需要一些时间来研究你项目中的细节。
  • 自己做下测试。无论如何,你需要做一些验收测试,但是在开发过程中进行测试是很耗时的,大约占开发时间的 30%。

自己做测试总是最省钱的。但是,面对时间限制等因素,你可能会将测试的工作委托给其他人。

建立原型

通过创建软件的原型,你可以在投入时间和资金来完善产品之前,了解最终产品大概的样子。一款足以进入市场的软件被称为最小可行性产品(MVP,Minimum viable Product)。用户可以使用这款软件,提供反馈,并且决定在将来是否会使用这款软件。与将正式的产品发布出来之后相比,在这个阶段修正错误更容易,也更便宜。这就是为什么你需要尽早地构建一个原型。在你评估原型的效果之后,你就可以对其进行必要的修改了。

在你有了原型,甚至是有了一个 MVP 之后,你可能会吸引到风险投资、赠款和贷款,在熟人中找到投资者或者吸引在线的资金资源。

总结

创办一家软件开发公司需要很多的努力。现在,你有一个详细的指导教你如何去做。请不要忽视其中描述的步骤,从其他公司积极的经验和错误中学习,你将可以成功应对这些挑战。

作者简介

Boris Shiklo, ScienceSoft 首席技术官,负责公司的长期技术方向和创新战略。在他的监督下,公司的开发团队成功完成了医疗、银行和金融、零售、电信、公共部门等领域超过 8 万工时的复杂项目。他在 IT 咨询、软件开发、项目管理和战略规划等方面拥有深厚的背景。

查看英文原文: Advice on Starting Your Own Software Company

感谢薛命灯对本文的审校。

2018 年 2 月 22 日 17:012718

评论

发布
暂无评论
发现更多内容

为什么我们应该使用 Flutter?

环信

flutter

【面试题系列】——Java基础

Noneplus

Java

用Report Builder 创建报表

JackWangGeek

SharePoint

MySQL性能优化(一):MySQL架构与核心问题

xcbeyond

MySQL MySQL性能优化

API接口设计最佳实践

Man

Java 安全开发 设计实践 APi设计 接口管理

从需求到交付——论敏捷过程中的需求管理

华为云开发者社区

敏捷开发 团队协作 需求管理 故事 持续交付

静态代码检查完成代码分析和SonarQuber的初探

陈磊@Criss

一致性协议算法

张瑞浩

PerformancePoint服务

JackWangGeek

SharePoint

海南七星彩网站源码结算功能开发

网站,小程序,APP开发定制

未来的智慧城市:未来的城市生活愿景

网站,小程序,APP开发定制

SQL Server 报表服务

JackWangGeek

SharePoint

Visio服务

JackWangGeek

SharePoint

Spring配置类深度剖析-总结篇(手绘流程图,可白嫖)

YourBatman

spring springboot @Configuration 白嫖

计算机网络基础(二)---网络层-IP协议详解

书旅

php laravel 计算机网络 网络协议

配置 SharePoint Server for Reporting Services

JackWangGeek

SharePoint

MySQL性能优化(二):选择优化的数据类型

xcbeyond

MySQL性能优化

PerformancePoint 组件概述

JackWangGeek

SharePoint Online

MySQL性能优化(五):为什么查询速度这么慢

xcbeyond

MySQL 查询优化 MySQL性能优化

MySQL性能优化(三):深入理解索引的这点事

xcbeyond

MySQL 索引 MySQL性能优化

doris临时故障恢复过程时序图

刘志刚

面试官:如何决定使用 HashMap 还是 TreeMap?

爱嘤嘤嘤斯坦

Java 算法 hashmap

实战技巧,Vue原来还可以这样写

前端有的玩

Java Vue 前端 技巧

文档写作利器:Markdown

xcbeyond

markdown

震惊!ConcurrentHashMap里面也有死循环,作者留下的“彩蛋”了解一下?

why技术

Java 源码 jdk 后端 bug

Excel服务

JackWangGeek

SharePoint

PowerPivot服务

JackWangGeek

SharePoint

啃碎并发(11):内存模型之重排序

猿灯塔

腾讯的区块链为何败给了老干妈的“萝卜章”?

ToB行业头条

从一盏路灯,看亿万级联接的智能之路

华为云开发者社区

人工智能 物联网 智能设备 华为云

MySQL性能优化(四):如何高效正确的使用索引

xcbeyond

MySQL 索引 MySQL性能优化

演讲经验交流会|ArchSummit 上海站

演讲经验交流会|ArchSummit 上海站

关于如何创办软件公司的建议-InfoQ