软件开发为什么难(软件开发是不是很难)

上次在InfoQ上看到一篇好文,说的是现代软件开发为什么那么难,文章很长,但写得非常棒,列举了很多例子,生动详细的说明了软件开发的困难。我就简单说下我看过后的理解。

总结下我看过后的感受,现代软件开发难的原因 其实就是 人与人和人与事变得更复杂了,再通俗点说就是,人多事杂。

早期的软件不复杂,可能只要做些数学计算类的,一两个人就开干,但也一样难开发,原因是开发语言太弱了。

而现代编程语言非常强大,但软件本身需要处理的业务也更复杂了,事情的增多,单靠一两个人开发就需要大量的时间,虽然看平均效率非常高,但总时间消耗很大,为了节约时间,必然就要找更多的人去开发,更多的人就导致更多的沟通协作成本,此时平均效率就降低,并且协作上必然有疏漏等问题,毕竟人不是机器,总是会犯错的,这样开发难度就大了很多。

为了解决人与人协作的问题,就出现了很多的软件工程思想,但更复杂的软件工程思想又需要更多的人参与,同时带来更多的管理成本投入。之后又出现了职业的更细划分,需求分析师、架构师、软件工程师、程序员、测试工程师和运维工程师等等,事情就走上一个更加难以控制的复杂局面。

因为软件业务的及其复杂,又有各路大神提出了更多的技术思路,从早期的saas到现在的微服务,从单层架构到多层架构,再到如今的中台,还按业务功能不同分解出来了各种不同名字的中台,所有这些看上去都特别有道理和似乎是能够解决问题的,但实际是变得更加复杂了,开发更难了,需要的人也更多了。