死于2.0版:失控的复杂性增长
无序增长的复杂性压垮了它的创造者。
- 软件是类似植物那样培植出来的,而不是一次性制造出来的。
- 在软件的演化过程中,复杂性不可避免地增长
- 失控的复杂性增长压垮产品和团队,成本激增而生产力剧减
Clean Architecture
一书中举例的一家真实公司的统计图表(横轴代表版本升级):
图1 工程师团队的增长趋势。需要越来越多的人
图2 代码行数的增长。代码行数增长放缓,显示添加新功能举步维艰
图3 每行代码的变更成本。第8代产品的构建成本是第1代的40倍
图4 工程师的生产力。工程师生产力急剧趋于0
图5 员工成本支出。利润被吞噬直至亏本。最初的十几万美元实现了很多新功能,而最后的两千万美元几乎打了水漂