敏捷开发实践总结(一):敏捷开发的核心思想

项目组学习、实践、摸索敏捷开发模式已经近两个月了。这里对两个月来的成果作一次总结。首先是关于敏捷开发的核心思想。

我理解的敏捷开发的核心思想,简而言之,就是八个字:“化整为零,逼近极限”。

敏捷开发的世界观

敏捷开发者眼中的世界,用西方哲学来说叫“绝对运动与相对静止的对立统一”的世界;用东方哲学来说叫“自其变者而观之,则天地曾不能以一瞬;自其不变者而观之,则物与我皆无尽也”的世界。(这句引自《赤壁赋》,用在此处不太好:它只阐述了运动与静止的对立统一,没有说明运动的绝对与静止的相对。不过“绝对”这个词在中国哲学里本就比较少见,“子曰毋必毋固”,我一时也找不到更合适的了)。

故弄玄虚的说法到此为止。现实点的说法大约是这样:

敏捷开发者眼中的软件系统,是一个需求在一步一步不断变化的软件系统。用户喜好在变,市场风向在变,业务模式在变,系统需求也在变,这就是敏捷世界中的绝对运动,也是敏捷核心中的“整”,和“极限”的第一义。而这种需求的变化方式——“一步一步”地变化,恰是所谓“相对静止”,也是“零”和“逼近”的基础。无法跟踪的需求变化也是无法实现的。

敏捷开发的人生观

敏捷开发者的人生观,就是逼近极限的人生观,或者用《大学》中的话说,叫“止于至善”。变化的需求,以及隐藏在这种变化之后的新的价值,是敏捷开发者所追求的“极限”、“至善”。这样的人生观驱使敏捷开发者向夸父追日一样追逐着变化的需求、个人能力的提高以及藏在这两者背后的用户价值和个人价值的最大化(当然,合理的计划安排下,不会落得夸父的下场)。

此外,敏捷宣言中提到的敏捷开发的价值观(沟通,简单,反馈,勇气,谦逊)中,我更愿意把勇气和谦逊归入人生观。谦逊令敏捷开发者认识到自己尚未做到“至善”,因而需要进一步去逼近这个“极限”;而勇气则使敏捷开发者们不泥足深陷于错误的方案,不固步自封于已有的成绩。这两点,都是为了逼近极限、止于至善的必要补充。

敏捷开发的价值观

敏捷宣言中指出了五种敏捷开发的价值观(沟通,简单,反馈,勇气,谦逊),最后两种被我归入了人生观。其它的三种,我也将不客气的将它们归入方法论。至此,敏捷宣言提出的价值观,就被我架空了。

有破须得有立,否则就会产生80、90后这种旧信仰被破坏又没有新信仰的迷惘的几代人。抛开原有的价值观,我所树立起来的“新价值观”其实也不是新东西,即:敏捷开发者的价值取向,是需求变化背后的业务、市场、用户价值,并在此过程中追寻个人价值的极限。敏捷开发者所作出的判断,行动,都应该以这两个价值为标准。只有这样,敏捷开发才能砌零为整,有效的逼近极限。否则,做得再多也只是无用功。

敏捷开发的方法论

敏捷开发最核心的方法,就是小版本增量式的实现需求。这也正是敏捷开发的核心方法论:将用户、市场的变化捕捉为业务、需求的变化;将变化的需求拆分为相对稳定的功能;通过冲刺、迭代等小周期完成功能开发,并增量式的将功能还原为需求。我做参与的敏捷开发实践,就是这样做的。

其它理解

敏捷开发所主要关注的,是通过it实现价值;它主要解决的,是需求变化太频繁导致的“计划赶不上变化”等问题;它的主要解决途径,是抓住总的需求变化中的一些稳定的功能小需求,通过实现这些小需求来逐步完成总的需求。

敏捷开发同样关注项目完成质量,包括系统架构、代码质量等,并且引入和提出了许多相关方法来保证项目完成质量。但这是所有开发模式所共同关注的;只是敏捷开发采用的方法更加适应敏捷的流程,因而显得与众不同。

这是我所理解的敏捷开发核心思想。一家之言,姑妄听之吧。

2023-02-16 补充

后来,我把敏捷开发的实践总结成了七个字:“小步快跑勤回头”。可以参考。