转载自: 张海龙 2015-09-15
本文整理自张海龙于9月11日在上海《技术与设计,初创团队不能错过的那些知识》的演讲。
张海龙:Coding.net CEO,技术创业者。CMU计算机硕士,原Oracle高级软件工程师。2010年回国创业,曾联合创办开源中国社区,2014年创办Coding.net。
现在大家做互联网创业基本离不开软件。如果你是市场,运营等非技术出身,想要创业,你可能并不知道软件开发是怎么一回事。这时候你需要 CTO和程序员的帮助,但是很有可能在初期你找不到 CTO 去帮你梳理开发的流程,所以你有必要具备一些基础的开发知识。
首先,最重要的是需求。无论你做的是什么产品,你都需要明确你的需求。你要明白你要做一个什么东西。不能说你觉得京东不错,就想仿造一个类似的产品出来,这样的需求是伪命题。你应该清楚地知道你想要做的是什么,产品有什么特点,能解决了哪些痛点。
在梳理了需求之后,你需要将其可视化。我最开始做 Coding 的时候,依据着自己的想法,在白纸上用铅笔一遍遍地画出我对 Coding 的构思。
这个过程其实并不需要那些高级的软件,铅笔白纸就够了。如果身为创始人,你无法画出你的产品,那么你不算一个合格的创始人。
在完成了一个基础的线框图之后,你就可以找设计师来将这个相框图做成比较好看的界面。
之后你需要开发,向这些开发人员描述清楚你要的交互功能,比如一个按钮点击的效果,鼠标悬浮的效果。如果是找外包团队的话,你需要一个详尽的文档来一一解释这些功能。
完成了开发之后,你需要来进行测试和验收。身为创始人,你需要参与到测试验收,看看这个产品是不是你想要的。很多时候,第一版并不会很完美,你可能发现你做了很多多余的功能,往往经历了几次改版,这个软件才会达到比较让人满意的程度。
基本上应用级别的软件开发,都是以上四个流程。
现在互联网行业中的软件主要就是网站,APP和公众号了。很多公司都是从公众号起家的,开始做得不错,有不少粉丝了,于是开始做APP,把微信上的粉丝导流到APP,这其实远比我们想象的难。我有不少朋友都是这样做的,这些粉丝并不是轻易地转化为APP的用户的,很多粉丝会缺乏这样的动力。我们后面会再讨论这个问题。
那么,这三者的开发有什么区别呢,第一是流程,第二是涉及到的人,第三是开发成本。
先来说说网站开发。我们的公司位于深圳,在深圳待过的人应该都知道华强北,那是个神奇的地方,在那里你会被告知800块就可以做一个网站出来。
虽然800块开发网站我们都当做玩笑,但是网站开发实际上确实是较便宜的。基本上1到2万就可以找到外包团队给你做出一个简单的网站。
网站的开发主要需要三种角色:设计师来给你设计各种界面,后端程序员来开发后台系统,前端程序员来开发出前端一些炫酷的效果。
当然你可能也听说过全栈工程师,所谓全栈就是什么都可以做,当然这也意味着全栈工程师比较难招,也比较贵。说起来我们公司还发明了一个词,叫“全干工程师”,前端后端的开发除外,市场,运营都干,所以叫“全干”,当然这只是个笑话。
APP的开发相对要复杂一些,开发APP同样需要设计师,前端和后端这三种角色。目前IOS工程师的费用较高,安卓的就便宜一些,其实两者的技术复杂度我认为相差并不大。
一般来说,一个有十几个页面的IOS应用,外包开发的费用大概在5万。如果你希望你的APP既包括IOS版也包括安卓版,那么你其实也只要在之前所说的5万 的基础上再加2-3万。不是说安卓开发就很廉价,而是因为它们可以共用一个后台,设计的风格其实也相对一致。
如果你是自己招人的话,你最好考虑一些比较有经验的工程师,毕竟这涉及到很多接口的设计,工作的配合,APP开发的技术门槛还是相对较高的。
最后来说说微信,微信的开发相对较简单。为什么这么说呢?因为微信的开发其实是嵌套在微信平台的网页开发。包括大家都会知道的数次引爆朋友圈的H5,其实你在朋友圈所看到的就是一个个网页。
而微信开发比传统网站设计更简单,因为开发过程中很少涉及到浏览器的兼容问题。相对PC端,手机浏览器出现相对较晚,标准也是较为统一。因此微信的开发相对来说比较便宜,普通的微信开发在1至2万左右。
现在很多非技术出身的创业者经常会问我,哪些功能是能做的哪些是不能做到。
其实,目前在做各位能想到的功能,技术上都是可以实现的。关于应用层级的软件开发,技术都是比较成熟的了,并不是像登月那样的高科技。
这其实也是我们Coding在开始做码市的时候遇到的问题,包括很多创业者在做第一版的时候,他们没有搞清楚什么该先做,什么以后再做,什么可以不做。
我有个干了20年律师行业的朋友,想要创业做一个针对律师的平台,跟我滔滔不绝地讲了3个小时,最后听完我问他到底想做什么,他自己也答不上来。很多创业者都是这样,有很多好的想法,可是没有梳理好。
第一版应用,需求要砍到不能再砍,最好只解决一个最关键的问题。你想进入的这个行业可能有很多问题,但是你最开始一定要抓住最痛的痛点。推出产品后,有了用户和流量,再通过快速迭代来完善产品。
一开始你如果什么都想做,你会发现你的开发周期被拖得很长。因为软件开发所需的时间和开发的功能数量不是线性关系的。10个功能需要一个月来开发,20个功能也许就要三到四个月了。
所以第一个版本的需求要做到最少,聚焦到最常见场景下的用户痛点,快速推出产品,让市场来检验你的产品。如果你认为你解决行业的最关键痛点,却并没有得到什么反响,你就要思考你对行业的判断是不是有误,你需要重新考量你的商业模式了。
对于很多初创团队来说,这是一个很纠结的问题。在我做Coding的时候,因为我本人是做技术出身,所以很长一段时间我是CEO兼CTO,但是现在我们公司也有专职CTO了。
其实我认为,如果你不是做大数据,算法那种技术创业,其实初期你并不很需要CTO。毕竟多数情况下技术并不是你的核心竞争力。比如你做电商,做O2O,核心在于供应链,在于线上线下的推广,和你的营销方案。
在初期,你需要技术人员,但不一定需要一个CTO来全权负责你的技术工作。我个人的观点是,初期你更需要一个产品经理,而不是CTO。现在产品经理其实相对较多,BAT每年都会产出大量的优秀产品经理,他们可能不懂设计,不会写代码,但是他们懂得做原型,懂得和开发,设计师交流,把这个产品做出来。
产品经理可以帮你梳理你的需求,整理成文档,把你的想法变成实际可行的方案。当你的产品需要快速迭代,你才需要CTO。或者你的产品已经有一定量的用户了,你需要优化你的程序架构。
比如足迹,他们的用户爆炸性增长的时候,明显就遇到了类似问题,产品无法支撑如此大的访问量,这个时候他们就急需一个CTO来做优化甚至重构。
在初期,你更需要产品经理,他们负责把你的产品落地,之后你才需要CTO,他们负责把你的产品变得更好。
一般来说做一个APP的外包价格都在这个范围内。如果超出这个范围,要么是你遇到了一个比较坑的外包团队,要么你想要的功能太多,就是之前所说的需求太多。我的建议是,在初期可以只做IOS版应用,先进入APP Store试水,之后再考虑开发安卓版本。这样相对节省成本,也可以尽早地得到市场对产品的反馈。
我认为,你的产品的第一版,不要过于追求设计。除非你的目标用户群就是这样一群对设计有极高追求的人,比如设计师。这种情况下,设计是你的核心竞争力,那你才需要注重设计。而多数情况下,创业者做的不是这类应用。所以通常来说,第一版更重要的是产品流程要走顺。所以前几个版本都不要太追求设计,否则就会出现本末倒置的问题。
所谓Bug就是软件的缺陷,所有软件都有,比如头像多点两下就闪退了。天下武功,唯快不破。在目前的创业环境下,尽快推出产品是王道。你测来测去,bug测没了,用户也测没了。
所以,不纠结,主要功能好用就上。当年我也面临过同样的问题,产品有很多bug,同事都不敢上,后来我硬是让上线了。有bug慢慢修,没有大问题。
我记得京东最初有一个版本,下单完成后会闪退。于是我每次下单完成以后要重新打开app再下单,或者看看刚才买了什么。所以你看人家百亿美金的上市公司都这样,我等普通创业者还纠结啥?最近上线的微众银行更是说明了这一点。
我认为,如果你的产品强烈依赖C端传播,那么可能从公众号开始做是一个比较好的选择。
微信的传播要比应用快很多,毕竟用户基数很大,分享也非常快速简单。当你的公众号做好了,有很多粉丝了以后,可以考虑导流到APP。
但是有时候这个导流很苦难,因为公众号可能已经能很好地解决用户需求了。而且APP上线了以后,往往公众号还是继续运营,那用户就会缺乏动力去下APP,既然公众号已经够了,为什么还要去下这个APP呢?
所以一定要想清楚,你的产品会不会遇到这样的问题,怎样做到差异化,把你的用户从微信导出来。
如果身边没有开发者资源,短期内希望产品上线,你可以先找外包,同时着手建团队。
由于大环境的原因,外包在国内成了一个贬义词,很多人被坑过,所以不敢找外包。但从模式上,外包是一个非常好的解决团队资源稀缺的方法。
但是我们对外包也要有一个正确的认识,不能期待100分,80分算很好的了,60分也OK。但是长远来看,外包解决不了后续发展的问题。
当你有很多需要及时响应的需求,或者很多琐碎的需求的时候,自己的研发团队是必不可少的。所以,如果你是一名严肃的创业者,还是尽早建立自己的技术团队。