由此看来,马丁先生既不认为软件开发活动应该是一个先进行设计,然后根据 “设计图纸”进行构建的工程化过程,也不认为软件开发应该是完全依赖于开发者头脑中随时蹦出的灵感的艺术活动,因为这两种倾向在人类数十年的软件开发实践中已经被证明都不甚完美。而他企图在两者之间找到一个均衡点,这个均衡点也许正是真正解决“软件危机”的突破口。
据了解,敏捷开发实际上包括了许多优秀的软件开发习惯。首先,这种方法改变了软件测试的流程,在编写代码前进行测试,减少了开发风险;其次,可以对软件进行持续集成,即每个小时都在集成,任何部件间的冲突都可以随时解决;此外,这种方法的“动态规划”和“重构”做法,意味着开发者可以对软件架构进行持续改进,可以根据用户的需求随时进行改进,而利用传统的软件开发方法则很难对软件的架构进行调整,同时也会造成成本的大幅增加。