系统复杂性

软件开发是人类历史上最有创造力的活动之一,程序员不受到现实局限,例如客观世界的物理定律。我们能创造令人激动的虚拟世界。编程唯一需要的是创造力思维和思维组织能力,这意味着在软件开发过程中最大限制是理解我们正在创建的对象。随着软件的演进,加入更多的功能点,系统变得越来越复杂:各个模块(module)间存在着各种微妙的依赖关系.系统的复杂性随着时间积累,对于程序员来说,修改系统时考虑周全所有的的相关因素变得越来越困难。这就会使软件开放进度变缓慢,并且引入 bug,bug 会进一步延缓开发进度,增加开发成本。在任何一个系统的生命周期中,复杂性不可避免会增加。系统越大,需要更多的人开发,管理系统复杂性的工作就越困难。