写在前面

身边有不少朋友,特别是传统行业想进军互联网+的企业老总和一些初入互联网的从业者,经常会问我:“我要做这么一个APP,大概多少钱?”“要实现这么一个功能难不难?”确实,关于互联网产品开发成本的估算还没有一个很好的计算标准,同一个需求,行业中不同团队,不同外包公司给出的报价也是天差地别,那么这是什么原因导致的呢?怎么合理有效地评估互联网产品的开发成本呢?这是本文要分享的内容。

“万事俱备,只差一个程序员!”

经常有老板激情飞扬地跟我讲完自己想做的项目之后,丢出这句话,我总会面露笑容地回答“嗯嗯,是的是的,这个做出来绝对牛B,直接A轮没问题!”,其实心里只有“呵呵”二字。

有一个很棒的IDEA就够了么?其实还差得很远,对于很多老板来说,0到1中间可能还隔着深不见底的鸿沟。你有进行过市场调研么?你有做过需求分析么?你知道如何将想法通过技术实现么?

如果没有那就可能出现下面的场景:

某天,你从梦中醒来,仿佛有仙人给予了指点,你一拍脑门,叮一下,头上亮起一盏灯,感觉佛光普照,哎呀,我怎么能想出这么牛逼的想法呢,简直天下无敌啊,赶紧找人实现了吧。于是找了个外包团队做出来了,发现这个项目根本应用不起来,那就改,一直改,发现预算已经翻了几倍了还没改好,于是又重新找了个团队重新做,报价是上个团队的一半,你心想我是被上个团队坑了啊。不过产品最终还是完成了开发上了线,有点用户,但回头一看这TM跟我原来的想法完全不一样啊,项目开发成本也超支了好几倍,然后你就下了定论:外包确实不靠谱。

产品从IDEA阶段到实现上线,如果没有经过可行性分析以及成本估算,基本就是扯蛋。想法在实际应用中不可行,或者实现成本完全不在自己承受范围之内,再牛的IDEA对你来说也没有价值。

抛开市场调研可行性分析不说,本文重点只讲如何有效地评估互联网产品的开发成本。前几年有篇名为《开发一个APP需要多少钱》的文章比较火,总结出来APP从无到有,组建团队开发,半年第一个版本出来,需要100万。那种粗算方法大家也就看看,对互联网产品实际开发成本估算基本无效。

笔者团队由一群有着9年互联网经验的老司机们组成,在为企业服务的创业过程中,为了解决技术服务市场混乱的行业现状,参差不齐的行业水准,建立了一套行之有效的项目评估标准和开发流程,这里分享给大家我们采用的互联网产品开发成本估算方法:

No.1需求整理

一般可以使用脑图将想法整理下来,大概实现的功能以及结构是怎样的,可以通过树状图来表达: 觉得内容挺多?Too Native!这可能算是正常的,看看下面这张: (图片太长,图片变为横向)

不得不感叹这位老板细致的思维,不过一上来就想做一个京东或者淘宝终归不是那么靠谱,要知道那是几百人做了多少年才做成现在的形态,对于一个新生产品来说,有太多的功能和架构是不必要或者不合时宜的。

No.2 使用奥卡姆剃刀进行MVP梳理

奥卡姆剃刀原理:如无必要,勿增实体。把复杂事情简单化,先解决最根本的问题。

MVP:Minimum Viable Product –最简化可实行产品。

我们需要将需求中最重要最核心的内容梳理出来,将不必要可有可无的功能和模块先剔除掉,保证最小最简化可实行产品框架,这样我们就能知道这个项目的“树干”长什么样子,即使没有“叶子”,也保证系统正常运行,满足目标用户的核心需求。

以微信为例,微信的MVP核心功能是即时通讯(包括发图片、表情)及好友通讯录,早期的版本也就只有这点功能,只有在这基础功能之上,经过好友关系的沉淀,后续迭代的公众账号、扫一扫、摇一摇、朋友圈才有实际的应用场景。 (微信1.0 iOS版本截图)

在MVP的基础上,再考虑是否增加其他功能以提交产品用户体验及用户黏性等,按照互联网产品敏捷开发思路,先实现MVP,然后快速迭代,逐渐试错,这样的节奏既能节约成本还能清晰地走出产品发展方向。

No.3 根据大功能模块进行技术选型

