两次“创业”的总结:第一次创业

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mr_raptor/article/details/70243038

距离上次好好写文章已经两年多了。自从公司里出来开始创业经历了好多好多,从人,到钱,到事,到具体的技术,中间有太多的故事,有太多的坑,也有太多的无奈。回头想想其实收获真的很多,而我一直做技术,也一直没有放弃做技术,我觉得自己最擅长的也是技术这块。我突发其想,将自己这两次创业的经历及收获写一写,一来,记录下来自己的过去,另外,也希望能为后来者提供参考。

经历过两次的创业,从头建团队,磨合团队,找到最佳的合作状态,这些过程都不是一两篇文章能写全面的,但是在接下来的文章里,我会尽量的写出来,从遇到问题,分析出现的原因,尝试寻找的解决方案,到最后如何解决的过程完全呈现给大家。当然作为技术性博客,我会把自己这两年使用的技术栈都重新总结下,将我们团队最擅长的开发经验通过开源项目的方式开源出来,并push到github上,这些代码都是我们自己的项目里使用的技术,绝对有很大的参考价值及学习价值:


  • > 对于正在学校的计算机学生来说是很好的学习资料,这些资料直接来自当今最前沿的移动开发技术
  • > 对于正在苦于做毕业设计的学生来说,这是一个真正的可用的,具有商业价值的项目,可以直接拿出来当你的毕业设计,并且我会在博客里完善设计文档和一些基本的教程
  • > 对于打算创业技术人员来说,通过我们打算开源的项目可以在几个小时部署成一个可演示的,高可用的系统,不需要任何修改的Demo,减少创业者在技术上的门槛
  • > 最后,通过开源的项目来勉励自己,让大家审查下自己,重新回归coding“纯真”

项目地址(持续开发中):https://github.com/open-more 如果你觉得项目还不错,请star us。


接下来我先啰嗦下创业的经历。


第一次创业:3D打印行业

2014年10月我还在一个培训机构里做研发与教学工作,虽然薪水不算高,好在比较“轻松”,轻松在不用加班,每天除了coding就是给学生上课,教授Android系统开发与Linux嵌入式开发。由于工作的特殊性,所以有大量的时间去学习新的东西,同时尝试写一些东西,也有一些小成就:用了半年时间写了一本书:《深入浅出嵌入式底层软件开发》,没事受邀去做一些公开课程的主讲人,将自己的研究性的东西写到了这里,成了CSDN的专家。同时在北京成了家,稳定了大后方。

如果一直这样下去,或许我会自己负责集团的一个部门管理工作,然后从事这个行业。但是,每次我看到自己所学,所知的最流行的知识教授给学生时,他们都难以消化(觉得你说的好NB,但是完全听不懂),看到市场部为了卖我们研发的产品去忽悠学校,学校再将这些比较领先的设备放到实验室吃灰时,我觉得难以发挥自己的全部能量,我觉得我可以做的更好。

教育培训这个行业,当你从事一年后就会产生非常大的厌倦感,因为你的课程体系和产品不能更新太快,只能一个班级一个班级,一批学生一批学生的速成,然后重复说着那此自己都讨厌的笑话。内心纠结了很久,我要寻找机会,我要改变,一定要改变!!

这时,之前几次拉我下海的一个朋友说,他目前任职在某个中国最牛的家电H集团里,他们有一个项目需要一个技术负责人,具体是这样的,家电行业在生产家电之前必须要制作模型,这些模型是手动来做的,H集团很久之前就开始使用3D打印机来打印模型,使用这些模型来设计家电外观,H集团的负责人想利用这些3D打印机,顺流互联网创业的潮流,利用3D打印技术的火热,想打造一个3D打印平台,该平台可以为用户提供3D打印模型,用户下载模型后通过H集团的打印机打印出来,然后快递到用户手里。想法真的很好,平台上让模型设计师开店,提供模型产品,我们为用户提供3D打印产品服务。

