在一个阳光明媚的下午,我正瘫坐在椅子上改bug。忽然有人给我发微信:“我想做个app,多长时间,多少钱?”
从我从业iOS开发到现在,这个问题被问过无数次,比那句:“你是程序员,那你会修电脑吗?”还要令人烦。毕竟那只是句玩笑话,而这句在其他人(更多时候是你的boss,经理这些非程序员出身的IT内行人)看来是你的专业,是你必须要知道的,你能回答不知道吗?显得你太不专业了。但这句话最专业、最负责任的回答就是:“我不知道!“
问我问题的是朋友的朋友,一个在传统行业浸淫多年的人,立志要突破传统行业的束缚,做互联网浪潮中的弄潮儿。当时听他说这句话的时候我有点懵逼:互联网浪潮中的弄潮儿?指示十多年前马云、马化腾那一批吗?现在互联网都蔓延成海了,哪还有潮让你浪,能做一条杂鱼苟延残喘的活下去就不错了。
我真想回答“我不知道”,毕竟还有好多bug等着我改呢,没必要在这浪费时间。但又想到毕竟有过一面之缘,直接回答不知道,是不是显得有点不给面子?在这个问题上,很多时候就是这么栽进坑里的。
“什么类型的app?”这句话发出去,毫无疑问的掉坑里了。他给我发了个app截图,说:“跟这个差不多,不用那么复杂,简单点就行。”
我一看,好嘛,淘宝?!你还真是打算做弄潮儿啊!我说:“淘宝啊?得十多年吧。”加了一个呵呵的表情,一方面想表达我认为你是在开玩笑,我也是开玩笑的回复,另一方面是我想呵呵你一脸。其实我也不算敷衍,淘宝03年成立,做到现在也十多年了。
他明显没有get到我的意思,反而埋怨我没get到他的点。说:“我的意思是淘宝这个类型的app,肯定不用跟淘宝似的那么复杂。简单点,有个列表,可以卖东西就行,几天能弄出来?重要的是要快!”看这意思是:我已想到一个天才创意,就差一个能把创意转化成app的高效程序员了,一定要高效,几天就能做出来,上架使用,推广全国。
这时我能想到的最靠谱的建议是:花钱收购现有的,你觉得最符合你创意理念的那款app。当然这个看似调侃实则靠谱的回答是没办法说出口的。我语重心长的回答道:“电商类app,只保留必要功能:商品展示、登录注册、购物车、下单支付、订单记录,精简到最简单,只是iOS客户端的实现代码也不可能几天内写完。”
本以为我这么说对方会重新估量开发一款app的复杂度,没想到对方急了:“不用考虑那么复杂,先做出一个最简单的,其他的慢慢迭代。就告诉我最快多长时间能搞定,大概花多少钱就行。”
这就是耍流氓了,好话说了一火车,油盐不进。我要还妄想改变他的想法,我就是2B了。索性开门见山的说:三个月。在团队完备,不改需求的前提下。找个人兼职外包,按平均日薪结算。
对方没再回话,不知道是听从我的建议去紧张筹备项目小组了,还是觉得我是个菜狗,这么点小事竟然张口就说三个月,三个月吃屎都赶不上热乎的了。我估计是后者的概率大。喝了口水抖擞抖擞精神,继续改我的bug。遥想当年我也曾豪言壮语,但到最后都跌的遍体鳞伤……
此类情况遇到N多次了,像这种无关自己工作的外部人士咨询行情的还好,毕竟你只需要给出自己认为合理的建议即可。人家也不一定采纳,说不定只是做个对比筛选,事后成功与否都事不关己。但多数情况下是boss或部门经理会问你这个问题,那回答的时候就不是这样轻轻松松侃侃而谈了。毕竟,说出去的话是要兑现的,挖了坑自己填不上,是要栽进去的。
我认为:任何没有完整功能逻辑原型图就问开发时间的都是耍流氓,有原型图问开发时间事后改需求的都是耍无赖。这两者的共同点就是玩死人不偿命。
为什么开发不能像其他行业那样精准预估工期呢?因为开发工作的变数太大。以最常见的app登录功能举例,常见的登录方式有:账号+密码、手机号+验证码和第三方平台登录。手机+验证码需要找短信服务商,要考虑验证码的送达速度和费用问题。第三方登录需要注册账号,创建应用,以及认证开发者资质。腾讯开放平台创建应用需要填写appid,要想有appid需要在iTunes Connect里创建应用,在此之前必须有苹果的开发者账号,申请开发者账号是要公司级还是个人级的?公司级的需要提供邓白氏码。所有这一切都需要时间审核,部分资质认证、账号注册需要花钱。
以上是平台账号问题,下面说开发问题。有登录就得有注册,要保证用户的唯一性,需要有一个唯一标识。以手机号作为唯一标识的话,采用第三方登录的没有手机号,分配独立用户id作为唯一标示的话,先用手机号登录,再用微信登录,就会产生两个用户,如何实现绑定手机号合并用户呢?还有是否保留账号+密码注册呢?如果保留的话还需要有找回密码功能,找回密码是要邮箱验证还是手机验证码验证呢……
一款app并不是简简单单找个码农,噼里啪啦敲一顿键盘就能完成的。至少需要以下几种角色:产品经理,能拍板项目功能逻辑出原型图,把控整个项目进度和团队配合;设计师,根据原型图做高保真交互设计;服务端工程师,做后台数据处理,提供客户端所需接口;客户端工程师,实现app所有的功能逻辑,性能优化,上架应用市场;测试工程师,测试app功能逻辑的正确性和性能。这些只是角色标配,并非每个角色都对应一个人。比如客户端可能需要Android、iOS、WP多个开发工程师,开发往往会兼任测试工作,后台有时会代理产品经理工作。又或者你是精通设计的全栈工程师,对产品又有资深造诣,那便可以身兼所有角色。所以这里又牵扯到团队协作,再默契的团队都会存在沟通成本,只是成本高低的问题。全栈工程师单人开发,没有沟通成本的单兵作战,时间成本会大大增加。所以说:程序开发是一个充满无数不可预知变化的职业,不可能精准预估工期。
道理我们都懂,那开发一个app到底要多长时间呢?预估工期虽然令人讨厌,但确实是一个客户端程序员该具备的能力。当看到原型图预估时间的时候,往往只估算了敲app代码的时间,而且还是个理想化时间。认为自己胸怀万码,光标到处bug灰飞烟灭,功能实现如有神助,代码编译一次通过,简直是码生赢家啊。现实会毫不留情的给你狠狠地一巴掌。比如一个原型图上有10个界面,都是最简单的push跳转,用Storyboard一个小时就能画完,剩下七个小时写数据展示,so easy啊,然后洋洋得意的告诉boss一天就能搞定。然后Storyboard代码版本冲突了,解决冲突用了仨小时,接口响应方式没指明,参数格式写错了,调了仨小时。六个小时过去后,慌了……
之所以不可预估,是因为存在太多的不确定因素。一些不确定因素会因为经验积累而变为确定因素,另一些不确定因素却会一直存在。程序员拿到需求的时候,需要有一个心理预估,每个功能模块多久能完成,哪些逻辑是我以前写过的,哪些框架是需要谷歌才会用的,哪些页面目前还不能确定实现方法。对每个模块分配一个时间块,不求预估准确,但求时间精确,最后把这些时间块加起来,然后乘一个π值,得到的便是一个相对合理的开发工期预估。随着经验积累,慢慢地不需要乘π值了,乘2.5,乘2,乘1.5……能乘以1那就是大神了,乘以0.x就超神了。其实有经验的产品经理也会以这种方式来计算程序员的工期预估,毕竟有经验的产品经理都是被程序员不擅长工期预估而坑过无数次的。唉,相爱相杀,产品狗何苦为难程序猿,程序猿何苦坑害产品狗。
还有开发一个app要多少钱?这个问题其实不应该问程序员,毕竟程序员大多是写死程序、拿死工资的码农。即便是外包公司的程序员也不会接触到公司业务,除非是谈过外包项目,很有经验的产品负责人才能明白这里的行情。常州开发APP公司http://www.czwew.com/case/紫竹云科技根据总体APP的开发周期计算费用,根据APP开发的周期按照人/天计算。
找个人接外包一般会有两种工资算法,一种是按日薪支付,一种是按预算均分。按日薪支付是指预估出该项目大概需要多长时间,并与甲方谈妥时间点,找产品做原型,找设计出图,找程序员开发,并按日支付项目参与者在职岗位的平均日薪,当然参与者需要在规定时间内完成工作。按预算均分是指该项目甲方一共能给多少预算,开发该项目的所有人员均分这笔预算。这种方式适合熟人团队开发小项目,例如之前接的一个小项目三万块,后台、iOS、Android一人一万,原型图和设计是甲方提供的,开发时间总计两周。其实有时间的话,还是蛮乐意接这种小外包的。
相关推荐
开发一个APP的成本和周期是很多企业在启动移动应用项目前需要考虑的关键因素。从APICloud提供的“美食直播APP需求预评估报告”中,我们可以梳理出以下知识点: 1. **平台选择**:APICloud作为一款云服务平台,提供...
APP前端外包开发合同模板.pdf
app软件外包开发合同 app开发 合同必备 外包意向必备
APP前端外包开发合同知识点 一、合作内容 * 甲方委托乙方负责“XXXXXXXX”原生前端开发事宜。 * 乙方负责的内容包括开发制作、应用调试检测、应用开发采用原生开发等。 二、开发周期 * 开发周期为2017年1月20日...
App开发价格表app开发...APP开发价格表app开发成本预算表是一个重要的参考指南,帮助开发者更好地了解APP开发的成本和时间투입。通过了解APP的功能和开发模式,可以更好地预算APP的开发成本,避免不必要的投入和损失。
软件项目外包开发成果验收报告是软件项目外包开发的重要组成部分,它是软件项目外包开发过程中的一个关键步骤。该报告的主要目的是为了确保软件项目外包开发的成果达到预期的要求和标准,同时也为软件项目外包开发的...
Unity3D是一个跨平台的游戏引擎,它支持iOS、Android、Windows和其他平台的游戏开发。Unity3D使用C#作为脚本语言,并提供了强大的视觉编辑器。Unity3D开发涉及3D图形渲染、物理模拟、动画控制、AI、多人网络游戏开发...
标题提及的是“浅议如何开发好融媒体 APP”,描述并未给出具体信息,但我们可以根据标签“APP 应用开发”、“数据分析”、“参考文献”和“专业指导”来推测文章内容涉及融媒体APP的开发技术和策略。标签还暗示了...
在探讨小程序开发的成本和如何选择合适的小程序开发公司时,我们需要考虑多个因素。小程序作为当下流行的互联网工具,为许多线下实体店和传统企业提供了新的营销渠道。小程序的开发成本主要涉及以下几个部分: 1. *...
app开发外包合同模板.pdf
集成服务需求是指将多个软件系统集成在一起,以提供一个完整的解决方案。集成服务需求包括接口设计、数据integration、测试等多个方面。 ### 现场服务需求 现场服务需求是指在客户现场提供软件开发和维护服务,以...
提供app外包报价单,供开发人员参考和使用,里面包含对页面的报价等等
物流APP的开发周期是一个复杂的过程,需要企业具备一定的技术和经验。开发周期的长短直接关系到企业的预算和资源投入。因此,企业需要合理地规划开发周期,确保开发的及时性和质量。 在规划开发周期时,企业需要...
对日外包词汇 对日外包术语 对日外包常用语 对日外包语法。绝对齐全,里面的词汇,只要日文式样书上有的,这个上边99% 有,里面有对应的假名描述, 和日文开发的最常用的语法。
然而,软件开发和维护需要大量的人力和物力资源,这对企业来说是一个巨大的挑战。因此,外包软件开发和维护服务成为企业降低运营成本和风险的有效方式。 项目范围 软件开发维护服务外包管理方案的项目范围包括软件...
软件开发外包合同样本是企业在进行软件开发项目时,与第三方服务提供商签订的一种法律文件。这份合同旨在明确双方的权利、义务和责任,确保项目能够顺利进行并达到预期目标。以下是对合同主要内容的详细解释: 1. *...
### 软件开发外包合同关键知识点解析 #### 一、合同背景与目的 - **合同性质**:本文档描述的是一份典型的软件开发外包合同模板,旨在规范甲乙...总体来看,这份合同是一个较为完善且实用的软件开发外包合作协议范本。
这意味着该文档是一个用于规范和指导软件开发外包活动的合同模板,它涉及到软件开发项目在第三方公司或个人之间的协议。在软件行业,外包合同模板是企业与外包供应商之间非常重要的法律文件,它详细规定了项目范围、...
综上所述,软件开发外包合同是规范双方合作的重要法律文件,它不仅明确了软件开发的具体要求,还涉及到了双方的权利、义务、知识产权归属等多个方面,对于保障双方权益、促进项目顺利进行具有重要意义。
《外包软件开发安全管理规定》是针对互联网行业中外包软件开发的安全管理规范,旨在确保企业在软件系统的整个生命周期中,从采购到使用、维护,都能遵循信息安全的标准和要求,防范潜在的风险。以下将详细阐述其中的...