程序员最怕听到的那句话?

“做一个APP需要多长时间?”比那句:“你是程序员,那你会修电脑吗?”还要令人烦。一个条件如此不充分的问题,如何回答呢?总体来说,需求越是明确,团队越是成熟,估算出来的时间就越是准确。而软件开发这个事情,不管发展多少年,不管提出了怎样的方法论,都没办法像传统制造业那样把“工时”算的那么精确,其内部错综复杂的逻辑关系使然,软件工程,绝无可能量产。而这个问题在其他人看来是你的专业,是你必须要知道的,你能回答不知道吗?显得你太不专业了。但这句话最专业、最负责任的回答就是:“我不知道!”

用户看到的只是一个APP,如果他用的是iOS系统,也许他根本就不会接触Android,不知道开发者除了iOS版之外,还需要做一个Android版,(有没可能还有Windows版?这样工作量无疑更大)或者,网页版搞定一切?也许你真正动手做过后就不会这么认为,再说微信小店那种模式真能适用于所有场合么?而且,如果不是网络出现异常的话,一般用户也不会注意到服务器的存在,服务器总是那么默默无闻地为用户全天候地工作,它的开发难度恐怕也不亚于APP本身,而负责APP运维的还需一些人力,大了之后甚至需要组建一个专业团队,他们需要一个“后台”,能随时查看和处理数据,如果需要随时随地都能查看和处理数据,恐怕还得给后台专门弄个APP。

很多人,拿一个手机就开始晃,说:“我要求不多,其实比这个还简单”,指着屏幕上某些地方,继续说:“这个,这个,这个都可以不要,只需要这么一个列表,里面有详情,可以查看修改.....”

我想,我得让他认识到这个问题的复杂程度,我反问道:“需要登录吗?”

对方说:“那当然。”

“什么登录?用户名密码方式,还是手机登录,抑或像QQ,微博,微信这种可以借用的第三方登录?”

对方这回似乎想了一下:“作为移动互联网,我想手机登录肯定是要的,QQ,微博,对了,微信,微信最好也要……哦,你前面说用户名密码,这个应该也是要的吧。”

我很流利地接着问:“那总得有注册,如果你打算用手机登录,那得找个短信平台,还有微信登录,你得先做好企业身份认证,对了,有登录,有密码,那密码找回功能也得有吧。”

“这是肯定的。”

“同时有多种登录途径,你必须要想出一种合理的逻辑来将它们‘整合’,最常见的当然是账号绑定,例如给你的账号绑定手机号码,这样就能用手机号来登录同样一个账号,对微信登录也同理,但如今移动互联网的用户们都挺厌恶注册流程的,所以往往会要求直接手机登录或者直接微信登录,自动完成注册过程,那考虑这种情况,如果用户先用微信登录,然后再用手机登录,而不是绑定,那么就会产生两个不同的账号,而且无法将其再‘整合’起来,我们得想出一套比较完善的方案……”

对方对我所说的似乎有些缺乏耐心:“没必要这么复杂吧?你看看这个APP,这些不都有吗?”

“有没有我前面所描述的那个问题,你尝试过了吗?”

但对方似乎对问题并不关心,他只想知道做这么一个APP需要多长时间,当然要多少钱,这也是他关心的问题。”

所有这些,你说功能也好,细节也好,稳健性也好,都不是能自动从土里长出来的东西,都得需要花时间去想,一款app并不是简简单单找个码农,噼里啪啦敲一顿键盘就能完成的。至少需要以下几种角色:产品经理,能拍板项目功能逻辑出原型图,把控整个项目进度和团队配合;设计师,根据原型图做高保真交互设计;服务端工程师,做后台数据处理,提供客户端所需接口;客户端工程师,实现app所有的功能逻辑,性能优化,上架应用市场;测试工程师,测试app功能逻辑的正确性和性能。这些只是角色标配,并非每个角色都对应一个人。比如客户端可能需要Android、iOS、WP多个开发工程师,开发往往会兼任测试工作,后台有时会代理产品经理工作。又或者你是精通设计的全栈工程师,对产品又有资深造诣,那便可以身兼所有角色。所以这里又牵扯到团队协作,再默契的团队都会存在沟通成本,只是成本高低的问题。全栈工程师单人开发,没有沟通成本的单兵作战,时间成本会大大增加。所以说:程序开发是一个充满无数不可预知变化的职业,不可能精准预估工期。

还有开发一个app要多少钱?这个问题其实不应该问程序员,毕竟程序员大多是写死程序、拿死工资的码农。即便是外包公司的程序员也不会接触到公司业务,除非是谈过外包项目,很有经验的产品负责人才能明白这里的行情。

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20171212A0N2HC00?refer=cp_1026

扫码关注云+社区