“AI 技术+人才”如何成为企业增长新引擎?戳此了解>>> 了解详情
写点什么

博弈论和敏捷软件开发

  • 2010-12-11
  • 本文字数:1369 字

    阅读完需:约 4 分钟

博弈论最初起源于经济学,用来分析企业、市场、消费者等的行为。从那之后,其范围和运用已经扩展到了多个领域,如政治学、社会学、心理学和敏捷软件开发。

Alistair Cockburn 最先把软件开发与博弈论中的合作博弈【译注:cooperative game,也称为正和博弈】进行比较。他把软件开发形容为充满创新与沟通的合作博弈。按照 Alistair 的说法,每一个项目都是一个博弈游戏,是一个更大的企业战略层面的博弈的一部分。

Victor Palau 补充道,博弈理论在协作式软件开发中的应用变得越发明显,那种协作是建立在信任的基础之上。他将这种协作与经典的囚犯困境进行比较。囚徒困境解释了为什么即使合作符合两个人的最佳利益,他们也可能不会选择合作。Victor 认为他对于如何成功协作的观点契合了敏捷原则。按照 Victor 的说法,

  • 尽可能频繁地迭代化博弈游戏:确保合作不是基于一锤子买卖。最简单的方法分别是多次交付的综合计划和“大爆炸”的方法【译注:大规模的、从根本上改变的做法】。
  • 提高利益分配:囚徒困境源自于叛变的报酬远远大于合作这个事实。你可以通过提高相互合作的收益,使之对于双方更具有吸引力,来改变这个情景。(例如,当处于“如果没人坦白,那么你们两人都会被释放”这个情景时,困境就不复存在了)

Mike Griffiths 提到了博弈理论在 PMO 工作中的应用。Mike 提出,由于项目是一个合作博弈的过程,团队成员需要协作才能成功。PMO 应该在这个团队的博弈过程里面扮演辅助的角色。从这个角度来看,PMO 的职责变得更加清晰、更加有用。Mike 指出,PMO 的职责包括,

  • 监视和控制项目进度——跟踪博弈的进度、我们是否获胜、我们仍有多少时间、博弈的各个参与者是否遇到问题?
  • 制定和实施标准的方法、流程和工具——辅助博弈游戏、建立和维护设施、提供设备。
  • 提升项目个人的技能,包括培训和指导——培训和教导球员,确定未来的领袖。
  • 多项目管理,包括计划和组合管理、项目之间的协调和资源配置——管理团队、竞争和联盟,以确保一切都保持协调。
  • 战略管理,包括参与战略规划和收益管理——博弈游戏的发展、游戏玩法的新规则、联盟的发展。

Simon Bennett 提到了博弈论在敏捷合同中的应用。Simon 演示了传统的软件开发合同如何不再适合敏捷的项目。Simon 指出虽然合同契约可能产生最佳的结果,但在大部分情况下都会导致最坏的情况,而这正好与囚徒困境一致。

Jurgen Appelo 指出博弈论暗示了永远不存在最优的软件开发方式。按照 Jurgen 的说法,

进化稳定策略(ESS)是一些实践的集合,这些实践使得系统在特定的环境下能够获得成功和生存。ESS 是博弈论中定义的一个概念,但它同样也适用于经济学、生物学、心理学和软件开发。进化稳定策略依赖于它们的环境,以及其他任何处于同一环境下的 ESS。
除了 _ 适应性 _ 可能是个例外,其他的单一属性没有一个是每一个 ESS 都所必需的。博弈论告诉我们,在特定环境下,不可能存在一个对于所有参与者都是最优的战略

正如各种敏捷专家建议,博弈论与敏捷团队的工作方式有着密切的关联。在软件开发的游戏中取得成功结果的关键,就在于与个人奖励相比,最大化团队的目标。根据 Martin Proulx,

正如敏捷宣言的定义——“客户合作胜过合同谈判”几乎总会比最大化个人奖励产生更佳的结果。不幸的是,我们的非理性(有时是贪婪)天性不容许达到最大化的结果。

查看英文原文 Game Theory and Agile Software Development

2010-12-11 03:251937
用户头像

发布了 76 篇内容, 共 23.2 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

Java 常见的 30 个误区与细节!,java面试刷题

Java 程序员 后端

Java个人学习之旅(第十天),java就业班百度网盘

Java 程序员 后端

java中常用单词系列(一),最新Java高级面试题汇

Java 程序员 后端

Java初学01:学习路线,java基础入门清华大学出版社

Java 程序员 后端

Java 多线程 —— 同步代码块,联通java开发面试

Java 程序员 后端

JavaWeb快速入门--JavaScript(2),java面试题库及答案

Java 程序员 后端

JavaWeb快速入门--Tomcat(1),关于Java性能优化的几点建议

Java 程序员 后端

Spring是如何自动注入多类型的?

编号94530

spring bean @Autowired 自动注入

Java内存问题 及 LeakCanary 原理分析,mybatis架构设计层次

Java 程序员 后端

JAVA-数据结构与算法,mysql数据库应用与实践教程

Java 程序员 后端

JavaScript基础大总结,对于java开发岗位的理解面试

Java 程序员 后端

Java中当对象不再使用时,不赋值为null会导致什么后果?

Java 程序员 后端

Java中的泛型,java程序执行过程与编译原理

Java 后端

Java几种常用JSON库性能比较,java接口开发面试

Java 程序员 后端

Java 低代码开发平台“光”发布 2,springboot的工作原理图

Java 后端

Java 调试技术 JPDA 架构解读,图文详解

Java 程序员 后端

Java中高级核心知识全面解析-容器(ArrayList)

Java 程序员 后端

Java中高级核心知识全面解析——常用框架(Spring常用注解

Java 程序员 后端

Java 之类与对象,java零基础自学视频百度云

Java 程序员 后端

JavaWeb学习总结18--redis学习,java高级程序设计作业系统

Java 程序员 后端

Java 多线程 —— 同步代码块(1),狂神说docker进阶笔记

Java 程序员 后端

Java 必须掌握的 12 种 Spring 常用注解!你掌握了几种?

Java 程序员 后端

JavaWeb Ajax详解,java64位3下载百度云盘

Java 程序员 后端

JavaWeb快速入门--Tomcat,java高级特性面试

Java 程序员 后端

Java中高级核心知识全面解析——Dubbo,java语言入门自学书

Java 程序员 后端

Java之StringUtils的常用方法,java整体项目架构图

Java 程序员 后端

JAVA代码审计之Shiro反序列化漏洞分析,浦发银行Java开发笔试题

Java 程序员 后端

内卷把同事逼成了“扫地僧”,把Git上所有面试题足足整理24W 字

Java spring 程序员 mybatis SpringCloud

JavaOOP面试题48题(含答案),大厂Java高级多套面试专题整理集合

Java 程序员 后端

Java中的几种线程池详解,rabbitmqpdf百度云

Java 程序员 后端

Java之Spring基础与IOC,java实用教程第五版答案第四章

Java 程序员 后端

博弈论和敏捷软件开发_研发效能_Vikas Hazrati_InfoQ精选文章