This post has been sitting in my drafts for a while, as a recap on the plan we have for WooCommerce release cycles. Starting the upcoming v2.2 cycle, we’re managing releases in semi-fixed 3 month cycles. It was Pippin Williamson’s tweet last night, that gave me the inspiration to finally write this post. His tweet said “Iterate quickly, release often”, something I can very much relate to, but also have mixed feelings about.
In the WordPress world, things are moving quickly these days. The WordPress core is on a stricter release schedule already, changing admin panel UI and having a more intensive release cycle in general. This is a good thing, WordPress core needs to push forward and the development team is taking great care of backwards compatibility. High on the agenda is maintaining the high standard of usability we all have come to love.
Then, there are the plugins and themes (but I’ll focus on plugins for now), who are also evolving. Not only do they need to keep up with WordPress core, they also want to push out fix releases and most plugins will want to introduce a couple new features too. For the more popular plugins, this requires quite a bit of release management already. With fix releases and new feature releases being developed at the same time, the developer at least needs to think things through a bit.
The problem with this all is that it has the potential to swamp end users with updates. Of course, it’s a great thing to be able to develop new features at a fast pace, be able to quickly deliver this to your users (or to add an extra layer of complexity: to your customers) and release a couple fix releases in the time between. But it also requires your users to deal with this number of updates, or they might be at risk of falling behind or have potential security issues in their websites.
No valid argument to not update
Some might say that there is no valid argument to not update and I agree. From a technical standpoint, there is no valid argument to not keep your WordPress install, including plugins and themes, up to date. But for an end user, there might be a couple things standing in their way.
First issue that might arise for the less tech savvy users, is the technical knowhow. They might have a file permission problem on their server and are prompted for FTP credentials every time they try to do an update. The lack of technical knowhow stops them there, not able to figure out how to proceed, or even know what FTP is in the first place.
Then there is the end user who can’t do updates, or is afraid to do updates, because things might break. Yes, it’s a best practice to always test updates on a staging environment, but there are plenty of people still not doing this. This group also includes the people that don’t do updates because “the site still works, right?”.
The final group that I like to highlight are the websites that are under version control, or are using a different way of making sure their website stays updated. Often times, these websites are eCommerce, business websites or money making websites in general. It’s the type of websites that people have come to rely on for their income and it’s worth great value to make sure the websites stay working.
Automatic updates seem to be the solution then?
WordPress itself does great work when it comes to explaining people how to do things. They even have taken a lot of care away from the end users, by automatically applying fix releases for WordPress core. This might even be introduced for plugins and themes in the future and can already be done by external services like ManageWP and WP Remote.
This definitely makes the lives of the first group easier. People without technical knowledge can rely on automatic updates to keep their websites up to date. They still need to deal with conflicts, but at least they are on the latest versions.
It helps the second group of users too, but the risk of conflicts will always remain. For websites that do not make people money, conflicts are less problematic. Annoying, sure, but nobody will go bankrupt when a site about someones cats goes offline for a couple hours because a plugin broke down.
To the last group, automatic updates are a big no go. Money making websites, especially larger eCommerce sites, can’t have their websites do any automatic updates. The risk of having a plugin update break things, or even worse, take down the whole site is just too big. All updates need to go through the version control system, or at least have to be verified that they actually work before they can be pushed to the live website.
Don’t release too often
For the websites that can use automatic updates, there is no such thing as too many updates. They are being processed automatically and the end user doesn’t really care if a plugin gets updated only once a month, or three times a week.
The people maintaining a website that can’t use automatic updates for any reason, will be really upset with a plugin pushing out three fix releases per week. Not only is it a pain to check all these fix releases every single time (including possibly testing protocols and whatever more might involve updating something on the live website), it also makes the plugin look bad. Of course it’s good to get fixes shipped to your end users as soon as you can. Having to fix a plugin three times a week makes it look like an unstable plugin though.
I believe there is a difference between plugins that can release as often as they want and those who can’t. Plugins that are not likely being used within eCommerce websites can release all they want. On the other hand, we will drive people insane by pushing out three fix releases a week for the WooCommerce plugin (yes, we have done this in the past).
The WordPress ecosystem is growing up
It’s the responsibility of the plugin developers to make sure their releases are as stable as they can be. There is no difference there between a plugin that adds social sharing buttons, or a full featured eCommerce plugin.
The difference should be in the release management of these plugins. If a bug has been fixed that is not critical, or only happens in a couple edge cases, the social sharing buttons plugin can just release it. The developer of the eCommerce plugin should think again and consider applying the fix to the affected websites manually and release the fix with a couple other fixes at a later stage.
In the new WooCommerce release cycle there is room for fix releases between the three point releases per year, obviously. We’re going to try and do this in a sane way. Less fix releases, containing more fixes per release and making maintenance work a smoother ride. Critical and security issues will always be fixed and released as soon as possible.
For everyone who didn’t get it until now: WordPress is no longer a small CMS, it’s being used in large, professional websites. Plugin developers have a great share in the success of the CMS in general. It’s now time to take it to the next level and make sure that we release updates responsibly and with our end users in mind.