H集团通过这个想法从国家申请了1000W的资金,这1000W资金集团吃了一半后,只剩下500W用来打造该平台。我的加入就是要负责这个平台上的App的产品,他们已经用了100W左右外包开了一个Demo版本,并且买了一个平台商城改成了3D打印平台。

当然,我对这些都不知情,由于我想改变,他需要我,我们就达成了一致,让我入职H集团,但是我不想去H集团所在地(非北京),并且入职H集团还挺麻烦,并且离开北京的话,招App开发人员还是比较困难的,于是我们决定在北京开一个分公司,我们自己打造团队,这位朋友又找到了另外一个H集团的老员工J总,做北京总经理同时兼产品总监,他有个公司,正在创业中,只不过业务不太好,也有自己的小团队,正好,我们不需要再找办公室,直接入住这个公司,于是我开始了创业之路,这一天是:2014年11月16日


扫描二维码关注公众号,回复: 3322674 查看本文章

招兵买马

当我进入这个公司的时候,一个产品总监J总,一个万事通的产品助理,一个双微的运营,一个初级UI,一个前端,这个配置是J总原先创业公司的人马,之前他们做微信的运营创业,业务不太理想,被我朋友拉入了伙。当时不知道什么是期权,什么是股份,我只知道,我要搭一个App开发的班子。在这些人里,能用上的就是UI和前端,产品助理没有做过App产品开发,我要需要开发人员,我先是从原先公司拉出来想创业的同事G,又从之前我教的学生里挑了两个不错的学生做Android,我打算自己培养他们,然后又招来一个刚毕业的ios开发S,于是App有人可以开动了,后台接口由H集团的两个Java来做,两地沟通。人员配齐了,可以开搞了。

产品是什么鬼?

需求是什么?前面说过,之前花了100W已经外包做了一个Demo,这个Demo只是实现了功能,但是完全不是一个可用,可运营的产品,我们要重新做一个App。我先介绍下这个产品,逻辑是这样的:

App通过手机的摄像头拍摄一个正面相片,然后手动将相片里的自己五观设置关键点的方式设置下,然后打外zip包发送到服务器,服务器将2d相片处理成3D的头部模型,然后保存在服务器上,用户再从服务器上下载下来这个头部,将头部本地解压后和本地的身体通过3D引擎显示出来,这个3D引擎是用的一个德国的过时引擎,很多新的法线效果都不支持,3D的模型在里面看起来非常丑,用领导的话说,就像是将一个3D人偶泡到棒子面粥里一样。用户如果“喜欢”这个3D人偶模型的话可以下单,然后将订单提交到H集团的打印车间里,他们打印出来,再快递给用户。

这里面问题非常的多,以致于根本不能用,我们需要一个产品经理基于产品目标用户,重新设计一个新产品,而我们目前根本没有产品经理,公司里每个都是产品经理,每天我们都要思考,讨论用户想要的什么,但是往往都大家在所谓的头脑风暴上7嘴8舌的说,没有任何的实质,另外,即使得到了一些产品建议,也需要技术上进行调查,调查了可行性后,还是需要产品经理设计并画出原型来。因为没有产品经理,所以让产品助理来做专职产品经理,这对于一个从来没有设计App,从来没有用过Axure的员工来说,有点太牵强,我们必须要有一个有一定经典的产品经理,在招产品经理的过程中,技术开始做一些调查和小的优化,我们先把Demo代码从头分析了一个,把技术架构好好理了一个,然后先从改Demo开始吧。


我们分析了Demo后得出如下问题:
  1.   1. 用户通过摄像头拍摄根本拍不好相片,拍出来的相片如果光线不好,3D模型脸部非常的黑,和包公差不多,我们需要对相片进行处理。
  2.   2. 拍完相片还要手动的描关键点,总共有11个关键点,非常麻烦,即使描了点后,服务器还有可能处理不好,因为用户会出错,描错点,生成的3D头脸部是扭曲的。
  3.   3. 服务器运行的Linux环境,它里面对2D相片处理成3D头模的时间很长,一般都在45秒左右,另外,服务器没有串行处理,而是并行处理的,如果同时两个人提交相片,则两个用户都需要等90秒,非常影响用户体验
  4.   4. 3D引擎太过时,因为我们都没搞过游戏引擎,而开源的引擎太过时了,粒子效果,法线效果,高光效果都实现不了,我们打算换掉引擎。还有就是引擎只能使用obj格式文件显示,obj格式是纯文本格式,体积非常大,即使zip过,也1.5M,用户在3G网络下流量非常可观。

