创业 App 开发到底该外包还是自己招人?

王鑫爱吃鱼

共 2929字,需浏览 6分钟

 · 2016-08-18

file

随着移动互联网创业火热,开发自己的APP到底找外包?还是自己招程序员呢?外包吧听得太多的是不靠谱,自己招人吧工资高的离谱,这个问题对于没有技术背景的创业者而言,一直是个两难的抉择。如果此时,你也准备创业,拥有自己独特的优势资源,如何让一个完美想法产品快速进入市场,发挥所有商业资源的效益?我希望以中立的角度来剖析优劣势提供各位参考,希望对于大家产品开发的过程,有更深入的帮助。

到底要不要找外包开发APP呢?

一般来说,如果是短期的产品或是简单的项目开发,大部分人会选择外包开发,这里不仅仅是创业型小公司,中大型公司开发新的技术领域时,其实也常常如此选择,然后打的如意算盘就是,价格低、开发速度快、工程团队不需要管理、产品做出来后再找来程序员接手即可。我只能说你们还是太年轻啊,这个世界从来只有错买的,没有错卖的。

当选择价格低的外包开发时,往往会遇到高风险,质量不可控等等因素,而和外包合作的方式,大部分情况下就是一份简单的合同而已,说实在话,我接触过很多创业者前期找外包公司做项目,即使每个外包公司都希望在合约中详细规范开发规格和需求,但从来没有遇到过项目需求方是不改变需求的,所以就造成了和想象中开发出来的产品相差甚远的结果,其实双方都有苦衷,需求方不明白开发是一个过程不是一个结果,开发方也因为需求方的需求不明确导致开发有偏差,最后的结果往往是就像谈恋爱分手一样,草草结束。

既然外包这么不靠谱,为什么还要选择外包呢?我认为外包提供最大优势就是弹性化服务,因为一个月内要临时招到几个资深程序开发者几乎是不可能的事情,但是通过外包公司的话,他们能够帮你迅速解决问题。

自己招人会不会比较好一点呢?

file

上图是我最常用来说明聘人会遇到的问题,简而言之,当公司刚开始开发产品时,很可能聘用多个方向的程序员,但是当产品发展逐渐迈向稳定时,程序员的工作量随之降低,代表产品更新的迭代需求在慢慢减少,工程师的管理成本太高,甚至有的程序员在团队就直接干脆被拉去当业务,我个人觉得如果让程序员去做其他的非专业的事情是对程序员的一种侮辱。

公司招人,很多人会觉得优点当然是自己的人比较好使唤,最起码数据不会外泄吧,要不然就是开发精力充足的情况下,想做什么都可以做,如果公司制度和配套全面,这些理想状况确实可行,但是我也常听到许多意外,除程序员能力不够全面等普遍问题,公司文化跟程序员不合造成工作效率低,或是程序员很拽,代码留一手,甚至擅自离职,当然也有公司业务成长或资金扩充时,程序员认为自己的技术成本应该提升,导致团队发生矛盾,偏偏请佛容易送佛难,这个时候又会影响到产品的开发。这些情况都相当常见,也成为公司内部管理最大的隐忧,只能说一个公司的成败,很多时候取决于老板自己看人的经验。

如何做出选择?

要回答这个问题,我认为最重要的因素为「公司内有没有架构师?」。这个人或许是CTO,或许就是CEO,当然也有大神级别的UI设计师有能力自己规划系统架构。担任「架构师」有个极为重要的工作:切割系统并且分派工作。大部分刚成立的团队,有些成员是程序员,但一般程序员并没有能力架构整个系统,举例来说,假设今天要做一个像是京东这样的的App,构架者必须明确定义数据结构,并建构数据库大概的样貌,然后拆解App要处理的工作项目与Server端要处理的工作项目,最后再用API的规范文件规范出来,这样剩余的工作,就可以分别找App开发工程师、Server工程师个别开发,此时可以选择再搭配外包进行单纯且密集的合作,运用模块化外包的弹性,在短期内完成工作。

