菜单
上次更新时间:
PlutoraBlog - 敏捷发布管理, 开发运维, 数字化转型, 软件开发, 价值流管理

敏捷项目管理:久经考验的现场指南

阅读时间12分钟

软件项目不同于其他工程学科的项目。例如,如果您考虑一个建设项目,’的晚点和时间表’ll(理所当然地)认为,将更多的建筑工人添加到从事该项目的员工队伍中,将会加快速度。软件项目也是如此,不是吗?好吧,不。它没有’t。如开创性书中所述 神话人月, “在较晚的软件项目中增加人手会使它变得更晚”(第25页)。这个怎么可能? 

这篇文章是关于软件项目中的敏捷项目管理的,并将尝试回答这个问题。一世’它将解释敏捷是如何从以前的项目管理方法演变而来的,它的主要构建模块是什么,以及如何以最佳方式管理敏捷软件项目。  

史前史:敏捷之前

实际上,敏捷项目管理是一种相对较新的方法。尽管敏捷项目管理背后的思想根源可以追溯到1970年代,但是这种方法本身不到15年前就变得很流行和普遍(而且,我们甚至可以说在市场上占主导地位)。在此之前,管理软件项目的常规方法是 瀑布 模型。 

用Plutora弥补DevOps和敏捷之间的鸿沟

管理敏捷,DevOps和Waterfall方法之间的依赖关系可能会很困难。 Plutora提供了一个协作环境,团队可以快速行动。

学到更多

管理软件项目以瀑布方式

根据瀑布式方法,管理软件项目的正确方法是依次将其移动到不同的阶段,从接收客户的产品需求到实际的开发阶段,直到为交付的产品提供维护服务。这种方法源于建设项目。他们’直到今天仍然以这种方式运行。在软件开发行业的初期,这种模型的复制就没有过多的考虑。 

详细的瀑布模型

瀑布方法

项目/产品要求

在瀑布模型中,每个软件项目都首先了解客户想要构建的内容的全部范围。我们称此为需求阶段。在这一阶段,我们’仅谈论业务需求。我们’我将尝试回答以下问题:该软件必须做什么?谁会使用它?系统中将有哪些不同的布局(如果包含GUI)?主要特点是什么?  

评价

需求最终确定后,我们需要估算项目成本。这是通过估算开发人员,设计师,产品经理和其他相关人员的数量,并对我们有多少人进行最佳猜测来完成的。’我需要还有多少时间’将带他们去开发项目并将其移交给客户。 

软件架构

之后我们’我们已经了解了项目所需的人力(在软件项目中,除了人力之外,我们很少谈论其他资源,我们不会’这里不需要水泥),如果是外部客户,他们’签署报价单后,我们就可以开始进行软件设计了。在这一阶段,我们对软件进行高级架构设计’要发展,我们’我想回答以下问题:我们将使用哪些数据库?后端/前端框架我们’重新使用?我们的数据模型是什么?系统中的主要实体是什么?此阶段的交付物是技术文档,例如数据流图(DFD),实体关系图(ERD)和UML图。 

编码

在这一阶段,我们进行实际编码。我们以类和实际的软件代码的形式实现技术规范,该类代码可以执行操作并移动位和字节。 

测验

在编码阶段之后,我们需要检查所创建的软件是否满足客户设置的指定业务要求(有时还满足内部设置的技术要求)。 

部署与维护

开发之后,我们需要为客户端部署软件。部署后,我们需要验证一切正常。另外,有时作为服务协议的一部分,我们为客户提供监视,支持和维护服务,以解决系统中发生的故障和中断。 

瀑布模型的问题

软件开发岛’t Like建筑工程

那里 are fundamental differences between software engineering and construction engineering. 

没人知道大型项目要花多少时间

在建筑工程中,项目可能落后于进度,也可能提前,但这被视为异常。绝不能发生的情况,在大多数情况下不会’t happen. This isn’当我们讨论软件工程时就是这样。 在瀑布模型中开发的项目中有 实质上 落后或提前。这是软件世界中正常的事情。发生这种情况是因为’将业务需求转换为有效的软件代码真的很难。在建筑工程中,方法,过程和材料都是众所周知的。软件工程是一门新兴的且迅速发展的学科,缺乏这些学科“know-hows.” 

