Hubo muchas buenas respuestas, pero como hay una división casi mortal, también arrojaré mi sombrero al ring.
En mi experiencia como ingeniero de software, he encontrado que esto no es un problema simple. Realmente depende del tamaño , la escala y el propósito de la aplicación. Las aplicaciones más antiguas en virtud de la inercia requerida para cambiarlas, generalmente son monolíticas, ya que fue una práctica común durante mucho tiempo (Maya calificaría en esta categoría). Supongo que estás hablando de nuevas aplicaciones en general.
En aplicaciones lo suficientemente pequeñas que son más o menos simples, la sobrecarga requerida para mantener muchas partes separadas generalmente excede la utilidad de tener la separación. Si puede ser mantenido por una persona, probablemente se puede hacer monolítico sin causar demasiados problemas. La excepción a esta regla es cuando tiene muchas partes diferentes (un frontend, backend, quizás algunas capas de datos intermedias) que están convenientemente separadas (lógicamente).
En aplicaciones muy grandes, incluso individuales, dividirlo tiene sentido en mi experiencia. Tiene la ventaja de reducir un subconjunto de la clase de errores posibles a cambio de otros errores (a veces más fáciles de resolver). En general, también puede tener equipos de personas trabajando de forma aislada, lo que mejora la productividad. Sin embargo, muchas aplicaciones en estos días se dividen con bastante precisión, a veces en detrimento propio. También he estado en equipos donde la aplicación se dividió en tantos microservicios innecesariamente que introdujo una sobrecarga cuando las cosas dejan de hablar entre sí. Además, tener que tener todo el conocimiento de cómo cada parte habla con las otras partes se vuelve mucho más difícil con cada división sucesiva. Hay un equilibrio, y como puede ver por las respuestas aquí, la forma de hacerlo no está muy clara,
If the animation and modelling capabilities were split into their own separate application and developed separately, with files being passed between them, would they not be easier to maintain?
No mezcle más fácil de extender con un módulo más fácil de mantener , por sí mismo, no está libre de complicaciones o diseños dudosos. Maya puede ser el infierno en la tierra para mantener, mientras que sus complementos no lo son. O viceversa.