Most of the time when we try to look at some new software we catch some bugs, have compatibilty problems and so on.
Let me give an example: We work with a Ubuntu Desktop on an virtual environment and wanted to upgrade it to the newest 17.04 release because our main working tool (terminator) crashed every once in a while letting you sit there without your already opened ssh sessions to many servers or with open vi's with configuration files / script code / … Upgrading wasn't that problem - we used the software updater and everything was fine. Until our monitoring software (zabbix) wrote us an e-mail about a problem with our configuration management agent (puppet) - and BAM, there was the first problem… So i wanted to install a new puppet agent via the puppet debian repositories -> actually no debian package for ubuntu 17.04… Next problem -> the upgrade also removed the old puppet package which included facter -> so our monitoring reported a backup problem, because our backup script uses facter variables… the backup works but the monitoring part isn't…
That's only one single example but especially when it comes to docker, which is really a great enhancement for IT in general, there are bugs and error's (not only docker itself) everywhere.
So, getting a system up and running with quality is really hard work with lot's of testing, searching, reading & implementing.
For me, my part is to raise quality by trying to get any system to a certain standard which includes backup / monitoring / configuration management & scripts for automation. I think these are four of the many important things when developing new systems.