敏捷中的极限编程——项目经理和 nTaskers 的实用指南

已发表: 2020-07-08

我们收到了很多关于瀑布极限编程的请求——以及作为项目经理如何从中受益。 万一您不知道极限编程是什么,它是一种敏捷框架形式,PM 可以在软件开发环境中充分利用可用资源。

敏捷 SDLC 环境中的极限编程 (XP)

资料来源:Udacity.com

极限编程 (XP) 是一种敏捷软件开发框架,专为提高软件质量、开发团队的工作流程和提高客户满意度而设计。

它是一种为您的项目设计的更顺畅和高效的软件开发生命周期 (SDLC) 的方法,它于 1996 年 3 月 6 日首次在一个项目中实施。

为什么选择极限编程 (XP)?

极限编程致力于在整个项目中提供迭代和循环的软件版本; 而不是在一个单一的、漫长的项目开发生命周期之后将所有东西放在一起。

这些较短的迭代周期有助于团队成员和客户在整个开发过程中评估和审查项目的进度。

极限编程 (XP) 是由什么组成的?

价值

XP 包含以下 5 个值:

  • 沟通:任何行业的软件开发项目或项目都严重依赖沟通。 XP 专注于团队和客户之间的有效沟通。
  • 简单性:XP 寻找完成工作的最简单方法。 这意味着做必要的事情,从而减少浪费,只解决已知问题并保持设计简单,以便有效地创建和维护。
  • 反馈:反馈在项目改进中起着重要作用。 XP 鼓励即时反馈。 这有助于团队确定改进空间并修改实践。
  • 尊重:团队必须在个人和专业上相互尊重,以实现目标。
  • 勇气:XP 支持所有级别的勇气。 这可以包括反对什么不起作用以及任何影响项目有效性的事情,或者接受反馈和改进方法。

实践

极限编程

XP 的核心是一组相互关联的软件开发实践。 虽然可以孤立地实施这些实践,但许多团队发现一些实践会加强其他实践,应该结合起来进行。 这可以完全消除您在软件开发中经常面临的风险。

XP 最初的十二种实践包括:

  • 计划游戏
  • 小版本
  • 隐喻
  • 简单的设计
  • 测试
  • 重构
  • 结对编程
  • 集体所有制
  • 持续集成
  • 每周 40 小时
  • 现场客户,和
  • 编码标准。

多年来,团队发现某些做法可以强化其他做法。 为了消除风险,这些应该是统一的。 以下描述包括基于各个团队经验的一些改进:

整个团队:团队应该由具有不同技能的跨职能团队组成。 通过这种方式,它们可以相互补充以实现特定的结果。

坐在一起:大多数人都同意面对面交谈是最好的交流方式。 团队应该坐在一起,没有沟通障碍,例如隔间墙。

信息丰富的工作空间:应安排团队以使团队的工作对彼此以及团队外的附属人员透明的方式进行。

精力充沛的工作:这意味着确保一个人身心健康,可以专注于工作。 这也意味着不应该有过度工作和尊重团队来支持他们的身心健康。

另请阅读:

如何在当今的工作环境中像专业人士一样管理项目?

结对编程:这种做法背后的理念是两个大脑比一个大脑好。 结对编程是指通过 2 个人坐在同一台机器上进行软件生产。 通过这种方式,可以进行持续的工作审查,并且问题会得到更快的响应。 这种方法已被证明可以提高质量并保持更加专注。

故事:故事定义了产品应该具有的对客户和用户有意义的功能。 这些故事用于计划,也可以作为进一步对话的提醒。

每周周期:每周的第一天,团队开会反思迄今为止的进展。 应该在一周内交付的故事由客户选择。 团队决定如何处理这些故事。 这背后的目标是在本周末之前实现可运行的、可验证的功能。 固定期限允许生产可以向客户展示以获取反馈的功能。

季度周期:季度周期的目的是在整个项目的背景下检查每个周周期的详细工作。 客户在特定季度内为团队提供整体计划。 这不仅可以让团队了解项目,还可以帮助客户与其他利益相关者合作。

