你不得不懂的IT知识-《敏捷项目管理》

 

       国林哥在IBM时,几乎每天都会收到关于“敏捷”相关的邮件,公司鼓励我们去学习邮件里的知识,参加敏捷相关的认证和培训。刚开始我和大多数同事一样不管不顾,后来随着PBC里要求加上成长目标,比如要获得一个认证,我们就不能再回避这类邮件,并逐渐试图弄清楚它的"底层逻辑“,并在公司参加”Agile“相关认证,并在实际项目中运用敏捷实践。

       必须感谢蓝色巨人IBM给自己带来的敏捷文化,在服务华为研发管理时,我就讲敏捷相关的理念和实践带到项目中,并逐渐从0到1组建了一只近100人的研发团队。记得当时多次在团队分享《敏捷项目管理实践》这门我自己编写的PPT材料,我们团队的小伙伴也逐渐理解其中的意义,也清楚明白我们作为敏捷团队的要求,组织的工作效率比较高,大部分人干活都很主动,上班时打满鸡血,摸鱼者越来越少,为华为”活下去“贡献一点微薄力量。

       今天我就来讲讲敏捷项目管理的基础知识,为即将或已经踏入技术管理的小伙伴做一个抛砖引玉的碰撞,以期共同进步。

       首先,项目管理是什么? 我们都知道,项目管理无处不在,项目管理是运用管理的知识、工具、技能和技术于项目活动上,来解决项目的问题或达到项目的需求,通过周密的计划,管理好项目中的人、事、物,达成项目目标。比如结婚,旅游都涉及项目管理,需要你的周密计划,组织。

        其次,敏捷开发的定义是什么?敏捷开发(Agile Development) 是一种以人为核心、迭代、循序渐进的开发方法,是拥抱变化的开发流程。

        再次,敏捷项目管理的定义是什么?敏捷项目管理规划和指导项目流程的迭代方法。 与敏捷软件开发一样,敏捷项目是在叫做迭代的小型部门中完成的。 每个迭代都由项目团队审查和评判;从迭代的评判中获得的信息用于 决定项目的下一个步骤。每个项目迭代通常是安排在两周内完成。

        传统的项目管理面临哪些挑战?比如:缺乏明确的目标、目的,组织与项目目标不一致;需求的不明确,不完整,与不断的变更;缺乏最终用户的参与;不明确的职责;没有做好计划等等。

       让我们来看看敏捷开发宣言:个体与交互高于流程和与工具;工作的软件高于详尽的文档;
