当前位置: 首页 > 编程日记 > 正文

多个敏捷团队同时做一个项目_您说您的团队很敏捷……但是这个词可能并不代表您的想法。...

多个敏捷团队同时做一个项目

by Mark Shead

由马克·希德(Mark Shead)

Many things get called Agile — especially by people who are selling something. But the Agile Manifesto makes it clear that it isn’t a methodology. It isn’t a specific way of doing software development. It isn’t a framework or a process. In fact, most of the things that are marketed as Agile tend to miss the point of what Agile actually is.

很多事情被称为敏捷-尤其是被卖东西的人。 但是《 敏捷宣言》明确指出,这不是一种方法论。 这不是进行软件开发的特定方式。 它不是框架或过程。 实际上,大多数以敏捷方式销售的产品往往会错失实际的含义。

Agile is a set of values and principles.

敏捷是一套价值观和原则。

Much of the discussion around Agile has to do with following different practices, using various methodologies, and even developing with specific tools. For example, while a team may find that having a daily standup is helpful, the standup is only “Agile” to the extent that it is the result of a team following the Agile principles and values.

关于敏捷的许多讨论都与遵循不同的实践,使用各种方法甚至使用特定工具进行开发有关。 例如,虽然团队可能会发现每天站立起来是有帮助的,但在某种程度上,站立是“敏捷”的,这是团队遵循敏捷原则和价值观的结果。

When you understand this, it is easy to see that Agile is really a collection of beliefs that teams can use for making decisions about how to do the work of developing software. While this means the term Agile is subjected to a great deal of abuse when people claim that this or that is the way to be Agile, it also means that if you truly understand what Agile is, it is surprisingly flexible.

当您了解这一点时,很容易看出敏捷确实是一种信念的集合,团队可以将其用于就如何进行软件开发工作做出决策。 虽然这意味着当人们声称敏捷就是敏捷的方式时,敏捷一词会遭受大量滥用,但这也意味着,如果您真正了解敏捷是什么,它就会非常灵活。

Agile doesn’t make decisions for you. Instead, it gives a foundation for teams to make decisions that result in better software development.

敏捷不会为您做出决定。 取而代之的是,它为团队制定决策提供了基础,从而可以更好地进行软件开发。

敏捷宣言 (Agile Manifesto)

The Agile Manifesto is only 68 words, and simply says that the signers have found that they can develop software better by valuing the items on the left side of the list more than the items on the right side.

敏捷宣言只有68个字,简单地说,签名者发现,通过对列表左侧的项目进行评估比对右侧的项目进行评估,可以更好地开发软件。

The Agile Manifesto says:

敏捷宣言说:

We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
我们正在探索通过开发和帮助他人来开发软件的更好方法。 通过这项工作,我们开始重视:
Individuals and interactions over processes and tools
个人与流程和工具之间的互动
Working software over comprehensive documentation
通过全面的文档工作软件
Customer collaboration over contract negotiation
客户合作而非合同谈判
Responding to change over following a plan
响应计划变更
That is, while there is value in the items on the right, we value the items on the left more.
也就是说,尽管右侧的项目有价值,但我们更重视左侧的项目。

敏捷原则 (Agile Principles)

In addition to the values of the Manifesto, there are 12 principles that support the values. Once again the principles are very general, and are less about telling you what to do than they are about giving you the ability to make a good decision in a particular situation.

除了宣言的价值观外,还有12条支持价值观的原则 。 同样,这些原则非常笼统,与其说要告诉您怎么做,不如说是让您能够在特定情况下做出正确的决定。

The principles are:

原则是:

  1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.

    我们的首要任务是通过尽早并持续交付有价值的软件来满足客户。
  2. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.

    即使在开发后期,也欢迎不断变化的需求。 敏捷流程利用变更来获得客户的竞争优势。
  3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.

    频繁交付工作软件,从几周到几个月不等,而更倾向于缩短时间。
  4. Business people and developers must work together daily throughout the project.

    在整个项目中,业务人员和开发人员必须每天一起工作。
  5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.

    围绕有积极性的人建立项目。 给他们提供所需的环境和支持,并信任他们来完成工作。
  6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.

    向开发团队内部传达信息的最有效方法是面对面的交谈。
  7. Working software is the primary measure of progress.

    工作软件是进度的主要衡量标准。
  8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.

    敏捷过程促进可持续发展。 赞助商,开发人员和用户应能够无限期地保持恒定的步伐。
  9. Continuous attention to technical excellence and good design enhances agility.

    持续关注技术卓越和良好的设计可增强敏捷性。
  10. Simplicity–the art of maximizing the amount of work not done–is essential.

    简洁性(最大化未完成工作量的艺术)至关重要。
  11. The best architectures, requirements, and designs emerge from self-organizing teams.

    最好的体系结构,需求和设计来自自组织团队。
  12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

    团队会定期思考如何提高效率,然后相应地调整和调整其行为。

