Network management has been automated over the years. Still, each machine within a network configuration can acquire its own unique state and its own unique configuration based on usage patterns of its users and resources installed. Therefore, what would seem to be fairly simple and fairly automated tasks of installing or modifying new pieces of software actually becomes an extremely manual process for each individual machine of a network configuration.
This is so, because a software modification may rely on certain other modules or configurations before an automated script can successfully modify the desired software on a given machine. If machines have different versions of dependent modules or lack dependent modules altogether, then an automated script to modify the desired software will likely fail. Moreover, trying to account for all potential scenarios and dependencies within a given installation or modification script are often infeasible and impractical tasks.
Furthermore, a modification may appear on the surface to be successful for a given machine, when in fact the modification is later determined to be problematic because certain dependencies were missing or unresolved during the initial modification. Correspondingly, it is generally believed that a full dependency analysis for each machine that is targeted for a modification has to be processed. This may entail manual examination, which can also be time and resource intensive. Also, once a successful modification is achieved or noted that modification is often not saved or reused, since it is believed to be only applicable to a particular machine of the network. Therefore, the dependency analysis and the modification work are often not repeatable tasks.