In my last five years of exposure to open source software, starting with OpenStack, I have noticed an increasing trend of relying on scripts to fill the gaps left by the software system. The gaps can be varied in their scope and size, such as
- Installation
- Lifecycle management — upgrades, downgrades, etc.
- Supporting different environments
- Troubleshooting
- Feature extensions
While this approach may help with the initial PoC steps to get things off the ground, it can cause a lot of problems later on during the productization cycle. Ultimately, this leads to a software system that is heavily propped up by a multitude of scripts.