新要求的成本

建筑行业采用这种方法的动机之一就是变更请求的成本。变更请求的费用高得令人望而却步。试想一下,我们之后客户要三楼’ve刚将屋顶放在最初要求的两个屋顶上。这是一个非常昂贵的更改。流程中后期出现的软件需求可能也很昂贵,但不及其他工程学科中的后期需求那么高。 

增加更多的人力并没有’t缩短项目

随着开发人员数量的增加,管理和简化通信的开销也随之增加。另外,添加新的开发人员时,需要使他们适应项目要求,体系结构要求和代码的当前状态,并向他们解释其特定任务。这是很长的加速时间,这非常昂贵。此外,它将现有的高级开发人员从编码新功能转移到指导新开发人员,从而减少了其输出。实际上,在现有项目中添加许多新开发人员以加快速度,实际上将使该项目甚至在以后交付。 

敏捷来了

敏捷软件开发在软件项目上有了新的视角。敏捷方法不再需要后期的项目并希望下次进行更好的估算,而是认识到软件的特殊性和独特性,并采取了不同的方法。尽管敏捷开发运动的根源可以追溯到1970年代,并且肯定可以追溯到1990年代初,但随着类似的方法的兴起,例如迭代开发和快速应用程序开发(RAD)。在2001年敏捷宣言发布后,这种方法才真正开始受到人们的关注,这些人敏锐地意识到瀑布模型的局限性,并希望为自己和整个行业提供更好的东西。 

敏捷原则

敏捷方法鼓励以动态,迭代的方式进行工作。而不是提前定义整个范围并一次完成所有操作,我们专注于开发冲刺和快速反馈循环。换句话说,我们不’我们不知道整个项目将需要多少资金,但是我们确实知道用我们现有的人力可以在两周内实现。 

如上所述,我们使用冲刺和快速迭代。我们获得了需要在两周内完成的功能列表,我们进行了相应的软件设计,在这两周后,我们提供了可运行的可运行软件。 

敏捷优势

那里’这样准时交付软件的机会更大。那里’提供的机会更大 加工 软件。从接收客户需求到交付工作软件的反馈循环大大缩短。无需等待数月甚至数年才能看到“something,”客户可以在几周内给出反馈。因此,如果有必要进行任何更改,则可以在开发过程的早期解决它们。因此,降低了每次更改的成本以及实施更改所需的时间。该方法的主要优点和结果在 12敏捷 原则 敏捷 在...后面 敏捷宣言

  • 工作软件
  • 准时
  • 快速反馈循环
  • 可以轻松满足变更请求
  • 最终实现高客户满意度的最终目标

I’我将把剩下的文章专门用于敏捷地管理项目。注意:敏捷方法是一个广义术语,包含多个细分或“process frameworks”例如Scrum,极限编程等。在以下各节中,我’ll描述敏捷开发软件项目的主要组成部分。我赢了 ’详细介绍每个组件’原始过程框架(scrum,极限编程,迭代设计)与广义原理大致相同,而确切的来源’与日常工作有关。 

敏捷项目管理

冲刺

敏捷方法的基本组成部分之一是冲刺. 冲刺是工作的基本单位,’由开发团队完成。产品经理为客户做准备’团队将要开发的功能形式的需求。每个功能都是单独的用户故事的集合。这些故事相结合应实现所请求的功能。在冲刺之前,产品经理应该与团队负责人/软件架构师坐下来评估故事,并确保团队在冲刺期间能够开发它们。冲刺’的长度通常为两周,但有时公司会根据需要将其调整为一到三周。它’将冲刺的一些时间分配为非生产/非工作时间很重要。一些团队成员可能生病了,可能弹出紧急生产错误,等等。 

介绍

