最早认识的一个朋友是程序员,曾经到一家外包公司接单子,小外包公司经常遇到的问题就是和需求方谈产品功能。客户要做外包,对方让他一次性报价,但是客户连功能点自己都不清楚,这时朋友说还是按照具体功能点来做吧。但是客户坚持先给个估价才会考虑做不做,最终朋友在不得已的情况下给了个价钱,结果遇到另外一个程序员只报了他一半的价格去做这个单子.....
可想而知,当开发成本和需求不匹配的情况下,项目失败是必然的!
这种情况在我们目前创业的项目程序员客栈屡见不鲜,其实目前全世界都是类似的这样外包不靠谱的情况。不过我们为了打破这种迎合业主,一味砍价而不考虑实际的情况,在明确需求功能点情况下以原型确定为开发导向的估价的方法将一般项目开发的成功率从32%提升到97%。
很多程序员为了接单子迎合需求方,接的单子虽然多,但失败率大,当我们程序员客栈www.proginn.com明确在定义市场规范后,虽然目前接的单子和外包公司相比还有一定的差距,但是客户的满意度很高,需求的二次复购率很高,缔造的口碑效益让我们明白所走的道路是正确的,所以目前客栈开发需求最大的来源居然是老客户介绍,这让我这个做运营推广的确实也捏了一把汗,口碑的力量大于一切。
以下内容不管您是有需求的客户还是一个想接单的程序员都可以参考一下,看看靠不靠谱:
先问一个小问题吧,如果有人请您安排一个烤肉Party,要您马上估价,你能迅速说出来吗?也许你可根据您的经验说大概多少钱,不过真正的成本,如果您不知道:
多少人要来参加?
要不要娱乐活动?
来party的人年龄?
要不要啤酒或…哪一类的酒?
猪肉、牛肉、羊肉?
甚至更多的细节,相信你随便说数字一定不准!互联网产品开发项目比上述的“烤肉活动”更复杂,下面我就已一名专业的Dotaer身份给大家解释一下我们程序员客栈的开发流程:
第一阶段:沟通需求方产品功能点(项目经理,三号位,抗压)
当需求方把想做的产品发布到平台,这个时候平台的项目经理会与需求方取得联系,了解需求方的初步想法,理清项目范畴看看目前需求方只是一个想法还是到哪个开发阶段,看是否需要投入时间理清楚产品的核心功能点,而不是简单的跟随客户天马星空的想法随意报价,类似“我想做一个类似京东商城”“我想做一个类似滴滴打车”,客栈项目经理遇到很多这种就差几十个亿可以打造的航空母舰的项目了,再问这样的问题,分分钟全部自杀!比较靠谱一点的方案,项目经理简单沟通需求后会给出一个大致的估价区间,但是这个报价是不准确的,因为产品的开发功能点这个时候并没有确定。
所以这个阶段只能说是项目经理免费给出了一份商业开发顾问方案,建议客户落实1.0版本的核心业务流程打通的方案产品。这个时候我们一般会建议客户自己先做一份所谓的产品商业模式图,项目经理也会根据多年的项目开发经验给出合理化的建议,现在的创业者基本都是“火星人”,能想到的不能想到的都会有需求,如果项目经理发现市场已供给过剩充斥太多竞争者产品或想法用现代的科技无法实现,这个时候会给你最真实的建议。
大致的产品商业模式草图
第二阶段:确认想法做产品原型设计(产品经理,四号位,负责BP)
需求方如果有大概的商业模式草图那么将会是一个很好的开发,这个时候产品经理就能很轻松的做出产品的原型图,包括用户体验设计(UX),APP界面的交互逻辑,以及产品功能点实现的大致状况,根据目前我观察坐在对面的项目经理队伍,最容易出问题的就在这一块,如果原型不确定,需求方功能点改来改去,那么如果冒然到下一步UI设计的话,设计师将会与产品经理发生矛盾,如果很不幸到了第四步,那么程序员就会联合设计师一起来打产品经理!
“为什么不和客户确认好需求?MDZZ”
所以第一个阶段产品原型做好的话,就能非常准确的给出产品的开发预算。
产品原型设计图(参考)
第三阶段:UI视觉设计(设计师,二号位,带节奏)
完全准备好原型设计才到这一阶段UI设计体验设计,以为产品经理所做出来的产品功能点是明确了客户的开发需求的,所以UI设计师更多的是提供一种色彩的搭配以及增强用户使用体验感官的设计,此阶段估计以下成本:
参考市面优秀产品的设计分析
提供多种版本的logo解决方案
提供所有主要界面的多种风格设计
互动样板的开发
和前端工程师沟通特效
这个阶段非常非常重要,不只是UI设计师一个简单的设计工作,还要与开发工程师进行沟通、产品经理给出意见、项目经理负责监督、客户负责定稿,最终定稿确认进入下一阶段的开发。
第四阶段:进入开发出产品1.0测试版(前端工程师、后端工程师、iOS工程师、Android工程师=程序员=一号位carry全场)
此时已经明确进入程序员的开发阶段,如果前面没有变动的情况下,程序员加班加点,产品在不久的一段时间后,就能准时上线,通常客户在这个时候是最容易提出新的功能点改动需求:
“不就是加一个小按钮吗?”
“一个简单的自动回复啦”
如果是开发者直接与客户接触沟通的话,你猜会发生什么后果?不是吵架就是程序员撂蹶子不干了!
“当初说好的呢?”
“PM就是个二货,当初为什么不和客户确认好,会不会BP啊?”
这个时候项目经理的重要性就会体现出来,作为“润滑剂”的角色存在,项目经理应该及时和客户沟通产品的完善性,并且解释开发"迭代"的概念,原则性问题不能改变的情况下,确保确定的核心版本上线,而不是和程序员一起起哄进入无休止的修改加功能,“加功能”属于二次迭代开发需求,必须要从第一步重新来做。最重要的“产品上线”工作一定要落实在开发工期内。
第五阶段:进入开发测试Debug阶段(测试工程师,五号位,support)
很多人往往忽略的环节,其实测试是非常重要的一个环节,如果一个产品只是根据客户自我的使用角度去使用,是很难发现产品的缺陷的,这个时候你真的需要一名专业的测试工程师,之前客栈的腾讯测试工程师给出过最专业的测试建议:
1、需求分析、系统分析和测试分析,主要是通过经验找出风险,以及编写用例。代码review。所以经验和技术都很重要!
2、测试用例执行,检查需求实现是否正确,质量好坏(交付影响有多大,是否达标)
3、质量流程和标准的建立。这些可以提升效率降低成本。
4、评测对比,主要是性能,可靠性,以及和竞品的对比测试,这需要投入大量的分析工作,也需要一些专业的方法和技巧。只有经过一套合理而完善的开发体系出来的产品才是满足客户开发需求并且经受的了市场的考证。
最后如果您是有开发需求的客户,您应该拒绝那一开始没问清楚就跟您随意报价的开发团队。如果你是一名程序员,你应该拒绝一开始就没有明确功能点需求的开发客户。当然如果你想和我Solo,我也可以奉陪。