庖丁开发:专注于互联网项目开发
前面我发过产品从发现需求到上线整个开发流程的文章,由于激烈额竞争和市场迅速的变化,几乎所有的团队在开发这块都采用了敏捷开发模式,今天就来跟大家详细聊聊这种开发模式到底是什么样的。
什么是敏捷开发?
在这之前,简单说说另一种常见模式:瀑布流模式。它是以文档为驱动,在整个开发过程中,开发人员根据需求文档进行开发,一切以文档为依据。
而敏捷开发则是一种以人为核心、迭代、循序渐进的开发方法。它不是一门技术,它是一种开发方法,也就是一种软件开发的流程,它会指导我们用规定的环节去一步一步完成项目的开发;而这种开发方式的主要驱动核心是人,注重的是人与人之间,面对面的交流,它只写有必要的文档,或尽量少写文档,采用的是迭代式开发,适用于以下情况:
适用于软件,因为软件是软的,可以改。要是硬件,改起来就没那么方便了;
适用于客户不知道自己要啥的情况,这样的客户占绝大多数。因为客户不知道要啥,所以你需要不断帮客户弄明白他到底想要啥。换句话说,你需要和客户沟通,合作,倾听反馈,持续改进;
适用于竞争激烈的市场,这样的情况下,赶在竞争对手前交付一个不完美但至少能用的产品非常重要;
适用于快速变化的市场,你在埋头造一辆汽车的时候,客户已经想开飞机满天飞了,这就需要你能一步步的把汽车改成飞机,还能按时交付;
适用于在一个地方办公的小团队,一般 10 个人以内。这样能使敏捷中主要的沟通方式「Face to Face」是可行的。
敏捷开发的过程与分工
敏捷开发的过程主要通过产品范围内迭代内容和周期的确认,规划合理的迭代范围,安排各岗位人员分步骤协同工作,通过开发过程中的任务项的快速跟进和渐进明细原则,保证资源的平衡和工作效率的最大化。
丨前期(前1/4时间)
由产品经理驱动,订制公司产品战略,从而进行需求的采集与确定,根据竞品分析以及用户调研,进行产品原型的制作以及产品需求文档的撰写,在这个过程中,需要与项目经理进行评审,了解产品的开发难度以及可行性,从而对产品需求以及原型图进行合适地调整。
丨中期(1/4时间)
由 UE 完善产品原型的交互细节,有关页面的跳转等用户体验做到极致,然后由 UI 设计师进行界面的设计美化,及时与产品经理进行沟通,设计出与产品经理所想要的效果出来,结合自身的设计理念和技术,将界面设计得人性化、扁平化。
丨后期(1/2时间)
由开发人员进行产品具体的功能设计开发,根据项目进度安排时间,做好工作安排,认真查看设计图以及原型图、产品需求不懂,不清楚的地方及时与产品经理进行沟通,以免辛苦做出的功能与产品的意思不符,造成浪费时间精力的后果,产品进行开发完成后,由测试人员根据测试用例进行测试,将出现的问题进行反馈,及时修复产品的 bug,确保产品在规定的时间进行上线。
了解了这个流程,就容易解释为什么一旦产品出现问题,产品就成为当之无愧的背锅侠,事实上,这怨不得其他人,好比造房子,产品的工作类似打地基,地基不好,房子会塌,房子塌了怪谁,地基打得不好,当然是产品。
所以在工作中产品经理特别需要注意以下三个要点:
丨全程参与
前期的产品战略以及需求,产品经理都是参与其中的。特别是大的产品方向突出的功能点,你都必须全局进行了解。对公司的战略方向是否匹配,之后在产品的开发以及以后产品的迭代是否难度太大;这些问题一定要想清楚,不懂的就问,不断地进行评审深入下去。因为一旦进入开发阶段,突然变更需求,那么这段时间的精力以及时间就浪费了,这对于公司的损伤是巨大的。
丨勤写文档
一个人的记忆不可能会记住所有的东西,所以你必须记录下来,这样能更好地开展工作,在写需求文档的时候,我们需要要对每个用词定义紧抠,少用差不多、不确定等用词来模糊定义,千万不要以为需求文档开发不看,只看设计图,起码测试是需要根据你的需求文档写测试用例的,所以需要慎重对待。
丨做好评审记录
在评审的过程中,与项目经理进行评审后,记得做记录。哪些功能要做,哪些功能不错;什么时间开始,什么时间结束,这些都做好记录。
在互联网时代,使用敏捷开发模式可以让产品在市场上快速试错,根据数据的反馈进行及时的战略调整,让产品在市场立于不败之地,而在这个模式中,产品经理无疑是最重要的一个角色。最后用敏捷开发的 slogan 来总结它的几个特点吧:
「个体与交互」胜过「过程与工具」
「可以工作的软件」胜过「面面俱到的文挡」
「客户协作」胜过「合同谈判」
「响应变化」胜过「遵循计划」