在没有产品经理的情况下,我们开始一个一个的优化,用了1个多月的时间我们做了如下的尝试:
  •   > 针对1,我们1.6.x版本添加了如美图秀秀里一样的相片处理算法,通过曲线算法将整个相片的光线设置的更均匀
  •   > 针对2,我们寻找了一个些第三方的相片关键点识别服务,选择了Face++的sdk,进行自动脸部关键点识别,不再需要用户参与
  •   > 针对3,首先调查3D建模算法在服务器上的瓶颈,发现并不是想像中的显卡依赖,而是CPU依赖,如果使用i7的高频处理器比2.2Ghz双至强处理速度都要快一倍,其次,将3D建模并发处理改成串行处理,用redis写一个业务队列,按照先后进行处理,利用闲置的服务器用来做3D建模的消费者。
  •   > 针对4,开始让G调查新的可用游戏引擎,寻找可替换方案。


优化结果:

  1.   1. 相片比原先更均匀了,相片的合格率提升了30%,但是还是效果不好,如果能在拍摄时就提示用户光线不足,光线不均匀就好了,这需要产品经理设计介入。
  2.   2. 使用Face++的方案后无需用户描点,但是Face++ SDK需要在线操作,先将相片发送到它的服务器处理,然后它会将结果返回给你,这样一来一回,用户也需要等待,我们又升级了一个版本,将用户拍摄的相片先压缩体积,再压缩尺寸,将缩小版本的提交给Face++服务器,然后将返回的结果再按压缩尺寸比例放大,生成原始相片的描点信息,这样处理用户等待时间和流量成本下降了80% 
  3.   3. 我们将两台服务器作成消费者集群,通过redis队列实现生产-消费架构,服务器CPU不是说升就升的,只能通过集群方式来增加3D建模并发,最后我们拿出3台服务器,一分钟内可以处理10个3D建模请求,基本满足低日活下的用户体验
  4.   4. 通过G的技术调查发现了触控科技新开发了cocs2dx(cocos3d)引擎,技术法线,高光等效果,关键还是开源的,但是他们也在内部开发,很多功能还没有完全实现,我们直接通过朋友有关系找到触控科技的开发经理,吃了顿饭,叫上核心技术,以学习的名义加了好友,然后我们开始调查这个引擎,发现基本上可以实现我们想要的逼真效果。等G的反馈说,就它了,我们选择了cocos2dx作为新的引擎,但是这个引擎还在beta阶段,很多问题,为了减少开发时间,我们直接将它的核心技术买通,让他帮我们实现我们想要但是还没有release的效果,同时给G作技术培训并提供1年的技术支持。
到了这个阶段,我们必须要产品经理介入了,因为要加上新的设计,同时后台订单系统还没有,模型管理系统也没有,生产系统也没有,这些都需要产品经理的设计。最后,我找到了原先的一个学生R,他2年产品经验,之前做为App,把他拉了过来。这样,台子搭完了。开始真正的唱戏了,这时候也过年了。

步入正轨

产品经理介入之后,开始设计2.0版本,原先的初级UI不能胜任,把他给和谐了,找了Baidu的一个UI设计师,让他兼职帮我们设计V2.0 UI和交互。同时,ios的S水平暂时达不到独立开发的要求,又招了一个中级ios。团队编制如下:
产品:
产品经理R,产品助理
技术:
技术负责人我,android 初级2人,ios初级1人,中级1人,前端1人
H集团java主程4人,其中2人负责平台商
运营:

运营总监+运营专员

