原创阮小鬼 最后发布于2020-02-26 14:11:45 阅读数 193 收藏 最近看了一些敏捷开发的书籍,对敏捷开发有些初步的了解。今天就想来谈谈敏捷开发与传统的项目管理之间的区别。 传统的项目管理也称为瀑布流式管理,学过PMP的同学应该知道项目管理有5大过程组:启动过程组,规划过程组、执行过程组、监控过程组,收尾过程组。而5个过程组里面还有49个过程,就拿范围管理来说,我就需要做的是 规划范围管理->收集需求->定义范围->创建WBS->确认范围->控制范围。例如:我们需要为客户开发一个项目,工作流程就是先与项目发起人一起定义项目章程,然后开一个项目启动会议,确定这个项目的项目经理与这个项目的地位。然后开始规划各种管理,编写各种文档(规划范围管理,规划进度管理,规划资源管理,规划质量管理,规划成本管理等等),所有的文档规划经过项目委员会评审确定后。就可以进入了项目的开发,这时候项目团队成员就开始实施需求分析,程序设计文档的编写,经过评审确定,进入开发,进入测试,最后交付。这就是项目管理开发模式的其中一种:预测型开发。这种开发模式适合确定性非常高的项目,这种管理方式可以大大提高项目的成功。但如果使用在确定性不高的项目,就会是一个比较繁琐的过程了。比如你在开发的过程中出现了变更了,就要开始走变更流程。如果变更影响了成本,进度,范围都要提交到项目委员会进行讨论确定要不要做,做就要更新上述中的所有文档。如果是大变更大到需要推倒重做,那对程序员来说简直的折磨煎熬。还有不知道你们注意到没有,其实对于客户来说,这其中的管理流程都是透明的。客户是最后一个见到产品的人的,也是最能决定产品是否成功的人。这是一个很大风险,所以里面就还有一个项目相关方管理,管理客户的期望。如果客户见到产品才发现不是自己想要的,那就很难受了,这就是一个不成功的项目了。当然啦,传统的项目管理开发的方式可不止这一种。除了预测型开发意外,还有迭代开发、增量开发、混合开发。 因为传统的项目管理模式有了:无法一次性消化所有需求、惧怕需求变更、不断重做。所以有了很多偏向敏捷开发,敏捷开发是欢迎变更,持续交付价值,快速反馈。在说敏捷开发的流程之前,需要先说说敏捷开发的几个方法论:Scrum、极限编程、看板方法等等。我这里分享的主要是Scrum,Scrum是个专有名词,它没有中文翻译,没有意思,也不是缩写。只需知道这个单词是专有名词。Scrum有以下几个概念: Product Ower(PO)-用户/客户/代言人,就是可以做出业务决策的。就是可以确定需求及其优先级 Scrum Master-熟悉Scrum流程的人,指导和确保团队以Scrum方式进行交付 Sprint-Scrum中对迭代的说法,一个项目或者产品的交付是由一个一个Sprint构成的。 User Story-用户故事。具有业务价值的交付单位,一个项目或产品是由多个用户故事构成的。 Product Backlog-项目的代办列表,由用户故事构成。 Sprint Backlog-一个Sprint的代办列表,确定Sprint有哪些用户故事,框定Sprint的开发范围。 一个项目或产品是由很多个Sprint构成的,而Sprint的周期是固定的,一般都是2~4周,最好不要超过4周。在每个Sprint开始的时候,PO都会和IT团队一起开会,PO会对Product Backlog中的故事进行排序,IT团队对这些故事进行估算。因为Sprint周期是固定的,IT团队的成员数量也是确定。所以可以协商出哪些用户故事放到Sprint进行开发,从而确定了Sprint的开发范围。 接下来IT团队围绕Sprint Backlog中的用户故事进行开发。IT团队每天都会进行一次15分钟左右的站会,站会只讨论三个问题:昨天做了什么?今天会做什么?遇到了什么问题?注意:暴露了问题后,私下再组织相关人员开会进行讨论解决方案,而不是在站会上进行讨论,站会只负责尽早暴露问题。怎么解决站会后再组织会议讨论。 在Sprint结束后,PO有会和IT团队聚在一起开Sprint评审会议,IT团队会对PO展示这次Sprint的交付成果,PO有任何反馈或者需求变更都可以作为新的用户故事放到Product Backlog中重新排队,这就是敏捷开发应对需求变化的方法。缩短迭代周期就可以缩短反馈周期,即时整个项目的方向错了也可以尽早发现和调整回来,尽可能降低损失。IT团队可以在这个时候举行回顾会议,审视哪些地方在Sprint做的好的,哪些地方需要调整的,然后订下调整计划,在下个Sprint中进行优化调整。 以上就是敏捷开发中的Scrum方法论的工作流程,与传统项目管理是有挺大区别的。但是没有说那个管理的方式是最好的,每个管理方法都各自有优缺点。不同项目情况针对的使用管理方法才是对项目,对客户最好的。最后给大家推荐一个关于敏捷开发的书《猎豹行动:硝烟中的敏捷转型之旅》,这本可以帮助你了解敏捷开发的一些知识。 ———————————————— 版权声明:本文为CSDN博主「阮小鬼」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/Ruan_Number3/article/details/104501987 资料来源:网络搜集、整理 |
|