梳理玩需求后,就需要进行技术选型,即为需求选择合适技术解决方案,不同的解决方案之间在开发周期、可开发性、可扩展性、可维护性上可能各有优劣,我们需要根据需求功能在实际应用中场景进行考虑,比如:大数据大多数采用Java或JVM环境语言、机器学习一般采用Python、WEB应用大多使用PHP、高并发少业务逻辑的应用可采用nodeJS等。

不同的技术选型,在开发工作量侧重点上有所不同,拿开发APP举例: 经过我们几个技术老司机的总结,在开发成本、开发效率、可拓展、可维护性以及技术应用发展上进行综合考虑,常规应用我们推荐以下选型方案:

Web应用:HTML5+JS+PHP+Mysql (根据功能需求补选redis、MangoDB等)

移动端应用(App):HTML5+JS+PHP+Mysql+Java+Object-C/Swift(推荐混合开发模式Hybird)

当然选型还要根据自身开发团队所擅长的语言及业务进行调整。我这里需要强调的是:移动端应用采用混合开发是一种极具性价比的方式,而且使用体验有保证,版本迭代开发效率高,可维护性高,强烈推荐各大开发团队选择。

No.4 需求功能技术型拆解

选定了技术型式,然后就可以根据需求拆解功能,每项功能再根据开发人员的技术类型及经验进行完成工时预估: 需要注意的是,很多功能在实现上面除了从零开始全部自主研发,是还有别的选择的,比如即时通讯功能,自己搭建xmpp或者sockets服务进行IM开发,成本很高,不如选择接入第三方IM SDK,如环信IM等。

笔者这里整理了一些常用的第三方服务SDK,能大大减少相应功能的开发工时成本,大家在功能拆解的时候可以根据需求要求及自身条件进行选择:

  • 消息推送:信鸽推送 百度推送 极光推送 个推在线客服:环信移动客服
  • 语音识别:讯飞云
  • 在线支付:Ping++ PayMAX 现在支付
  • 视频直播:腾讯云 网易云直播
  • 即时通讯:环信 腾讯云通讯 融云 网易云信 容联云
  • 排前为笔者团队推荐SDK。

No.5 根据开发人力成本进行总体估算

功能开发工时预估完成后,再根据每个技术角色对应的开发人员的人力成本及团队协作成本进行汇总计算: 有人要问了,每个开发人员的人力成本是不一样的,这个价格估算会有很大差距吧?其实不会,高薪酬的工程师因为经验丰厚开发同一个功能,工期会少很多,总体费用就差不多,举个栗子:

初级PHP工程师A,人力成本400元/天,实现一个爬虫功能,需要半个月,总成本就是6000元 高级PHP工程师B,人力成本1500元/天,实现该爬虫功能,只需要3天,总成本就是4500元

从上面这里就可以看出,之所以像BAT这种大的互联网公司会花“离谱”的高薪来招聘高端技术人才,原因就在于其实总体来看其实是节省成本的一种做法。

以上即是笔者团队总结并实际应用的项目成本评估流程,切实有效,供大家参考。

影响互联网产品的开发成本的主要因素有以下几点:

  • 需求是否经过梳理。 不假思索的执行必定会返工造成重复劳动。

  • 技术选型。 根据需求及开发团队自身条件,选择合适的技术型态才能有效节省成本。

  • 是否合理拆解并选择合适的实现方式。 现在可选择的第三方服务越来越多,很多功能轮子已经被人造好了,咱们只要拿过来拼装使用就行了。

  • 技术人才自身能力。 互联网技术大牛1个顶3个的情况是很常见的,尽量挑选有经验的技术人才参与开发。

在技术服务行业,众所周知,传统的外包公司都是以出卖人力为生,大多通过增加项目数量和压低开发人员工资来获得利润,经常会采用恶意低价的方式来获取项目开发权,这样就导致了同一需求报价天差地别,再加上工作性质无法吸引到更多的优秀技术人才加入,开发质量无法保证。

所以当你有一个好IDEA,不管是自己组建团队,还是选择技术服务商外包开发,根据开发成员的项目经验个人素养及团队协作能力进行开发成本评测才是合理的。可参考以上的方法,自己评估或者挑选靠谱的开发团队替你评估。那些一上来拿不出任何依据就给你一个开发报价或者告诉你无法估量的外包公司,你就PASS掉吧。

原创分享,欢迎转发,转载署名,侵权必究

Copyright © Buzzy 冀ICP备13019516号-3 Published with Ghost