客户合作高于合同谈判;响应变化高于遵循计划。

      基于敏捷开发宣言,我们总结出敏捷宣言遵循的12条原则:

      1. 我们最重要的目标,是通过持续不断地,及早交付有价值的软件是客户满意。
      2. 欣然面对需求变化,即使在开发后期也一样。为了客户的竞争优势,敏捷过程掌控变化。
      3. 经常地交付可工作的软件,相隔几星期或者一个月,倾向于采取较短的周期。 
      4. 业务人员和开发人员必须相互合作,项目中的每一天都不例外。
      5. 激发个体的斗志,以他们为核心搭建项目。提供所需的环境和支持,辅以信任,从而达成目标。
      6. 不论团队内外,传递信息效果最好效率也最高的方式是面对面的交谈。 
      7. 可工作的软件是进度的首要度量标准。
      8. 敏捷过程倡导可持续开发。责任人、开发人员和用户要能够共同维持其步调稳定延续。
      9. 坚持不懈地追求技术卓越和良好设计,敏捷能力由此增强。
      10. 以简洁为本,它是极力减少不必要工作量的艺术。
      11. 最好的架构、需求和设计出自自组织团队。 
      12. 团队定期的反思如何能提高成效,并依此调整自身的举止表现。

       项目管理铁三角是什么?时间,成本,范围。所谓“铁三角”,指的是三者中任意一方的变动都会对其他二者产生影响。项目管理的目标是平衡三者的关系,使之达到最佳的效果。各要素相互牵制,而对需求的管理就至关重要,否则就会带来时间,成本,范围的失控。因此,我们需要做好需求统一管控,实现一个”刚刚好“的交付。

     传统开发面临的问题有哪些呢?

       1. 交付周期长:往往是6-12个月甚至更长;

       2. 软件质量差:经常为了赶着上线而牺牲质量;

       3. 团队士气弱:员工积极性不高,相互抱怨产生隔阂;

       4. 按时发布低:长期累积大量任务债务,在临近交付日期时很难完成;

       5. 沟通效果差:员工经常因为小事情不沟通或沟通缓慢,导致进度延迟;

       6. 进度延期久:工作计划的估算靠拍脑袋决定,外行指挥内行。

      传统的项目管理追求”一次把事情做完“,而敏捷项目管理追求增量交付,通过故事分割,多次把事情迭代完成,过程中通过优先级和工作量的评审,与客户在各个版本阶段达成预期。

 

      为什么要做敏捷呢?需求为啥要变化呢?不能一开始多花点力气,想明白吗?

     首先, 项目需求的细节无法提前全都想明白,在做得过程中才逐渐清晰。项目管理过程中的不确定性太多,可能连用户自己都没意识到自己到底想要的是什么。
     其次, 世界变化太快,原本有价值的东西,随着项目的推进,可能会变得不那么有价值了。

     那么,敏捷软件开发的优势有哪些呢? 

     1. 快速交付:1-4周迭代结束即可,并交付可运行的软件;
     2. 降低风险:短周期迭代持续反馈,提高预见性;
     3. 适应变化:小步快跑,快递验证产品需求及调整方向;
     4. 质量更好:持续集成及频繁测试,保证代码质量更高;
     5. 持续改善:迭代结束后进行回顾,频繁检查团队动向;
     6. 满意度高:高ROI的需求快速交付,早期实现商业价值。

      敏捷项目管理的特点有拥抱变化,快速试错,全民阶段性测试。不仅快,而且离用户近!

      敏捷推崇的工作方式是通过5-9人的跨职能小团队,通过2-4周的迭代周期,分批次增量交付需求,通过小团队在短时间内做出一小块需求,并有规律的集成组装形成整体功能。

     那么,什么项目适合传统项目管理,什么项目适合敏捷呢?

     如果需求和技术明确,就适合采用传统项目管理;如果需求和技术都不明确,属于复杂类型的项目,就适合敏捷。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/34740.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React使用antd的图片预览组件,点击哪个图片就预览哪个的设置

使用了官方推荐的相册模式的预览,但是点击预览之后,每次都是从图片列表的第一张开始预览,而不是点击哪张就从哪张开始预览: 所以这里我就封装了一下,对初始化预览的列表进行了逻辑处理: 当点击开始预览的…

加载并绘制时间域内的心电图信号,并实施Q因子为1的陷波滤波器以去除50 Hz频率研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

一篇打通,pytest自动化测试框架详细,从0到1精通实战(一)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 pytest单元测试框…

redis学习笔记(七)

文章目录 zset(有序集合)(1)添加成员(2)获取score在指定区间的所有成员(3)获取集合长度(4)获取指定成员的权重值(5)获取指定成员在集合…

2308C++简单异步改造网络库