每个冲刺都以向团队成员的介绍开始。它’重要的是每个人都应该跟他们讲故事’重新发展。此外,任何业务/技术问题都应解决。在此阶段,对故事的长度和复杂性进行评估,并给出工作量估计。所有利益相关者都出席了会议:软件架构师,团队负责人,项目和产品经理,开发人员,质量保证工程师和DevOps工程师。 

规划

我们在介绍阶段之后进行计划阶段。在计划阶段,我们将故事分解为子任务,并从技术角度了解如何最佳实施它们。通常,在此阶段,将有一名高级开发人员/软件架构师在场。 

日常冲刺

开发日从“stand-up”会议(起源于Scrum方法,但也用于敏捷)。我们之所以这样称呼是因为’大约10分钟到达顶部,所有参与者都站着(不涉及喜剧演员)。会议的目的是让大家回顾一下’前一天的工作以及今天的计划。这是提出问题和提及是否有阻碍开发人员开发用户故事的适当时间和时间。 

非生产性工作

如前所述,应该为未知和可能发生的一般意外事件分配时间。例如,生产错误应立即解决,因为它们会影响已开发应用程序的最终用户。团队负责人和项目经理应该对这种情况保持警惕,并确保他们’仍然能够传递冲刺’准时的用户故事。 

部署方式

在开发和测试故事之后,我们需要部署到生产服务器。它’重要的是,在演示阶段必须有DevOps工程师/ SRE在场,并且在冲刺期间可以进行咨询。他们这样’将了解开发人员正在从事的工作的背景。反过来,这种理解将帮助他们快速解决开发过程中可能出现的任何操作问题。此外,他们可以为快速部署开发的功能做好必要的准备。 

回顾性

敏捷/ scrum方法的另一个关键组成部分是回顾。每次冲刺之后,团队成员开会讨论刚刚结束的冲刺。这次会议的目的是创建一个迭代的,不断改进的团队’的表现。会议围绕这三个要点进行: 

  • 在冲刺中什么进展顺利?
  • 我们可以改善什么?
  • 而我们将采取哪些具体行动来实现这一改进?

如正确陈述 这里 在对追溯的详细解释中,“尽管可以随时实施改进,但Sprint回顾展提供了一个正式的机会来专注于检查和调整。”在下一次回顾中,团队成员将评估应该改善的事情是否确实有所改善,如果没有改善,那么是否需要执行改善措施。 

Scrum大师

敏捷/ Scrum过程的独特角色是Scrum Master的角色。通常,此角色将由一名团队成员承担。如果团队有发布经理,那么此人通常也将是Scrum管理员。否则,那里’对于谁将在团队成员中承担此责任,则没有任何偏好。它可以是开发人员/质量保证工程师,团队负责人等。Scrum管理员的主要职责是负责Scrum流程。确保每个人都准时到达每日站立会议,主持回顾会议,确保在计划会议期间一切都清楚,等等。此外,Scrum主管通常是团队与团队之间的主要联系点。组织。这项工作基本上是“process streamliner.” 

使敏捷更上一层楼

避风港’尚未被敏捷革命打断的是企业公司开发软件的革命。但是,如今,这种情况也在发生变化,因为像 Plutora 提供了在企业组织中采用敏捷方法的完整解决方案。 

Plutora平台实质上允许对价值流管理(VSM)流程具有完全的可见性和洞察力,如有关VSM的本书所述。除了VSM,另一种追求敏捷的方法是考虑为您的组织进行数字化转型。 

结论

尽管其起源可以追溯到50年前,但敏捷革命仅在15年前左右就开始受到关注。仅在最近几年,它才成为大多数行业的主导和标准。如今,随着公司为促进敏捷开发提供了一个完整的端到端平台,它也进入了企业市场。凭借其按时交付更好的软件的公认优势,它’确保优化企业软件的开发方式。

亚历山大·弗里德曼 亚历山大·弗里德曼

亚力山大 是软件行业的资深人士,拥有超过11年的经验。他在公司的阶梯上不断前进,并担任高级软件开发人员,团队负责人,软件架构师和CTO的职位。 亚力山大在前端开发和DevOps方面经验丰富,但他专门从事后端开发。