Upgrading web application software: should it be difficult?
Today I was waiting for files to upload to the server in order to upgrade Drupal (in fact it is Acquia Drupal) and CiviCRM for Drupal, and while I was waiting I started writing this.
If you don't know what those software programs are, I will not explain here - you can go and read about them. What matters is they are web applications, meaning they run on a web server and you use them in your web browser.
Many computer users - hundreds of millions of them - have from time to time installed software or upgraded software on their own computers. On Microsoft Windows, Mac, and others it's a fairly painless procedure of clicking the "Next" button as you confirm some choices. The computer does some work, you may restart the computer, and 19 times out of 20 you're good to go. Web applications are not that simple.
The general process in upgrading web application software is:
- Backup the files, and the database (basically backup every single thing you can find)
- Delete the old files, which sometimes means all the files
- Upload the new files
- Upload the themes and customizations you had made to your system (sometimes this must be done after running upgrade scripts)
- Run an upgrade script, to upgrade your database. Sometimes, it may even help you merge the customizations you made to templates and files, such as how phpBB3 does).
- Add back all the customizations you may have done (if they were wiped out), and confirm everything is running correctly. You may use some tools to help you merge the new files with the ones you customized.
These usually require any combination of FTP, tar, gzip, zip, ssh, svn, SQL, Linux, and lots of specific knowledge to debug problems that may arise. There's typically no one click install, and if there is, it may work correctly 2 out of 3 times.
The web application software, through its available functions and possible customizations, are very complex. I dread having to upgrade the software because of the possible headaches that arise. But, I don't think it should necessarily any easier to upgrade it. Making it easier would lower the bar of expertise required to upgrade the software, and lowering that bar makes those who should not be upgrading the software themselves to think "it's not that hard, why don't I do it myself".
Unfortunately having a difficult upgrade process causes a steep learning curve for software administrators, and ... it's probably really scary for many people. When a security update is released, they are dependent on hard to find experts to help them.