Slack :这意味着在每周和每季度的周期中添加一些低优先级的任务或故事。 如果团队在更重要的任务上落后,则可以放弃这些任务。 否则,这些也将完成,增加满足估计时间表的机会。

十分钟构建:整个系统和所有测试应在 10 分钟内运行。 如果时间超过此限制,则多次重新运行将花费更长的错误间隔时间。 这种做法鼓励构建过程的自动化,使其定期运行,以运行所有测试。

持续集成:这种做法鼓励立即对现有更大代码库的新代码进行测试。 这有助于更快地发现和修复集成问题。 这种做法需要纪律,并取决于十分钟构建和测试优先开发的做法。

测试优先编程:而不是遵循常规方式,即,

开发代码 -> 编写测试 -> 运行测试

测试优先编程的实践采取以下路径:

编写失败的自动化测试 -> 运行失败的测试 -> 开发代码以使测试通过 -> 运行测试 -> 重复

这种做法也减少了问题识别和解决的反馈周期。 这导致引入生产的错误数量减少。

增量设计:这种做法描绘了预先做一定量的工作以了解系统设计的广度视角。 之后,在交付特定功能时,进一步研究设计特定方面的细节。 这种方法降低了更改成本,并允许您在必要时根据可用的最新信息做出设计决策。

角色

XP 包含了特定的实践供您的团队遵循,并且没有为团队成员建立特定的角色。 但是,根据要求,最常见的 4 个角色是:

客户:期望 XP 客户积极参与该项目。 客户做出有关项目的所有业务决策,例如:

  • 系统应该怎么做? 这是指包含的功能及其完成的功能
  • 系统什么时候完成? 这意味着接受标准
  • 应该花多少钱? 这意味着项目的预算,以及
  • 接下来应该做什么? 交付功能的顺序。

开发人员:开发人员实现客户确定的故事,这意味着交付具有确定功能的项目。

追踪者:追踪者是可选角色,取决于团队是否需要。 这是由一位开发人员执行的,用于跟踪相关的敏捷指标,对于进度评估和确定需要改进的关键领域至关重要。 这对于进度跟踪和确定需要改进的关键领域很重要。 其中一些指标可能包括工作时间、加班时间、通过和失败的测试、速度以及速度变化的原因。

教练:这个角色很有帮助,特别是如果团队刚刚开始。 教练可以是以前使用过 XP 的外部顾问,可以帮助指导团队进行 XP 实践和自律。 聘请教练有助于避免新团队可能犯的潜在错误,从而加快项目进度。

极限编程的优势

  • 极限编程使软件开发人员可以专注于编码,而不必担心与项目相关的非生产性活动
  • 极限编程最重要的好处是,它允许软件公司减少在无用活动上的金钱和时间等资源支出,而这些资源可以用于项目实现和其他头脑风暴会议等活动。
  • 极限编程还降低了项目失败或编码故障的风险,确保客户最终得到他们想要的产品
  • 极限编程是一种了不起的方法,它不需要代码复杂且每个人都难以理解,并且在使用这种方法的开发人员的代码中显示出来,因为每当其他人接管他们的职位时,他们都可以非常理解代码容易地
  • XP 的最大优点之一是一切都是透明的,并且在每个人面前,这有助于让每个人和所有事情都负责
  • 持续的反馈也是极限编程的一个令人难以置信的特性,它允许开发人员无所畏惧地编写代码,而不用担心判断,因为他们总是可以通过收到的反馈来修复小错误
  • 定期测试软件的所有元素,对所有代码进行错误检测,并使用客户验证测试确保客户在比平时更短的时间内获得工作原型或实际工作软件
  • 极限编程还可以帮助公司满足他们的客户并保持他们的业务更长时间
  • 在极限编程方法论中,每个人都是平等的群体,每个人都必须像同龄人一样分担负担,这意味着从需求到代码,开发人员将并肩工作,没有人感到不被欣赏或被遗忘