我们为产品经理提供了技术上的可行性,除了之前说的优化以外,还有如下有突破的技术点:

  • > 找到了美图秀秀的美白算法和瘦脸算法,可以让用户在相片上直接进行美白,瘦脸,大眼处理
  • > 通过分析Android和iOS相机的底层SDK,自己实现了一个自动识别相机中人脸部位光线是否均匀的功能,还会友好提示用户,光线太暗,光线不均匀,头没有摆正,眼睛没有睁开==
  • > 将国外授权的3D建模软件进行了源码分析,将一小部分功能移植到了Native,这样用户等待时间又减少了很多,另外还可以支持脸部简单的动画效果(修改游戏引擎源码和3D建模软件源码)。


而UI设计师那里不是很顺利:

1个月后Baidu UI给了第一个版本,我们看了之后,各种不满意,他之前是做网站的,做AppUI还是第一次,设计出来的UI完全是网站思维。即使我们放下甲方的思维,我们还是不满意,中间又沟通了半个月,结果,人家拿了钱去国外旅游了,各位联系不上,等回国后,他说,自己没时间做了,又推荐了另外一个他的朋友,他的钱也不要了,让他朋友做。于是又开始讲需求,讲产品,讲想法,回来几次,算是交付了一个比较满意的作品,给了高保真后,死活不给标注图和切图,我们明白,是等尾款呢,我们按照合同,给了尾款后,当前晚上全部收到。中间又因为一些小细节和调整,到时还比较配合,这里暂且不表。拿到切图已经4月份了,还好引擎有好消息。

在核心引擎工程师的帮助下,G终于将新引擎移植到了ios上,引擎工程师不懂android和ios只会opengles和shader,G之前只会android,在不到2个月的时间内愣是将官方还没有release的cocos2ds运行在了模拟器里,在移植到android时又出现了一些问题,比如:模型文件缓存的问题,我们帮官方debug==,引擎的bug一直持续到15年底才算稳定下来。


最忽视的QA

我们将新的UI和新的引擎全部添加到2.0版本里,在1个月的封闭开发时间里终于开发完成,由于没有专业测试,全部是开发人员自测,这里我要多说几句,刚开始想招测试,一来开发时间比较紧张,另外考虑到成本,暂时没有找,等v2.0出来后,各种bug,debug了2周后才把全部流程跑通,本来我想着只要时间允许开发人员代码质量ok,再主动些不会有那么多bug,最起码不会有大的bug,我还是太高估了他们,后来J总原先的下属专业测试招了过来,帮我们建测试团队又以很低的成本找一两个刚毕业的,完善工作流程。等专业测试一配合,各种问题,问题如下:


沟通问题:

我们没有一个统一的Bug管理工具,H集团使用禅道,我们使用Redmine来记录工作量和bug,两边工具不统一,由于测试在我们这里,我们有话语权,最终让测试经理来选择,选择了redmine。

虽然开发方式算不上完全敏捷开发,我们还是使用redmine里的任务管理来进行任务的切分和分配,本来就是两地开发,H集团写接口,北京开发App,两地沟通成本比较高,经常出现App希望接口ABCD的顺序出,接口却先开发DBCA。开会沟通由原先的每周一次,改成了每天一次,并且把H集团每天都要写的日清制度给去掉了,大家还是比较喜欢开会,而比较讨厌每天写日报。虽然如此,H集团每天上午8:30上班,下午5:30下班从来不加班,北京这儿9:00上班,下午6点下班,并且每天都有加班。两地沟通还有问题,这些问题一直都没解决,我也一直没有想到有什么好的方式。


开发同步问题:

H集团使用Java开发接口,每次开发及联调都在开发环境下,每次有bug,北京先redmine提bug,然后QQ上通知有单子,那边再debug,debug完之后,部署到开发环境后,再关单子,再Q这边已经debug再调试。非常的麻烦,我觉得有必须使用CI工具了,然后在项目的开始没多久我就将jenkins部署到了开发环境下,每次有单子通过redmine的邮件通知对方,然后让对方保证时时开着邮件通知,收到通知后,自己debug,debug之后代码一提,自动部署到开发环境,部署成功再自动邮件通过到北京,只要大家都打开邮件就可以无缝工作。同时,在北京本地挂了jenkins的android自动部署,代码一旦合并到master分支后自动打包生成最新apk,邮件里附带下载链接通知测试部新版本已经可以get到,另外,每次的develop分支的提交都会生成最新apk,邮件通知到领导,让两地领导每天看到开发的进度,如果需要的话还可以下载下来查看开发版本的app。由于ios执行这套CI有一些账号上的限制,我们没做ios的CI。