如果公司没有架构师就进行开发,光在梳理清楚产品规格时,就会遇到很大的阻力,因不清楚产品的技术构架,也没办法实践找寻从开发到上线的最短路径。此时,我通常建议团队至少招聘三种人,产品经理和UI设计师,产品经理必须对于使用者经验有认知的,这两种角色都必须要思考整个产品面向的规划,聘到这两种人,对于产品的开发过程来说,绝对会是很大的帮助,因为他们可以帮助你确定你开发需求,技术部分的开发前端、后端、IOS端、安卓等等。

如何降低外包的风险?

在产品开发的过程,为了避免程序员掌权的风险,最重要的两件事情,就是版本控制以及代码的透明管理,不管招人也好、外包也好,一定要在早期就规范这两者数据文件,我们也经常听说很多程序员离职后,接手程序员干脆重做重构的惨案,或是外包公司倒闭,连数据库的密码都没留下。

在我们程序员客栈官方的项目开发管理过程中,我们对版本的控制开发以及代码管理非常的严苛,即使这样很多时候我们的dong 会很累,但是我们整个开发组都一直稳步前进,这样会大大降低开发风险,如果你是一名不懂开发的创业者,不管你是遇到就差一个CTO的尴尬还是找外包给你开发产品,请一定要记得让他们教你如何看数据库、如何进入到产品的Server、所有系统的帐号密码、代码放置的位置(最好用原始代码管理工具)以及产品原型设计的高保真原型图一定要留下来,这都为了追溯产品架构的最佳数据,即使成本会上升这些都必须要去做。

做一个尊重开发者的BOSS

经常听到一些CEO说:“既然你们开发是专业的团队,应该什么事情都能够处理好,我就不用担心技术的事情,我只要一个结果,开发工期到了我就要看到产品。”遇到这样的CEO,我深深对开发团队表示心塞,我也帮不了你们,因为他对产品的开发毫无概念。

在产品开发的过程,一定会有规格的改变,哪怕是一个按钮的位置要改变或是颜色要调整,甚至是一连串改变设计的过程,都是常见的状况,在这过程中,公司CEO不愿意了解为什么改变一个东西,会造成程序员的困扰,会造成构架整体的改变,也许CEO连最基本的技术构架都不愿意花时间理解,说要做移动互联网创业的领导者,这实在是一件可笑又可怕的事情,当然不只是CEO,很多只懂销售的软件外包公司的老板也都是如此。

目前我在程序员客栈工作,因为我根本不懂程序开发,但是最起码的流程我清楚,所以对团队开发组的程序员都是相当尊重,即使我做seo需要改变产品方向,也知道取舍,尽量减轻程序员开发工程中的负担,一起了解也许会多花一点时间,但也一定会让产品的营运端跟开发端合作更为紧密顺利。渐渐的,你也会发觉,即使你并非技术背景,但也会知道什么是Git、什么是Linux、什么样的工作是Backend的人在做、什么样的工作又是Frontend跟app开发者在做的工作,这些细节,会让你了解产品开发状况的最佳切入点。

不管找外包还是自己人,找对人最重要

最后我们建议,不管是外包也好,自己招人也好,都希望是以「长期合作」为双方共识,价钱应该一开始就说好,大家合作的底线也都说好,遇到不愿意提供代码的开发者,我会宁愿不合作,也不要为了赶进度硬要合作,因为那只会造成后续开发的问题。我最强调的是,不管在哪种合作模式下,诚信一直都是最重要的事情,找到适合自己的方式,即使遇到了问题,也可以一起共度难关,一起为开发延迟的状况找个最好的解法,而不是互相归咎责任,毕竟,增加产品开发的速度还不是为了把产品更快更完整的销售到市场上,依此共识,不论是招人也好,外包也好,只要大家目标一致,最后一定会达到双赢的结果。

浏览 13
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报