读《人月神话》第一章“焦油坑”有感
读完这一章,我的第一个感觉就是:太真实了,说得太准了!
布鲁克斯用的那个“焦油坑”的比喻,简直绝了。我想所有干过软件项目的人,应该都能立刻明白那种感觉:
- 表面上看:我们的工作很酷,用代码创造东西,很有成就感。
- 实际干起来:项目经常像掉进一个黏糊糊的大坑。不管你多厉害,团队多牛,项目到最后总是各种问题,进度慢得像爬,大家拼命加班却感觉使不上劲,越挣扎越累。这可不就是“焦油坑”吗?
他说的那种“快乐和苦恼”,我简直不能同意更多。
快乐是真实的:
比如,自己写的一个小程序跑通了,那个瞬间真的超开心,感觉自己像个创造者。
但苦恼更真实:
- 为了找一个微小的bug,可能要花上好几天,非常折磨人。
- 自己写的东西没问题,但被别人写的部分或者操作系统给坑了,特别无奈。
- 项目做完了,以为能轻松了,结果无尽的修改、适配和维护工作才刚开始,感觉永远没有尽头。
最让我恍然大悟的是,他帮我算清了这笔账。
我以前只是觉得做大项目特别累,但没想明白为什么这么累。布鲁克斯说清楚了:
- 一个自己用的小工具(程序),很简单。
- 把它变成谁都能用的成熟软件(产品),工作量要乘3倍(因为要测试、写文档等)。
- 再把一堆这样的软件组合成一个大系统(系统),工作量又要乘3倍。
- 所以,一个成熟的大系统产品,它的难度和成本,是一个小工具的 9倍 甚至更多!
看到这里我一下就明白了:“哦,原来不是我能力不行,而是这件事本身的复杂程度就是指数级增长的啊!” 这让我对工作的困难有了新的认识,不再那么容易自我怀疑了。
总之,它让我明白,软件开发最大的挑战,可能不是某个具体的技术难题,而是如何处理这种天生的、巨大的复杂性。这让我对以后的工作更有敬畏心,也更脚踏实地了。