有了QA团队后,代码bug降低了很多,之前bug率在20%,QA团队来了之后,通过完整的工作流程,bug率在< 2%左右,同时在需求确定后,QA提供开发自测case,开发人员合并到master之前必须通过自测case。在没有自测case之前,一个小版本预计时间在2周,开发+联调占1周半,进入测试后,走通新功能流程都需要2天,2天后才真正进入测试环节,真正到达可上线状态都需要加班,加班时测试人员等开发debug,测试时,开发人员等单子,效率非常低。加入了自测case之后,开发+联调+自测限制在1周半,自己合理利用时间,测试人员拿到的app基本流程都走得通。另外,将新版本发布时间定在周3,这样android第二天基本上线后有bug,通过友盟,bugtags==第三方bug跟踪sdk也能第一时间紧急下线再发布。


关于单元测试:

单元测试是创业公司永远的可想而不可能的事情,通过我的各种朋友调查得出一个结论:基本上写单元测试的公司,公司里的员工基本上每年的生产价值在100W+,比如:microsoft,一个大的软件的开发人员在20人左右,测试人员5~6,小的7~8人,测试人员2~3人,而他们的代码行数都100W+,microsoft中国每们员工每年创造收入是$100W,再比如:阿里每个工程师的创收也在¥280W。新浪微博每个员工创收不到¥100W,他们没有单元测试。写单元测试的时间和coding的时间差不多,甚至更长,写单元测试之后,只要是迭代开发,在代码复用率高的情况下,节省成本是非常可观的。但是老板不会这么看,我们要快速迭代,我们要尽快开发出来让用户看到我们的产品。另外,需求不停的变化这也是一个影响的主要原因,这个版本的新功能,下个版本可能完全丢弃。其实,我的梦想是培养一支写单元测试的开发团队。


细心的可以已经发现,在此之前,说的东西都太技术了,没有办法,因为我之前就一个技术,最爱的也是技术,甚至从大学到现在QQ的昵称一直是:JustDOIT,就想搞IT。如果你是一个创业者,你也会发现,目前为止,我对创业的理解也太浅了,是的,你说的对,因为我是第一次创业,对运营,完全不懂,对产品只是从技术的角度去考虑,对资本更不了解,只知道保证我的技术团队能发下工资来,花最少的钱,干最多的事。

客观来讲,我的工作内容和我传递出来的话语间,其实我就是一个员工,一个没有股份,没有期权,披着创业的外衣,天天把自己标得很像那么回事的创业者。


新版本V2.0上线了,第一版本的bug也在迭代了3~4个之后比较稳定了,技术部压力没有之前那么大了,最直觉的就是不用天天加班了,不过可怕的问题也来了。

> 新版本上线后,运营数据并不可观,每天拉新在200~500左右 (纯自然流量),日活在300~600左右,可见,全是拉新的活跃,当然,SEO,刷榜==这些手段我们还没有用

> 用户数量上不上,订单就上不来,一周也就有个位数的订单

> 因为产品设计没有前瞻性,导致技术团队突然不知道要开发什么了,每天就是看原先的代码,进行小的优化和bug fix

> 3D打印产品太高冷了,对于普通用户来说,这个东西可有可无,不是真正的刚需,价格也太高了,一个15CM的成本就300多块,卖299,基本上全是赔钱

> 设备打印速度太慢,一个人偶打印需要4个小时左右,另外,良品率很低,所有材料都是直接买的3D System的,1g1块钱

> 线上的产品数量太少,一共才50个模型,每一个都很死板,没有吸引眼球的模型,用户不喜欢