用简单异步可以轻松改造同步网络库从而获得大幅性能提升,用它改造异步回调网络库可以让我们以同步方式写代码,让代码更简洁,可读性更好,还能避免回调地狱的问题. 本文通过两个例子分别来介绍如何用简单异步改造基于asio的同步网络库和异步回调网络库. 示例依赖了独立版的asio(…

JavaWeb_总体介绍

文章目录 1.总括2.JavaWeb项目架构 1.总括 2.JavaWeb项目架构

request.post,json和data

参考 https://zhuanlan.zhihu.com/p/140372568 https://zhuanlan.zhihu.com/p/140372568 介绍 这两条请求语句使用了不同的参数传递方式,有以下区别:1. requests.post(urlhttp://xx.8.84.xx:8000/inference, jsondata)这个语句使用了 json 参数&#…

js设置css变量控制页面一行展示指定个数的元素

前置知识: CSS变量之var()函数的应用——动态修改样式 & root的使用 flex相关知识 场景: 动态设置给父元素内子元素设置每行排列几个 通过 document.body.style.setProperty(--itemNum, 5)设置样式变量,然后通过给父元素设置display: f…

RocketMQ发送消息失败:error CODE: 14 DESC: service not available now, maybe disk full

在执行业务时,发现MQ控制台没有查询到消息,在日志中发现消息发送失败,报错error CODE: 14 DESC: service not available now, maybe disk full 分析报错应该是磁盘空间不足,导致broker不能进行正常的消息存储刷盘,去查…

MySQL 窗口函数是什么,有这么好用

先看这段像天书一样的 SQL ,看着就头疼。 SELECTs1.name,s1.subject,s1.score,sub.avg_score AS average_score_per_subject,(SELECT COUNT(DISTINCT s2.score) 1 FROM scores s2 WHERE s2.score > s1.score) AS score_rank FROM scores s1 JOIN (SELECT subject, AVG(sco…

Android 13 MTK平台添加自定义按键,以及CTS问题解决

添加自定义按键流程 一般来说上层添加以下几处修改 驱动层的键值上报,让驱动处理好即可 frameworks / base/core/java/android/view/KeyEvent.java public static final int KEYCODE_DEMO_APP_4 = 304;/** add by songhui for fingerprint Key code */+ public static fina…

IntelliJ IDEA Bookmark使用

1 增加 右键行号栏 2 查看 从favorite这里查看 参考IntelliJ IDEA 小技巧:Bookmark(书签)的使用_bookmark idea 使用_大唐冠军侯的博客-CSDN博客

neo4j的CQL命令实例演示

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

07-2_Qt 5.9 C++开发指南_二进制文件读写(stm和dat格式)

文章目录 1. 实例功能概述2. Qt预定义编码文件的读写2.1 保存为stm文件2.2 stm文件格式2.3 读取stm文件 3. 标准编码文件的读写3.1 保存为dat文件3.2 dat文件格式3.3 读取dat文件 4. 框架及源码4.1 可视化UI设计4.2 mainwindow.cpp 1. 实例功能概述 除了文本文件之外&#xff…

pve和openwrt以及我的电脑中网络的关系和互通组网

情况1 一台主机 有4个口,分别eth0,eth1,eth2,eth3 pve有管理口 这个情况下 ,没有openwrt 直接电脑和pve管理口连在一起就能进pve管理界面 情况2 假设pve 的管理口味eth0 openwrt中桥接的是eth0 eth1 eth2 那么电脑连接eth3或者pve管理口设置eth3&#xf…

【C#】设置有线网卡IP地址,子网掩码,网关,DNS

方法 public partial class ComputerInfo{/// <summary>/// 设置IP地址&#xff0c;子网掩码&#xff0c;网关&#xff0c;DNS/// </summary>public static List<NetworkAdapterInfo> SetIpAddressSubMaskDnsGeteway(string ipAddress, string subMask, stri…

MySQL库的操作

文章目录 MySQL库的操作1. 创建数据库2. 字符集和校验规则(1) 查看系统默认字符集以及校验规则(2) 查看数据库支持的字符集和校验规则(3) 案例(4) 校验规则对数据库的影响 3. 查看数据库4. 修改数据库5. 删除数据库6. 数据库的备份和恢复(1) 备份(2) 还原 7. 查看连接情况 MySQ…

在 Windows 中恢复数据的 5 种方法

发生数据丢失的原因有多种。无论是因为文件被意外删除、文件系统或操作系统损坏&#xff0c;还是由于软件或硬件级别的存储故障&#xff0c;数据都会在您最意想不到的时候丢失。今天我们重点介绍五种数据恢复方法&#xff0c;以应对意外情况的发生。 1.从另一台机器启动硬盘 如…

分享一组天气组件

先看效果&#xff1a; CSS部分代码&#xff08;查看更多&#xff09;&#xff1a; <style>:root {--bg-color: #E9F5FA;--day-text-color: #4DB0D3;/* 多云 */--cloudy-background: #4DB0D3;--cloudy-temperature: #E6DF95;--cloudy-content: #D3EBF4;/* 晴 */--sunny-b…

python基础环境建设(pip、anaconda)

1.pip 配置文件路径&#xff1a; centos&#xff1a;~/.pip/pip.conf windows: C:\Users\admin\AppData\Roaming\pip\pip.ini 文件内容&#xff1a; [global] index-url http://IP/repository/pypi-tsinghua/simple trusted-hostIP今天centos7.9、python3.6环境 pip install…