Blog on Dan North & Associates Limited 10月02日 21:00
进化与敏捷开发
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

达尔文的《物种起源》出版时,进化论已是一个成熟的概念。达尔文的洞见在于,通过自然选择,进化导致了物种的引入和灭绝。这当然激怒了教会,时至今日,仍有一些宗教团体拒绝这一观点,尽管科学证据确凿。20世纪初,新达尔文主义兴起,为自然选择提供了机制。它发生在基因的微观层面,而非生物层面。自然选择是基因长期统计游戏的展开,更令人不安的是,生物本身(包括我们自己)只是基因的复杂临时住所!理查德·道金斯进一步指出,物种适应或进化的能力本身也可能随时间变化。换句话说,可进化性是一种可以进化的特征,就像尾巴或鳃一样。敏捷开发的各种流派,如XP、Crystal、Scrum、Lean和DSDM,都在试图解决同一个问题,即找到一种可重复、可预测的方式来适应变化。也就是说,它们试图使软件交付具有可进化性。这确保交付不会因项目生态系统或环境的变化而措手不及。

🔬进化论通过自然选择导致了物种的引入和灭绝,这一观点挑战了当时的教会权威,至今仍有一些宗教团体拒绝这一科学理论。

🌱新达尔文主义为自然选择提供了基因层面的机制,揭示了生物(包括人类)只是基因传播的复杂载体。

🧬理查德·道金斯提出‘可进化性’概念,认为进化能力本身也可以随时间演变,类比于生物的物理特征如尾巴或鳃。

🚀敏捷开发(如XP、Scrum等)旨在通过可重复、可预测的方式适应变化,使软件交付过程更具‘可进化性’。

🤝敏捷教练通过渐进式的小步骤提升团队或组织的适应能力,强调理解现有生态并自然地引入改进,而非强制变革。

When Darwin’s “On the Origin of Species” was published, evolution was already a well-established idea. Darwin’s insight was that evolution—through the process of natural selection—led to the introduction and extinction of entire species. This of course upset the established church, and to this day there are still religious groups who reject the idea, in the face of overwhelming scientific evidence.

The early twentieth century saw the rise of “neo-Darwinism”, which finally provided a mechanism for natural selection. It wasn’t happening at the level of creatures but at the microscopic level of genes. Natural selection is simply the playing out of a long-running stastistical game based on shuffling genes, and more disturbingly the creatures themselves (and ourselves) are just a very sophisticated form of temporary accomodation for those genes!

Richard Dawkins, the acclaimed scientist and author of “The Selfish Gene”, goes a stage further. He suggests that a species’ ability to adapt or evolve may itself change over time. In other words, evolvability is a trait that can evolve, just like a tail or gills.

Agility is another word for Evolvability#

So what does this have to do with the world of software development? Well the various flavours of agile development, such as XP, Crystal, Scrum, Lean and DSDM, are all trying to solve the same problem, namely coming up with a repeatable, predictable way to adapt to change. In other words, they are trying to make software delivery evolvable. This ensures that delivery isn’t wrong-footed by a change in the project’s ecosystem or environment.

As an agile process coach, my job is to increase a team’s—or in the case of an Organizational Transformation programme an entire organization’s—ability to evolve. Taking a cue from Mother Nature, you can’t expect this to occur overnight. The weight of evidence shows that macro-mutations in the process are almost always going to be detrimental. Instead you need to evolve the organization towards evolvability, or agility, through a series of small steps that are easy and intuitive to grasp.

You can’t just walk in and announce that “this is how we do things now”. You need to take the time to understand and appreciate the existing ecosystem, and present the change process as a simple and natural way to improve delivery. At a getting-things-done level this is usually pretty straightforward: tested code tends to break less than untested code, and paired code tends to be better designed than solo code, so the incremental changes are intuitively a Good Thing.

At a project management or governance level the messages are more subtle. It’s not about how quickly or accurately you can deliver. You can put a bunch of bright people in a room with a big enough incentive (be it carrot or stick) and software will come out. Instead it’s about how resilient the process is to some sort of disruption.

Delivery Assurance addresses exactly this, and agile delivery is the most effective way I know of managing this risk. By pair programming you reduce the impact of a single person becoming unavailable or leaving the team. By applying the principles of test-driven (or behaviour-driven) development, you eliminate the risk of introducing regression defects into the codebase. Adaptive planning and tracking—and their resultant incremental steering and project funding—leverage this to provide programme-level adaptability. The requirements can change, the political environment can change, the goalposts can move, and you are still in with a chance of delivering something useful.

The more you can evolve an organization’s evolvability, the more resilient you make it to change, and the better it can adapt to changes, both internally and in the external market. As Kent Beck famously said, embrace change. It is inevitable, and your chances of survival are directly linked to your ability to evolve.


ps. Thanks are due to Mats Helander for the casual comment that inspired this article.

Check out

Goalwards®

, our new business agility practice!

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

进化论 自然选择 新达尔文主义 可进化性 敏捷开发 软件交付 适应性 组织变革
相关文章