Read the No Silver Bullet paper (http://worrydream.com/refs/Brooks-NoSilverBullet.pdf) and his observations are as true today as they were then.
Some choice passages:
"Therefore it appears that the time has come to address the essential parts of the software task, those concerned with fashioning abstract conceptual structures of great complexity. I suggest:...growing software organically, adding more and more function to systems as they are
run, used, and tested."
Mastodon Source 🐘
"In most cases, the elements interact with each other in some non-linear fashion, and the complexity of the whole increases much more than linearly.
The complexity of software is an essential property, not an accidental one. Hence descriptions of a software entity that abstract away its complexity often abstract away its essence."
Mastodon Source 🐘
"Many people expect advances in artificial intelligence to provide the revolutionary break- through that will give order-of-magnitude gains in software productivity and quality. I do not."
"The hardest single part of building a software system is deciding precisely what to build. ...No other part of the work so cripples the resulting system if done wrong. No other part is more difficult to rectify later."