So many projects are abandoned after wasting millions often due to leaders believing that they can adequately sub-divide a problem to harness large development teams using the features of static languages to deliver huge requirements lists.
Dynamic languages make it plain that someone has to know what is going on at all times in the software and have use features, such as modularisation and reuse - not just of what is written in one language, but often making it straightforward to integrate best-in-class libraries written in other languages - be they static or dynamic; together with the support of the language community in doing so.
Dynamic languages are excellent in supporting the Unix philosophy of using small interconnected specialist programs to solve large problems without having to totally reinvent the wheel. Quick prototyping and duck typing often allow several solutions paths to be explored and so dead-ends avoided earlier rather than the usual static language approach which can often lead to inferior solutions having to be pursued due to the general increased time-to-prototype of static languages.