用一个示例来说明一下软件危机解决方案想要实现什么样子的目标。
·解决危机的目标(现状VS理想):假设它的开发的计划周期是三个月,开发方式是传统或敏捷,复杂度中等或者是更高,质量要求也是中等或者是更高。复杂度和质量要求越高,改进方案的效益会越好。想要实现的目标大概是这样子的:编码原来可能需要三个月,要求在两个月内完成,这样就能挤出时间来进行后边的迭代。
·单元测试原来是缺少的,测试部门可能会陷于大量的小缺陷当中。新的方案是要求在开发的时候同时完成单元测试,测试部门的重心要放在需求的定义和验证上。

·迭代方面:原来的三个月周期因为用完了可能就没有时间迭代了,后边的修改就要计划外的时间了。而且由于缺少单元测试的回归测试,迭代的效率会比较低。
·新的方案是计划在第三个月完成三次的迭代,因为它有时间,也有单元测试回归测试的支持,所以迭代效率会比较高。
·管理方面:原来的方案可能在开发过程当中管理层是拿不到质量和进度方面的详细的数据的。而新的方案是要在开发过程当中自动的执行测试,让管理层能够随时拿到报告和文档。
当然了,软件开发是一个复杂的过程,这里只是一些粗略的目标。