作为一个曾经的码农,对于软件工程的知识还是有一点了解,从传统的瀑布式开发到敏捷开发。敏捷开发是一种思想,是解决问题或者开发产品的流程,作为一个产品,了解敏捷的知识不仅可以增加经(逼)验(格),同时也可以更好地融入团队,和开发团队更好的合作。
敏捷开发是什么?
敏捷开发是以需求为核心,通过迭代、循序渐及的方式进行开发的一种思想,八个字总结就是“快速迭代、小步快跑”。硅谷著名的精益创业理论其实也是采用了敏捷开发的思想。
敏捷开发流程
由业务专家提供业务决策,程序员提供估算和建议,设立开发计划
由产品团队决定需求
开发团队对计划进行编码和设计
测试团队进行测试
对版本进行部署发布
整个流程以周期进行迭代,通常周期为1-4周,根据具体情况会有所不同。周期时间较短,这样可以根据每次产品的快速发布效果以及反馈进行下一个周期的迭代优化,真正做到按照需求与反馈进行开发,做到产品更符合市场和用户的需求。
敏捷开发实践方法
1. XP
XP又叫做Extreme Programming,极限编程方法,是敏捷开发实践方法的一种,主要注重对人与人之间的交流、以人为核心。
可以看到,在XP团队中包含了多种角色,但是一般小团队成员只有几个人,在这种情况下会出现多种角色由一个人担任的情况。
XP实践原则
结对编程:两人一组,一个人负责专注编码,另一个人负责思考编码思路、方向,如测试用例编写、如何将代码集成到整体中等。
结对编程可以减少程序缺陷,提高设计质量,团队成员知识共享。
信息共享:保证团队成员对项目进度、状态、问题的共享,并且对整体项目有一个清晰的认识。
根源分析:“每个人都基于他们的能力和知识尽最大努力,与其责备别人,不如责备过程”。对于出现的问题,寻找其根源,解决根源才能保证问题不再出现。(寻找根据的经典方法,问五次为什么)
迭代回顾:敏捷开发的关键就是快速迭代优化,那么在每次迭代之后,团队对上一次迭代进行回顾,对上一个周期中出现的好的方法以及问题进行总结,在下一个迭代周期中进行优化。
2. SCRUM
SCRUM本身是橄榄球运动中的一个术语,在这里用来表示团队成员在开发过程中像打橄榄球一样迅速、激情的完成任务。
在SCRUM开发流程中,主要包含三种角色,有产品团队决定产品功能需求,根据开发团队经验估算开发时间,共同制定一个小周期内的开发计划进行开发,在周期结束后对产品发布,在根据发布情况制定下一个周期的开发计划。
3. XP和SCRUM
两种敏捷开发方法并不是相对对立的,XP实践方法更多的注重人与人之间的交流和沟通,SCRUM实践方法注重流程的设计与管控,在实际的产品开发过程当中可以将两者结合使用,做到你中有我,我中有你的最高境界。
产品经理在敏捷实践中的定位
作为产品,可以不懂开发语言不懂撸代码,但是要了解基本的开发流程以及作为产品在其中扮演的角色。
产品经理在开发流程中,更多的是扮演连接用户与开发团队的桥梁作用,在敏捷开发中注重沟通交流,在和开发团队沟通中,要减少撕逼,增加协作。
在敏捷实践中,产品经理要注重对产品与功能需求之间的适配,在迭代周期中快速决策用户需求反馈,减少开发的频繁需求更改,优化设计以及开发流程。
总结
不同于传统的软件开发流程,产品经理不再是将需求文档、设计文档提交给开发团队后就坐等产品上线了。在互联网时代的产品开发中,要尽快适应快速开发的实践,快速决策产品功能需求,迭代产品设计以适应用户与市场对产品的反馈。