极限编程 (XP) 生命周期

XP 生命周期可以用周周期和季度周期来解释。

首先,客户定义故事集。 团队估计每个故事的大小,连同客户估计的相对收益,表明用于优先考虑故事的相对价值。

如果由于涉及的技术考虑不清楚,团队无法估计某些故事,他们可以引入 Spike。 尖峰被称为研究的短时间框架,可能在常规迭代开始之前或与正在进行的迭代一起发生。

接下来是发布计划:发布计划涵盖将在特定季度或发布中交付的故事。

此时,每周周期开始。 每个每周周期的开始都涉及团队和客户开会,以决定该周要实现的故事集。 然后将这些故事分解为要在该周内完成的任务。

周末回顾团队和客户之间迄今为止的进展。 这导致决定项目是否应该继续或是否已经交付了足够的价值。

极限编程实践 (XP) 案例研究

适用于 Krizp 系统的 XP

问题

Krizp Solution 是印度一家基于 Web 的初创公司。 他们的商业计划包括为其他小公司或教育机构创建门户网站。 该公司最初是一家兼职企业,雇用已经在其他主要 IT 组织工作的人员。 该计划是只有在创业公司冒险取得成功的情况下才能继续全职工作。 他们的软件开发流程没有框架,因为它只是一家初创公司,项目不多,员工也很少。

该公司缺乏结构化的软件开发方法。 在纸上记下最初的要求后,客户通过电话收到了进一步的信息和说明。 通常,在开发解决方案之后的客户审查之前,需求的主要变化不会发生。

除了错误修复之外,开发人员之间几乎没有或根本没有沟通。 他们分别在不同的功能上工作。 这导致成为讨论改进工作方法的障碍。

此外,这些项目没有记录在案。 没有项目经理来跟踪项目或确保满足客户提出的要求。 开发人员只在要求做的事情上工作。

旅程

极限编程pert认证

向 Krizp System 的团队介绍了不同敏捷框架背后的概念。 XP 方法的使用时间跨度为一个月,并对结果进行了评估。

公司的 CEO 承担了两个角色:客户代表和跟踪者。 对于他的第一个角色,他优先考虑用户故事,将它们委派给开发团队,并定期与客户沟通。 作为跟踪者,他跟踪完成特定任务的时间。 CEO 还每周(或至少每四天一次)启动计划游戏,因为项目很小,开发人员可以更快地完成一个用户故事中的任务。 然而,客户每月只能进行两次直接沟通,其余时间他通过电话和电子邮件联系。

采用了结对编程技术,两个开发人员一起工作。 任务完成后,两位开发人员都与 CEO 一起审查了代码。

引入了客户测试,团队致力于持续的设计改进,每月大约 12-15 次。

概括

XP 方法似乎对公司的软件开发周期产生了很好的影响。 一些积极的变化包括:

  1. 更好的团队协作、沟通和反馈
  2. 更好的任务和时间管理,以及
  3. 在没有技术贡献的情况下增加 CEO 参与度。

IBM 和 Sabre 航空公司的极限编程实践

问题

为了评估瀑布与极限编程的实际应用,通过两个案例研究进行了一项研究:一个在 IBM,另一个在 Sabre Airlines。 每个案例研究都将瀑布方法与 XP 方法进行了比较。

旅程

在 IBM 的第一个案例研究中,研究人员想要研究采用 XP 方法对生产力、质量和客户满意度的影响。 一个由 7 到 11 名成员组成的团队对 XP 实践的采用进行了为期一年的研究。 该团队负责为其他 IBM 团队用来为外部客户创建产品的工具包开发 Servlet/XML 应用程序。 该案例研究分析了同一产品连续发布的两种方法。 第一个是传统的瀑布方法,第二个是 XP。