敏捷决策 (Agile Decisions)

Since Agile is a collection of values and principles, its real worth is in giving people a common foundation for making decisions about the best way to develop software. For example, consider a team that’s discussing how to get a new project’s requirements from the business owner. The suggested approach is to require the business owner write down all the requirements and sign off on them before beginning the work.

由于敏捷是价值和原则的集合,因此其真正的价值在于为人们提供了决策最佳软件开发方式的共同基础。 例如,考虑一个正在讨论如何从业务所有者那里获得新项目需求的团队。 建议的方法是要求企业所有者在开始工作之前写下所有要求并签字。

A team that is following Agile would say:

跟随敏捷的团队会说:

“While that might work, isn’t that inconsistent with our belief that we should value customer collaboration over contract negotiation? And doesn’t it violate our principle that says the developers should be working with the business owners every day? How can we make this decision in a way that is consistent with our values and the principles we follow?”
“虽然这可能行得通,但这是否与我们认为我们应该重视客户协作而不是合同谈判这一信念相矛盾? 而且这是否违反我们的原则,即开发人员应该每天与企业主合作? 我们如何以与我们的价值观和遵循的原则相一致的方式做出此决定?”

Or consider a developer who is working on implementing a feature for the business owner. The developer realizes he needs a database to make the feature work. The first idea that comes to mind is to stop work on the feature and build out a robust database layer that will handle the needs of the feature and provide support for other development that will be needed later. If the developer believes in the Agile values and is trying to follow Agile principles, they would think:

或者考虑正在为企业主实施功能的开发人员。 开发人员意识到他需要一个数据库才能使功能正常工作。 我想到的第一个想法是停止对该功能的开发,并建立一个强大的数据库层,该层将处理该功能的需求并为以后需要的其他开发提供支持。 如果开发人员相信敏捷价值并试图遵循敏捷原则,他们会认为:

“But building out this layer means I will have to delay delivering what the customer can see as valuable software they can use. If I can find a way to build just what is necessary to deliver this feature, it will better align with my principles.”
“但是建立这一层意味着我将不得不推迟交付客户可以看到的有价值的软件。 如果我能找到一种方法来构建实现此功能所需的功能,它将更好地符合我的原则。”

When you have a team that is following Agile, they will make hundreds of decisions each week in the way described above.

当您拥有跟随敏捷的团队时,他们将按照上述方式每周做出数百个决策。

That is what it means to be Agile: making each decision based on the principles and values that the team has decided to follow.

这就是敏捷的意义:根据团队决定遵循的原则和价值观做出每个决定。

敏捷 (Being Agile)

The decision-making process matters. You can’t try to short-circuit things by taking decisions made by another team and just blindly doing what they decided to do. Another team may make decisions based on the Agile principles and values and end up with a particular way of doing their work. Simply trying to mimic another team’s actions and practices won’t make your team Agile.

决策过程很重要。 您不能通过做出另一个团队的决定而盲目地做他们决定做的事情来缩短事情的发生。 另一个团队可能会根据敏捷原则和价值观做出决策,并最终以一种特定的方式开展工作。 仅仅试图模仿另一个团队的行为和实践就不会使您的团队敏捷。

After World War II, Melanesian islanders were observed trying to bring cargo planes and their supplies from the sky by mimicking the practices they had seen performed during the war. This included clearing the forest to make a landing strip complete with full-sized planes made out of straw. They also created structures that mimicked a control tower out of bamboo and had someone sit in it wearing headphones fashioned from coconuts.

第二次世界大战后,有人观察到美拉尼西亚岛上的居民试图模仿他们在战争中的表现,试图将货机及其补给品从空中带走。 这包括清理森林,以使起落跑道与用稻草制成的全尺寸飞机一起完成。 他们还创造了用竹子模仿控制塔的结构,并让有人戴着椰子制成的耳机坐在其中。