> 运营总监没有多少运营经验,没有做出多少成绩,线上运营基本上没有,大家都不知道如何下手


我们每个人都很着急,虽然账面上还有200W,但是大家都觉得产品不好,自己都不是很喜欢,这个时候我也开始思考一些产品层次的问题和运营层次的问题,我们做了如下一些尝试。


> 将产品和小的打印机拉出办公楼,摆线下,摆了一周,看的人多,围观的人多,但是没有订单,拉新受限于办公场所,数据一般

> 我们下高校,借助H集团的力量和中国著名的设计院校合作,看看有没有机会,去了几所高校进行讲座,宣传,吸引用户的设计作品

> 开始招一些建模师自己建模,之前50个模型都是外包的,其水平,只能呵呵

> 研究一些竞品,比如:当年非常火的《小偶》,同时我们的产品名字也是Low到了极点,决定换产品的名字

> 通过对产品的埋点分析用户的行为,虽然有一些结果,样品比较少,有一些参考价值


经过上面的折腾,已经是8月份,团队已经10多人了,每个月成本在20多W,技术人员也因为没有新的产品需求进入,完全闲置了1个月,有人选择了离职。再后来,我们做了几次用户调研,发生我们的产品根本不是用户需要的东西,一句话来说:3D打印产品就是一个噱头,生活里基本上不需要,要它看着还难看(材质粗糙,造型单一)。再后来,我们全员转运营,上淘宝开了淘宝店,开了微店,也无力回天了,第一次失败了。

最后说一句,H集团虽然还有500W,他们也看到这个产品的一些问题,死活不再向里面投钱,本来说好的战略投资也不再提。我们的团队在12月份的时候回到了最初,到元旦时,只剩下我和J总和空旷的办公室。

接下来为第一次创业做下总结:


先从创业方向上来说:

> 创业是革命,要以突破旧体制,旧传统的思维去创新,可以从两方面考虑:是否能提高用户的工作效率,是否能提高能降低用户成本

> 创业注定要失败,你只不过是在失败里去寻找活下去的方式,活下去只是成功的第一步

> App的开发成本太高了,一个App开发出来到稳定可用至少6个月,即使最小编制,成本也在50W+,建议那些想着20W外包做的App的,早点洗洗睡吧

> 在没资源,没有想好创业做什么之前,最好别成立公司,别招人,最好自己一个人先验证商业模式,等你养活了自己再考虑创业养活别人

> 一定不要将自己的方式限制在当前的业务之内,经常跳出思维惯性,只不定有新的突破


运营方面:

> 我们太相信一个有着推广经验的人能做好运营总监

> 线上的运营成本真的很贵,目前来看,基本上已经超过了线下的成本,毕竟线下的运营更精准一些

> 运营没有战略性,从来没有打出漂亮的战斗来激起团队的士气,当然,运营好一个产品不仅仅是运营的问题


产品方面:

> 产品没有战略性,虽然有一些技术上的局限性,可以通过边缘化技术,转型到其它方面做一些尝试

> 产品没有体系,没有流程,没有科学性和专业性,太技术化,当然也和R是技术转产品有关系,产品就做过1次像样的用户调研,用户的数据分析也只有过2次,产品想法每天都有,但是永远是在脑子里,没有突破


技术方面:

> 造了太多的轮子,小到一个进度条都要自己写

> 没有技术大牛,都是很平庸的人,bug率比较高,刚开始没有完善的工作流,没有经验,事倍功半

> 没有在技术合作上有所突破,永远在技术的圈子里,思想太狭隘,应该多走出来

> 不加班,没有活干,留不住人(好像很变态的思想),程序员需要的无非两点:钱和技术

> 技术团队尽量不要两地办公,除非团队之前有至少一年以上的合作经验,并且经过远程开发的专业培训


下面贴几个App的图片,缅怀下自己的产品




这两张是我自己的模型:







  ==未完待续==



猜你喜欢

转载自blog.csdn.net/mr_raptor/article/details/70243038
今日推荐