AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

Liz Keogh:敏捷十年——对失败的预言,以及预言的失败

  • 2011-09-16
  • 本文字数:1647 字

    阅读完需:约 5 分钟

本文属于 InfoQ 发布的敏捷宣言10 周年系列文章

在我的职业生涯第一个七年中,我所参加的项目仍保有很多瀑布式的习惯。七年的时间,我坐在电脑屏幕前,一个键一个键敲出代码,在地下室里,直到夜晚,有时甚至是周末;而且这七年里我开发的任何东西都没有转化成产品。项目有无数新增特性,它们被重新启动,被置之高阁,曾有某个项目进入到了诉讼阶段,但是没有一个人用过我这七年里开发的任何东西。

所以当我第一次遇到敏捷的时候,像很多运动的新来者一样,我充满热情。“你们做错了!那样不行的!”我大喊着,看着那些公司,它们无法拥抱全新的、增量式的、协作式的软件开发方法。当时的社区普遍流行这样的态度。预言已经写下来了:无法变革的公司将会无法生存。

敏捷宣言写成到现在已经十年了,很多公司还是无法高效地交付软件。某些这样的公司“在做敏捷”。其他公司仍挣扎于它们长达数年的项目中,依旧使用项目前期进行分析、设计的方法。但是它们还活着。

敏捷宣言的开头是:“通过自己践行并帮助别人践行,我们正在发现交付软件更好的方式。”对应到作者们当时应用敏捷方法的上下文,这是可行的。很多是小型团队,坐在一起,而且有互相配合的技能,易于成功。过去这几年,我们不断把敏捷应用到大型的项目和组织中。这些企业大怪兽变起来更慢,如果还可以变的话。Richard Durnall 写了一篇关于敏捷实施模式的博客,说明商业组织各个方面是如何被打破的,而且被迫变革去支撑敏捷实施,包括人、工具、监管、客户、财务控制和组织结构。然而,很多时候,我们看到的是公司的结构对变革流程会强力抵抗。人们保持瀑布式的习惯和思维方式,制定出武断的项目结束时间,并让开发团队严格遵守。人们使用工具而不是对话交流,更不要说记录和支持了。监管部门仍然要求确定性,可这在项目的完整生命周期中很难获得。客户坐在一个办公室里,开发人员在另一个,他们无法顺畅沟通或是提供反馈。财务总监坚持分析必须要先完成,在理论上要保证预算获得好的投资回报。

我们面临的问题是:传统上,瀑布式有一种“自行车式思考方式”。其前提是:软件项目可以通过分析分解成很多小部分,并得以实现,而且这些实现可以组合成一个系统。

不幸的是,“软件项目”并不是分析就可以完成的,分析得到的实现也无法组合得到一个成功的项目。项目的组成包括参与进来的人,他们的想法和阐述,其上下文是由围绕着这些人的其他人创造出来的。然而,这些人并不是项目的资产。Jurgen Apello 在他的书《Management 3.0》中指出:系统的资产通过系统中各个元素的交互浮现出来。只要环境让交互僵化,或是鼓励像层级式这样更简单的交互方式,那么敏捷就无法成功。

如果复杂度无法避免,我们就必须遵循项目中人与人的交互、以及项目之间的交互浮现出的模式。作为社区,我们签署了“个体和交互胜过流程和工具”,然后又强制推行流程来控制交互,同时使用工具而不是交互来支持流程;这样做我们是有罪的。未来,我们传授的实践将会促进交互,而不是控制它们。我们已经看到这样的趋势,比如看板等元流程的兴起。帮助理解复杂度、特别是人的复杂性的模型,也在世界各地的敏捷大会中传授,比如系统化思考、复杂度思考、心理学和社会学等等。

我们需要在组织的更高层次改变的,还有一种实践:让反模式的影响更加明显。在开始时我们语言的变革还没有看到多少。也许在接下来十年中,我们将会看到不同的宣言出现,它的开头是:“通过自己践行并帮助别人践行,我们正在发现推进变革更好的方式。”

关于作者:

Liz Keogh 是一位经验丰富的经验和敏捷教练、培训师、博客写手和知名的国际讲师。她有坚实的技术背景,工作成果覆盖多个领域,包括软件开发、架构,到心理学和系统化思考。她因其在 BDD 社区的积极参与而知名,并在 2010 年获得 Gordon Pask 大奖,理由是加深了敏捷领域中对于现有思想的理解,同时还能“提出自己某些非常疯狂的想法”。


给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家加入到 InfoQ 中文站用户讨论组中与我们的编辑和其他读者朋友交流。

2011-09-16 00:002488
用户头像

发布了 479 篇内容, 共 172.5 次阅读, 收获喜欢 52 次。

关注

评论

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

笔记:《如何系统思考》之如何做到系统思考

wiflish

思维方式

当我们谈到ThreadLocal的时候,我们在谈什么?

Jason

Java 多线程 ThreadLocal

Redis 6.0 新特性-多线程连环13问!

牧码哥

redis 多线程 io

【译】【UX】一个页面可以有多个面包屑导航吗?

Yukun

用户研究 UX 面包屑导航

金融「中台」十宗罪

FinClip

中台 企业中台 业务中台

写作的意义到底是什么

董一凡

写作

翻译和产品本地化的区别是什么?

葛仲君

翻译 本地化 全球化 产品开发

C++线程池的实现

泰伦卢

c++ C# 线程池

关于GDB你需要知道的技巧

泰伦卢

c c++ C#

css常见问题总结

靖仙

CSS css3

DDD 实践手册(4. Aggregate — 聚合)

Joshua

设计模式 领域驱动设计 架构模式

面试指南 | 终于要跟大家见面了,我有点紧张。

Apache Flink

大数据 flink 流计算 实时计算

Clickhouse 性能测试

久吾尔岂

写字工具更新史

Bonaparte

学习 读书笔记

聊聊苹果账号的那些事儿

不要艾特我

iphone

开始每周写作计划

M1racle

各大公司面试题分类整理

是小毛吖

面试 后端

业务代码的救星——Java 对象转换框架 MapStruct 妙用

周三不加班

MapStruct 对象转换

从一道面试题来看计算机基础知识的重要性

周三不加班

数组 堆栈 函数栈 函数栈调用

开源商业模式促进金融业科技生态的发展

FinClip

开源 金融科技

一次线上服务高 CPU 占用优化实践

挖坑的张师傅

性能优化 JVM cpu

机会是留给不停寻找他们的人,而不是原地等待的人

非著名程序员

程序员 提升认知 机会 行动派

《TCP/IP详解》概述

网瘾少年SEC

TCP 网络协议 IP

centos7 maven私服自动启动

kcnf

从删库到跑路?

芦苇

产品 职业 产品经理 职业素养 职业道德

Python3.6.1官方文档练习——初入江湖(一)

小匚

Python python3.x 入门

C++定时器的实现

泰伦卢

c c++ C#

内存对齐

泰伦卢

c c++ C#

浅谈SpringCloud之服务注册中心Eureka

北漂码农有话说

一个平凡程序员的年度总结

小智

程序员 人生

MySQL中 int(11)和 int(10) 到底有没有区别?

周三不加班

MySQL 字符宽度 数据库数据类型

Liz Keogh:敏捷十年——对失败的预言,以及预言的失败_研发效能_Shane Hastie_InfoQ精选文章