在 Sabre Airline Solutions 的第二个案例研究中,使用了相同的方法,即通过同一产品的不同版本比较两种方法。 该团队致力于为外部客户开发可编写脚本的 GUI 环境,以开发定制的最终用户和业务应用程序。 该团队由6-10名成员组成。 旧版本是在 3 年前(跨越 18 个月)使用瀑布方法完成的,而新版本是最近完成的(跨越 3.5 个月),使用 XP。

第一步是建立一个极限编程评估框架(XP-EF),它包括三个部分:XP上下文因素(XP-cf)、XP坚持度量(XP-am)和XP结果测量(XP-om):

  • XP Context Factors (XP-cf) : XP-cf 用于记录与项目相关的重要信息。 这些因素包括团队规模、项目规模、重要性和员工经验。
  • XP 坚持指标 (XP-am) :通过 XP-am,可以表达团队使用 XP 实践的程度。 XP-am 还帮助调查 XP 实践中的交互和依赖关系,以及实践可以分离或删除的程度。
  • XP 结果测量 (XP-om) :XP-cm 启用对业务相关结果的评估,即生产力、质量等。

除了框架之外,还与团队成员和客户进行了访谈,以帮助了解团队将 XP 纳入客户满意度。

概括

在 IBM,XP 方法似乎比瀑布方法更有效率,通过以下衡量标准:

  • 测试缺陷:对于预发布,缺陷减少了 50%,对于发布后,通过 XP 方法发布的缺陷减少了约 40%。
  • 生产力:使用 XP 方法比瀑布方法显着提高了员工的生产力。
  • 客户满意度:客户满意度在 XP 中非常高,并且记录为瀑布流的 N/A。
  • 士气:利益相关者的士气在 XP 中被记录为高,而瀑布记录为 N/A。

在 Sabre 航空公司,也发现了类似的结果:

  • 缺陷收集期:由于第一个版本是在 18 个月内创建的,因此基于瀑布的方法中的缺陷收集期也更长。 在基于 XP 的版本中它明显更短。
  • 测试缺陷:对于预发布,缺陷减少了 65%,对于发布后,通过 XP 方法发布的缺陷减少了约 46%。
  • 生产力:使用 XP 方法的员工生产力比瀑布方法高约 46%。
  • 客户满意度:客户满意度在 XP 中非常高,并且记录为瀑布流的 N/A。
  • 士气:利益相关者的士气约为 68% XP,并记录为瀑布的 N/A。

用例和应用

用例 1: Web 开发

问题陈述:公司网站需要重新设计。

参与者:客户、开发人员、跟踪者

  1. 定期活动流程:
  2. 客户告知初始要求。
  3. 开发团队开始编程。
  4. QA 团队测试错误并通知编程团队
  5. 客户有更多要求
  6. 循环重复。

使用 XP:

  1. 面对面会议被称为涉及客户和开发人员。
  2. 客户以故事的形式定义需求、预算和时间表。
  3. 项目经理成为跟踪者并跟踪项目进度。
  4. 开发团队开始结对工作。 代码是同时编写和调试的。
  5. 每周召开一次会议讨论进展情况。 客户可以定义新的要求。
  6. 每季度举行一次会议,讨论故事的状态。
  7. 旧故事完成后,形成新的故事集(下一季度的要求)

用例 2:游戏开发

问题陈述:客户需要从头开始开发游戏。

参与者:客户、开发人员、跟踪者

定期活动流程:

  1. 客户给出要求、时间和预算。
  2. 开发人员开始编程。
  3. QA 团队测试游戏模块。
  4. 客户有更多的要求。
  5. 循环重复。

使用 XP

  1. 面对面会议被称为涉及客户和开发人员。
  2. 客户以故事(游戏模块)的形式定义需求、预算和时间表。
  3. 项目经理成为跟踪者并跟踪游戏开发进度。
  4. 开发团队开始结对工作。 不同模块的代码同时编写和调试。
  5. 每周召开一次会议讨论进展情况。 客户可以定义新的要求。
  6. 每季度举行一次会议,讨论故事的状态。
  7. 旧故事完成后,即高优先级模块完成后,形成一组新故事(下一季度的要求)