It is easy to fall into a similar type of cargo cult mentality when it comes to Agile. The things that are easy to notice in a highly-functional Agile team are the practices they are using. But the practices a team uses are the result of following Agile principles and values. It is less important what practice a team happens to be using than why they are using it. In fact, as time goes by, a good Agile team is probably going to change and refine what practices they use.

当谈到敏捷时,很容易陷入类似的货物崇拜观念。 在功能强大的敏捷团队中,很容易注意到的就是他们正在使用的实践。 但是团队使用的实践是遵循敏捷原则和价值观的结果。 与团队使用原因相比,团队恰好使用的实践重要性不那么重要。 实际上,随着时间的流逝,一支优秀的敏捷团队可能会改变并完善他们使用的实践。

A team might start with SCRUM and later find that Kanban is a better fit for delivering value to their customers. A team might begin standing up in a daily meeting and later decide it works better for everyone to stay sitting down. Another team might start out using Planning Poker to estimate story size before doing away with story points and instead splitting stories to where they are somewhere in the same range.

一个团队可能从SCRUM开始,后来发现看板更适合为客户提供价值。 团队可能会开始在日常会议中站起来,然后决定让每个人都坐下来更好。 另一个团队可能会开始使用Planning Poker估算故事大小,然后再删除故事点,而是将故事拆分到相同范围内的某个地方。

That isn’t to say it is useless to look at practices used by teams that are performing well, but you can’t go looking for practices to make you Agile. Your principles and values are what will make you Agile. You have to look for practices that support your principles and values. The way you select your practices is what determines whether you are being Agile or not. If a practice is selected because it looks like a good way to follow Agile principles, it is probably a good place to start. The same practice can work poorly for a team if it is selected for the wrong reason.

这并不是说查看表现良好的团队使用的实践是没有用的,但是您不能去寻找使您敏捷的实践。 您的原则和价值观将使您变得敏捷。 您必须寻找支持您的原则和价值观的实践。 选择实践的方式决定了您是否敏捷。 如果选择一种实践是因为它看起来像是遵循敏捷原则的好方法,那么它可能是一个很好的起点。 如果出于错误的原因选择了相同的实践,则对团队来说效果可能会很差。

让我们回顾一下 (Let’s recap)

So what is Agile?

那么什么是敏捷?

Agile is a set of values and principles.
敏捷是一套价值观和原则。

How does a team become Agile?

团队如何变得敏捷?

They make their decisions based on Agile values and principles.
他们根据敏捷的价值观和原则做出决策。

The decision-making process is how a team becomes Agile. The values and principles have enough flexibility to allow teams in a wide variety of organizations to develop software in the ways that work best for their particular situation. It provides enough direction to help a team continually move toward their full potential.

决策过程就是团队如何变得敏捷。 这些价值观和原则具有足够的灵活性,以允许各种组织中的团队以最适合其特定情况的方式开发软件。 它提供了足够的指导,以帮助团队不断发挥自己的全部潜力。

Thanks for reading! This article was originally published on my blog, and you can find more videos like this on my Youtube channel.

谢谢阅读! 本文最初发布在我的博客上 ,您可以在我的Youtube频道上找到更多类似的视频。

翻译自: https://www.freecodecamp.org/news/you-say-your-team-is-agile-but-that-word-may-not-mean-what-you-think-6dd26eaf9b21/

多个敏捷团队同时做一个项目

相关文章:

Python IDLE theme

#转自 http://www.2cto.com/os/201507/418532.html #win10python3.5.2 #保护视力 .idlerc 目录下新建名为 config-highlight.cfg 文件,并加入如下内容 [tango] definition-foreground #fce94ferror-foreground #fa8072string-background #2e3436keyword-foregrou…

【转帖】SQLServer登录连接失败(error:40-无法打开到SQLServer的连接)的解决方案...

在与SQLServer建立连接时出现与网络相关的或特定与实例的错误.未找到或无法访问服务器.请验证实例名称是否正确并且SQL SERVER已配置允许远程链接.(provide:命名管道提供程序,error:40 -无法打开到SQL Server的连接)(Microsoft SQL Server,错误:2) 我刚刚在登录连接SQL Server …

js时间戳转换成日期格式

//时间戳转日期格式function timestampToTime(timestamp) {var date new Date(timestamp * 1000); //时间戳为10位需*1000&#xff0c;时间戳为13位的话不需乘1000Y date.getFullYear() -;M (date.getMonth() 1 < 10 ? 0 (date.getMonth() 1) : date.getMonth() 1)…

