以下宣言来自
http://agilemanifesto.org.
Manifesto for Agile Software Development
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.
我不知道被标红的这四条在今天还有多少人持反对的态度,对于我而言,敏捷宣言带来的软件开发价值观念实际上是一种价值的回归,我们需要能够工作,运转良好的软件,我们需要为客户带来价值,我们需要适应这个变化多端的世界。软件的内在复杂性决定了我们只能运用我们的聪明才智来克服开发过程中的种种艰难险阻,所以我们强调人的协作和互动,强调个人的充分发挥和团队的紧密配合的和谐统一,强调代码作为设计最终体现的重要意义,强调软件设计的简单和灵活性的完美结合。说到底软件的开发是为了最终的使用,为了不断的提供价值,为了不停的适应变化,为了给客户带来更大的经济效益,离开了这些直接而赤裸裸的指导原则,一切的所谓文档、流程、计划和工具都是空对空的扯淡。换言之,如果像TDD,结对编程、持续构建这些XP实践不能给我带来实质性的好处,没有让我们的软件能够更加容易的开发,能够为客户提供更多的价值,我为什么还要做一个XP的实践者?
如果简单的赞成或者反对敏捷而没有任何的经验或者证据来支撑我们的观点,无疑我们会落入非此即彼的认识怪圈,我们会成为所谓大师言论的奴隶和盲从者,如果没有认真的思考和仔细的观察,我们永远也不会得到对我们自身真正有益的东西。在这一点上,敏捷宣言也无法帮助我们,我们必须更加仔细的寻找适合的开发方法,用一种更加实用的眼光来看待我们的软件开发和新的工具、方法和开发理论。保持怀疑不是一件坏的事情,在日新月异的技术领域尤其如此。
说到这里,我觉得有一点跑题了,但是我本来要表达的意思已经很明确了,在SCIP的教学录像里面,professor Sussman有一句话很有意思,作为今天的结束吧:Computers to make people happy, not people to make computers happy。