敏捷开发模式应用浅谈
我最早接触敏捷开发大概是在2011年左右,那时候一些大的公司开始引入敏捷开发,项目中也慢慢在应用。具体什么是敏捷开发呢?官方给出了很多种解释,我理解的敏捷开发就是一种价值观与原则,指导我们更加高效的开发模式,它以用户需求为核心,采用迭代、循序渐进的方式开发软件,其目的在于快速覆盖、适应市场需求。相比较瀑布开发模式而言,具有很大的灵活性,随着用户需求的变动和调整,能将结果快速反馈给用户,真正做到用户需求为中心,最大程度减少不必要的开发工作量。当然这种模式需要用户全程参与,迭代沟通需求,需要客户的配合。
敏捷开发过程中将大项目划分为若干小项目,分别完成、独立运行,这就很容易联想到现在火热的微服务架构。微服务开发就是将整体的服务拆分成多个独立,最小粒度的微服务,也正好契合了微服务的开发思路。敏捷开发中将软件开发的整个交付版本分成很多的迭代交付周期,每个迭代周期里面要交付很多划分的小项目或者功能模块,实现增量交付。
敏捷开发提倡将大的项目团队拆分成小的项目组,它们之间相互独立协作,互不影响。总的任务拆分成独立Story、利用Story墙展示每个任务的执行状态、每日的站立式会议(主要描述昨天干了什么?今天将要干什么?还有什么问题?需要哪些帮助?)、每个迭代持续集成发布以及召开全员头脑风暴会议等。提倡用户参与到产品或项目开发的整个流程当中,通过用户反馈使得产品更加符合用户频繁变动的需求。迭代交付在产品初期会完成基本功能,之后的功能是根据收集到的用户反馈进行开发的,实现功能模块的持续集成,根据任务的优先级可以提前交付可使用的版本。
传统的开发模式,注重文档约束,而敏捷开发原则的推行原则要求团队内部交流方便、文化氛围开放,除去必要的文档约束,如API接口文档,注重团队成员之间的高效交流,降低沟通成本,以此来提高产品、项目的开发效率和质量。小版本更新发布,快速覆盖当前市场、用户需求,让产品能在最短的时间接受市场的考验。这也是客户为什么很乐意接受的原因。
敏捷开发无论是大型公司还是创业型公司都是很受欢迎的开发模式,这种开发模式的灵活性在用户需求不断变化的情况下能够保证软件开发质量,把长的时间点变成短的时间点,建议两周为一个迭代周期。学习了项目经理课程时间管理后,仔细回想一下给敏捷思维很类似。第一个共同点就是计划很重要,敏捷开发中需要划分迭代周期,拆分任务罗列整个Story;而时间管理中是需要罗列某段时间内要干的事情。第二个共同点就是完成任务的优先级,在敏捷开发中需要根据Story的优先级按照迭代周期排列,将基础性、迫切需要上线的Story优先交付;而在时间管理中同样,管理者需要根据事件的紧急程度优先处理;在风险管理中头脑风暴会议和鱼骨图分析与敏捷的实施都有类似的之处。
敏捷开发大大提高了我们部门的开发效率,开发人员各自关注自己负责的功能模块,并且通过高效的沟通,在保证产品质量的前提下,实现了产品的快速迭代!当然敏捷开发的优点我们已经谈到了,但是也有缺点,敏捷实施的成本比较高,需要经过专业的敏捷培训,团队需要敏捷教练的指导;相比较瀑布式开发而言入门门槛比较高;开发管理过程比较繁琐,需要借助专业的开发集成管理工具,比如禅道,Jenkins等。与客户的沟通成本加大,需要专门的BA或PM与客户全交付周期的实时沟通,随时应对客户的需求改动。
总而言之,敏捷开发要做到因地制宜,适合自己的团队模型就好。真正用好敏捷开发是一件非常不容易的事情,希望在以后的开发管理道路上共同进步、共同成长。

浙公网安备 33010602011771号