30岁找不到工作很绝望_计算机为绝望的新编码员工作方式的快速指南

30岁找不到工作很绝望by Danielle Ormshaw丹妮尔欧姆肖(Danielle Ormshaw) 计算机为绝望的新编码员工作方式的快速指南 (The quick guide to the way computers work for desperate new coders) The sole purpose of your computer is to send and receive information in the…

纯css3代码写下拉菜单效果

1 <!DOCTYPE html>2 <html lang"en">3 <head>4 <meta charset"UTF-8">5 <meta name"viewport" content"widthdevice-width,initial-scale1;user-scaleno">6 <title>CSS3树形菜单</title…

webpack chunkFilename 非入口文件的命名规则 [转]

官网的文档只理解了filename是主入口的文件名&#xff0c;chunkFilename是非主入口的文件名 filename应该比较好理解&#xff0c;就是对应于entry里面生成出来的文件名。比如&#xff1a; {entry: {"index": "pages/index.jsx"},output: {filename: "…

对数组中的数字从小到大排序

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 var arr [{name:1,age:1},{name:2,age:4},{name:3,age:2} ];function compare(e){return function(a,b){var value1 a[e];var value2 b[e];return value1 - value2;} } console.log(arr.sort(compare…

自动售货机编程_Rosmaro中基于视觉自动机的编程简介

自动售货机编程by Łukasz Makuch通过ŁukaszMakuch Rosmaro中基于视觉自动机的编程简介 (An introduction to visual automata-based programming in Rosmaro) To do automata-based programming is to program with states and transitions. States correspond to different…

JAVA设计模式之命令模式

将请求封装成一个对象&#xff0c;从而使你可以用不同的请求对客户进行参数化&#xff1b;对起那个请求进行排队或记录请求日志。 命令模式告诉我们可以为一个操作生成一个对象并给出它的一个execute(执行)方法。Command模式为系统架构带来效果&#xff1a; 实现请求一方&#…

vb.net与matlab的混合编程

首先,使用deploytool工具或者命令行将matlab的m文件编译成类,结果产生动态链接库.dll文件和一些c#代码的类. 第二步,将这些dll文件导入进去,并使用一些win32api函数,因为此m文件会产生figure窗口,这些api函数将此figure窗口嵌入到vb程序窗体里面. 代码: Imports SystemImports …

java web开发初学_2018年学习Web开发的绝对初学者指南

java web开发初学This post was originally published on Coder-Coder.com.该帖子最初发布在Coder-Coder.com上 。 If you’re a beginner coder, this guide is for you!如果您是初学者&#xff0c;那么本指南适合您&#xff01; Here is what this guide covers:本指南涵盖…

PC机安装android apk | adb install -r

PC 下载 *****.apk 通过adb直接安装到android系统 转载于:https://www.cnblogs.com/galoishelley/p/4353423.html

微信小程序之apply和call ( 附示例代码和注释讲解) apply call  bind

微信小程序开发交流qq群 173683895 相同点&#xff1a;作用是一样的&#xff0c;它们能劫持另外一个对象的方法&#xff0c;继承另外一个对象的属性&#xff1b; js中的call(), apply()和bind()是Function.prototype下的方法&#xff0c;都是用于改变函数运行时上下文&#…

(转)@ContextConfiguration注解说明

场景&#xff1a;学习spring实战中相关的单元测试 1 正常使用 ContextConfiguration Spring整合JUnit4测试时&#xff0c;使用注解引入多个配置文件 1.1 单个文件 ContextConfiguration(locations"../applicationContext.xml") ContextConfiguration(classes Simple…

ios pusher使用_如何使用JavaScript和Pusher构建实时评论功能

ios pusher使用by Rahat Khanna通过拉哈特汉娜 如何使用JavaScript和Pusher构建实时评论功能 (How to build a Live Comment feature using JavaScript and Pusher) These days “Social” has become the buzzword and we all want our apps to be the center of these amazi…

OpenDigg前端开源项目月报201704

由OpenDigg 出品的前端开源项目月报第一期来啦。我们的前端开源月报集合了OpenDigg一个月来新收录的优质前端开源项目&#xff0c;方便前端开发人员便捷的找到自己需要的项目工具。 reactide React web应用开发的第一个专用IDE redux-offline 持久性Redux存储 react-loadable 用…

ubuntu 14.04 使用apt-get出现如下问题解决办法

Some packages could not be installed. This may mean that you haverequested an impossible situation or if you are using the unstabledistribution that some required packages have not yet been createdor been moved out of Incoming. 使用aptitude这个代替apt-get …

java通用象棋游戏_在通用国际象棋界面周围模拟GraphQL包装器

java通用象棋游戏The Universal Chess Interface (UCI) has been around a long time and used by many chess engines. What does GraphQL bring to the mix?通用国际象棋界面(UCI)已经存在了很长时间&#xff0c;并且被许多国际象棋引擎使用。 GraphQL带来了什么&#xff1f…

表单高级应用和语义化

type"hidde" 隐藏域 disable 禁用 什么是表单语义化 符合W3C规范 语义化的标签 结构合理、代码简洁 分组<fieldset><legend>标题</legend> </fieldsrt> 关联<lable for"id"></lable>转载于:https://www.cnblogs.com/G…

modelsim中一个神奇又容易忽视的问题

最近在用modelsim对设计进行仿真的过程中发现了一个非常有趣的问题。接下来&#xff0c;让我们跟随着一个设计的仿真来发现问题的原因所在。首先&#xff0c;以调用基于IP核的加法器为例。加法器IP核的参数设置如下&#xff1a; 设计代码如下&#xff1a; /*******************…

html页面引入另一个html页面

微信小程序开发交流qq群 173683895 正文&#xff1a; 上源码&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8" /><script src"js/jquery.js" type"text/javascript" charset"utf-8">…

javascript晚绑定_JavaScript的应用,调用和绑定通过托管野餐来解释

javascript晚绑定by Kevin Kononenko凯文科诺年科(Kevin Kononenko) JavaScript的应用&#xff0c;调用和绑定通过托管野餐来解释 (JavaScript’s apply, call, and bind explained by hosting a cookout) If you have ever been in charge of operating the grill at a famil…

13.angular时间

<!DOCTYPE html><html ng-app"myApp" ng-controller"myCtrl"><head lang"en"> <meta charset"UTF-8"> <title>T38-angular时间</title> <script src"js/angular.js" type&…

【SICP练习】110 练习3.23

练习3-23 原文 Exercise 3.23. A deque (“double-ended queue”) is a sequence in which items can be inserted and deleted at either the front or the rear. Operations on deques are the constructor make-deque, the predicate empty-deque?, selectors front-deque …

js页面跳转或重定向

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文&#xff1a; 页面重定向推荐的4种方式&#xff1a; <!DOCTYPE html> <html><head><script type"text/javascript">window.location.href"https://blog.c…

javascript组件_是的,JavaScript运行Swift。 无论如何都要构建您的组件库。

javascript组件Here’s a question I’ve heard a few times recently:这是我最近几次听到的一个问题&#xff1a; “What if we create a component library in React/Vue/Angular/whatever and a new component technology replaces it?”“如果我们在React / Vue / Angula…

结对开发--求二维数组的最大子数组

小组成员&#xff1a;信1201-1班 黄亚萍 信1201-1班 袁亚姣 一、题目要求 程序要使用的数组放在一个叫 input.txt 的文件中, 文件格式是: 数组的行数, 数组的列数, 每一行的元素, (用逗号分开) 每一个数字都是有符号32位整数, 当然, 行数和列数都是正整数。 二、设计思路 在…

实验二 164 张增进

一、实验目的 掌握基于覆盖理论与基本路径的基本白盒测试方法和实践 二、实验要求 运用逻辑覆盖测试的覆盖准则设计被测程序的测试用例&#xff0c;并运行测试用例检查程序的正确与否&#xff0c;给出程序缺陷小结。 三、实验内容 根据各位同学自己的被测程序&#xff0c;分别作…

微信小程序之录音与播放功能(完整示例demo)

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文&#xff1a; 源码简介&#xff1a; 点击按钮实现相应效果 ↓↓↓↓↓↓↓↓ //test.wxml <button bindtapstart>开始录音</button> <button bindtapplay>播放录音</butt…

为什么您不需要精通数学就可以学习编程

by Pau Pavn通过保罗帕文(PauPavn) 为什么您不需要精通数学就可以学习编程 (Why you don’t need to excel at math to learn how to program) This is probably one of the greatest misconceptions I’ve ever heard.这可能是我听过的最大的误解之一。 If you want to prog…