nTask 极限编程实践 (XP)

nTask 是一个支持敏捷方法的极限编程框架的任务管理系统。 它是专为团队合作和项目交付而设计的在线任务管理应用程序。 无论是哪个行业,nTask 都促进了 XP 方法并有助于有效的项目规划和流程调整。

以下是 nTask 可以帮助您更好地计划和实现项目目标的一些方法,所有这些都在 XP 框架内。

会议安排

您可以提前安排静坐、每周会议和季度会议。 可以指定会议的议程和时间安排。 您可以定义会议的固定时间或向团队发送建议的时间,以在团队响应后最终确定。

此应用程序还允许您记下会议中讨论的所有重要事项。 然后可以为团队的其他成员审查和发布会议记录。

团队分配

您可以通过团队分配部分安排您的团队和他们将承担的角色。 您可以轻松地为开发人员、跟踪人员和客户定义角色。

项目创建

客户可以创建项目并指定要求。 客户还可以定义预算和时间表。

任务创建和分配

客户可以通过在项目中创建任务来创建故事。 这些任务将包括在一个故事下要完成的活动列表。 然后可以将这些故事分配给程序员。

如果一些团队成员提前完成了故事,客户可以为他们分配“松弛”任务,即剩余时间线内优先级较低的任务。 这可以节省时间以更快地完成项目。

另见:

介绍 nTask 2.0——我们最期待的更新

项目流程

项目经理或跟踪者可以帮助跟踪通过时间表模块的项目流程。 该模块允许对项目进度进行有效监控和评估。 它还有助于单独评估不同任务的时间表以及已达到或未决的里程碑。

轻松协作

有时不可能举行面对面的会议,例如当某个团队在另一个站点工作时。 在这种情况下,项目、任务和会议的自动更新可以确保及时有效的团队协作和讨论。 这避免了在手动安排项目和任务跟进、沟通会议记录或项目更新上浪费时间。

实时评论提供了一种与团队沟通的简便方法。 无论是信息交流还是新想法,这让团队很容易保持一致。

相互依赖的任务被突出显示,每个团队成员都可以在其他团队成员更新时立即检查更新。 这使团队能够及时了解不断变化的情况并相应地计划下一个任务。

此外,客户可以直接与团队协作并更新需求的任何变化。

透明度

nTask 通过其任务板提供所有项目和相应任务和子任务的透明视图。 任何创建或修改的项目都会立即传达给团队。 无需重新检查进度更新、会议邀请或项目报告。

更新、修改或删除的任务为整个团队充分了解并确切知道何时完成什么铺平了道路。

通过其过滤器选项,您可以选择根据优先级或手头的任务查看选定项目的更新。 使用状态选项,可以查看所选任务的状态,无论它是否已开始、已完成或正在进行。

结论

这篇文章详细介绍了作为敏捷工作者如何从 XP 中受益。 此外,创建 nTask 是为了在极限编程和瀑布技术领域内执行此类要求。 因此,请务必阅读,不要忘记通过下面的评论部分分享您的想法。 或者,您可以通过[email protected]给我们发送电子邮件。

另请阅读:
  • 2022 年 21 款最佳免费生产力应用程序
  • 2022 年用于个人任务管理的 23 个最佳待办事项列表应用程序
  • 2022 年项目经理的 10 项基本项目管理技能
  • 完成工作 (GTD) 方法和 14 个最佳 GTD 应用程序和工具
  • 提高团队生产力的 19 大时间跟踪软件
  • 2022 年最适合初创企业的 27 款任务管理软件
  • 2022 年 36 款最佳免费生产力应用程序
  • 2022 年 30 款用于个人任务管理的最佳待办事项列表应用程序
  • 2022 年适用于敏捷团队的 22 个最佳免费项目管理工具
  • 管理虚拟团队:挑战、技巧和虚拟团队管理工具
  • 47 条最佳团队合作名言,以庆祝合作和激励