Upgrading And Backwards Compatibility For Plugins

Some interesting numbers have been published by Dev4Press.com which show just over 50% of sites reporting data back to the WordPress.org mother ship are registering as using version 3.0. 10.8% for 3.1 and 16.2 percent use 3.2. When looking at the big picture, those are terrible numbers. That 50% number would ideally be 3.2 but for any number of reasons, those websites are not being upgraded. There is also the issue of accuracy in that many of the websites that are being reported may have either been abandoned or left online as a test bed.

I’m sure many plugin authors can relate to Millan in that supporting 3-4 versions of WordPress can be a pain in the neck considering some of the major differences between versions. What’s a plugin author do so since leaving those users out to dry is not acceptable?

25

25 responses to “Upgrading And Backwards Compatibility For Plugins”

  1. Don’t leave the users out to dry, just tell them to upgrade their site.

    IMO, plugin and theme authors providing backward compatibility is one of the major reasons that people are not updating their sites.

    I practice what I preach in this respect, BTW. The next version of Simple Facebook Connect will require WordPress 3.3. Backward compatibility will not be an option. The Simple Google Connect plugin I released today also requires 3.3 (beta works fine).

  2. @Andrea_R – Of course we are not to support WP 2.0, issue here is with 3.0 and newer versions.

    There is another interesting data in one of the comments in my post on Dev4Press where you can see that overall download of WordPress 3.1 and 3.2 is down as well. This shows that daily downloads average are down 45% with 3.2 compared to 3.1. 13.000.000 downloads of WP 3.2 while high as a numbers go, is disappointing.

    People are content to have 3.0, they don’t see much point in using newer versions. But, users of my Pro plugins are using latest versions, and adoption rate among them is high. I am sure same can be said for other Pro development companies, and we on our own do a better job introducing new WP and new WP features to our users and they are more familiar with the difference and they are willing to upgrade. On the global scale, education about WordPress is failing. Simply cutting of users with 1-2 years old WordPress versions from new plugins is not a solution. Maybe it is from developers point of view, but 99% of all WP users are not developers.

  3. @Milan Petrovic – Why is that not a solution? We are now cutting out themes and plugins that are older than 2 years from the WordPress.org directories automatically. Most of the feedback we’ve gotten on the idea has been along the lines of “2 years seems like it’s too long”.

    People not upgrading their code is a problem to be solved, not a data point that you should be considering in order to adjust your development practices. If somebody is running older versions, then they are doing-it-wrong and you need to encourage or help them to fix this issue.

  4. @Otto – That is a good step, all plugins that are left with no update for so long should be hidden from users.

    But, in the same time we need some method to reach out to users and let them know about benefits of new WordPress versions. And I think that ball is dropped with that since WP 3.0, most users decided to stay with 3.0, because they couldn’t see benefits of moving to 3.1 and 3.2, and I am willing to bet that same thing will happen with 3.3 soon. Good thing with 3.x is that there is a less incompatibility, and is not very likely that upgrade from 3.0 to 3.2/3.3 will break the website. Problem is that they see no reason to do it. And the numbers are telling exactly that: WordPress has too many major versions that go unused, and having one major release a year would be much better solution: core developers will have more time do work on it, more features would go into it, and there would be bigger awareness about the update, just as it was with WP 3.0. As you can see with current 3.3, it is already a month late, it has only one or two minor features that have appeal to most users (as a developer I love it, but again, developers make 1% of WP users). I know that developers running WP core development don’t agree with me, but the wide user base does if you look at numbers from WP 3.0 release until today.

    Big problem are versions older than 3.0, how to bring those people to update, and I see no solution for that. This is not a simple problem for many users, since many of them will require to invest into upgrading depending on the plugins they use. I have seen hundreds of WP 2.5/2.6 websites using plugins that barely work, but they depend on it, and they will crash with update. No one will update those plugins for free or help switch to different plugins.

  5. Remember we’ve changed a considerable amount of dependencies and minimums in the last 9 months. If your browser is IE6, IE7, if you’re on Windows XP, If your server or database aren’t at our new minimum or if you used bbPress then upgrading past 3.0 is not an automatic “no brainer”.

    There comes a time when we have got to realize that we have to wait for technology and the people using said technology to catch up with us. The more we go shooting off, the more likely we are to move a higher percentage of people to “edge cases” and only focus on those who we deem part of the “in-crowd”.

    Can we also dismiss the myth that every single WordPress install becomes insecure the very second a new release comes out? It isn’t true.

    I know this isn’t the most popular opinion, but we have a very high barrier for entry with WordPress once you’re past the initial learning curve (which is nice and simple). With a 4 month development cycle (3 months coding and 1 month testing), that’s not alot of time to stay up to date if you’re not a full time WordPress developer.

    @Andrea @Andrea_R

    I really don’t even know why the question is being asked – should people still support WordPress 2.0 because some people use it?

    That’s not the question being raised though. WordPress 3.0 came out last year. We’re not discussing backward comparability for 12 versions, but 2 versions. Seriously, 2 versions. And each of those versions have had a UI change with it. The next version has a UI change as well.

    @Otto

    The Simple Google Connect plugin I released today also requires 3.3

    Wait, so you’re releasing code that won’t work with the CURRENT version of WordPress?

    And you’re doing it intentionally to force people who are happy with THEIR platform to use a system YOU want them to use?

    May I remind you of Wheaton’s Law:
    http://toomanyposts.files.wordpress.com/2011/10/wheatons-law.png

    If your users really want to use your plugin/theme, then find out that they must upgrade, they will.

    The problem with this mate is that you presume that every user has the capability to do so, without ever considering the risk. A great many small companies do not see the RoI on a website as we technical people do, and the risk of upgrading is just too much.

    We never talk about why users don’t upgrade in their terms, only in terms of why we think they should. How can we address the needs of others, if our solution is for them to just think like us?

  6. @Kevinjohn Gallagher – Exactly. As I said several times, 99% of all WP users are not developers, they don’t see things as we do, and fast changes of WordPress with 2 versions each year, that always brings some upgrade issues is not really considerate to actual users when they can’t see any valid reason to upgrade. WP 3.0 was a big step forward and a good reason to upgrade. WP 3.1/3.2/3.3 are only appealing to developers, and part of the wide community, so we are now having 50% of users still working with WP 3.0

    Imagine if Microsoft releases Windows every 6 months. A total chaos. We have so much issues with Firefox with their insane 6 weeks release cycle, and endless list of broken extensions. Ubutnu with 2 releases each year is also very problematic and contra productive.

  7. well mentioned Kevin .. I am not so sure as to what the rush towards everything is, I saw a direct value to wp 3 (multisite) coming out and have been the one to praise the development of wordpress and the direction it is moving in

    however, we are a small internet structure with our own rented servers which we maintain, we have every intention of moving up towards the next php 5.2 level from 5.whatever however to change our servers due to the needs of wp 3.2 does not fit into our current needs

  8. I only test my plugin with and require the current version of WordPress. It probably works with some older versions, and users can try it, but I’m not going to open that can of worms.

    Not trying to force users to update, but I’m building for the future, not the past! I figure if they are willing to run an older version of WordPress, they can run an older version of the plugin that is compatible.

  9. @A4D [emphasis added] –

    I saw a direct value to wp 3

    And I think that this is part of the problem, also: the WordPress version-number convention makes sense to us, but for the 99-percenters (no pun intended), WordPress 3.0 = WordPress 3. I’m quite sure that there are people out there who will wait three years for WordPress 4.0 to come out, before upgrading from WordPress 3.0.

    (I’m not suggesting that WordPress change its version-numbering convention, but rather that we need to do a better job educating users.)

  10. We develop our themes/Plugins to always be compatible with the latest release version of WordPress. I can’t see us ever even contemplating providing a guarantee of backwards compatibility. It is time consuming enough just keeping up with the latest version!

    Also, people should ‘always’ upgrade to the latest version for the latest bug/security fixes alone, and not necessarily just to take advantage of the new shiny.

  11. @David Gwyer

    I can’t see us ever even contemplating providing a guarantee of backwards compatibility. It is time consuming enough just keeping up with the latest version!

    Thats why having 3 versions a year is an issue. It provides a huge “barrier to entry” for many plugin developers, and we have thousands of abandoned plugins that don’t work with the latest release. This in turn stops people from upgrading because the plugin they use doesn’t work. It’s a Chicken and Egg scenario.

    people should ‘always’ upgrade to the latest version for the latest bug/security fixes alone,

    No, no, no, no, no.
    Thats a simply terrible idea, thats become some form of Rhetoric around the WordPress community over the 18 months.

    You should evaluate the pro’s and con’s of upgrading ANY software before you do it, and not just upgrade on blind faith. We lost the trust-us/blind-faith argument with Capital_P_Dangit. (adding code a few hours before packaging for release, after the testing procedure was complete and without opening a Trac ticket so people could see it).

    There needs to be a business case to support upgrading. We’ve stopped trying to educate people as to the positives of upgrading, and instead have moved into tub-thumping “ZOMG THE SECOND A NEW VERSION COMES THE OLD VERSION IS SUDDENLY UNSECURE. UPGRADE OF THE EVIL PEOPLE WILL GET YOU. Forward this warning to 10 people in the next 5 minutes or you’ll morph into a drupal install“.

    3.2.1 has no known security bugs, that won’t change the day 3.3 comes out. We need to accentuate the GOOD reasons to upgrade rather than the BAD reasons. By packaging Security, Functionality and UI changes into the one release, many of our/my clients live in fear of a security hole being found in WordPress because their AdminUI will change – again.

    If your company uses WindowsXP and IE7, or uses bbPress, or has colour blind people, or people that don’t use a mouse (hover menus suck), then upgrading to WordPress3.3 will give them a negative RoI.

    We’ve stopped trying to solve WHY people don’t upgrade, and are moving to try and FORCE them to upgrade because WE want them to.

    I don’t know about you, but how’s that worked out for Microsoft on IE6 and XP? Yeah, thats what I thought. It’s great to be leading edge, but when you’re bleeding edge, you start to push more and more people into a category with no realistic upgrade path.

    * Using IE6? can’t upgrade
    * Using IE7? probably can’t upgrade (definitely shouldn’t)
    * Using a PHP version less than 5.2? can’t upgrade
    * Using a MySQL version less than5? can’t upgrade
    * Using a MySQL equivalent? can’t upgrade
    * Using WindowsXP? probably can’t upgrade (definitely shouldn’t)
    * Don’t use a mouse? can’t upgrade to 3.3
    * Colour blindness? Can’t upgrade
    * Using bbPress? Can’t upgrade
    * Using a plugin thats been abandoned? can’t Upgrade
    * Using a theme thats been abandoned? can’t Upgrade

    Outside of North America, sorry some of us are, IE6 & 7 have a combined market share greater than Opera, Safari and Mobile Browsers combined. This number grows substantially once you move to larger corporations, who are less agile.

    We have to stop thinking that we can bend the IT world to our will. We have to stop living in this bubble. Look at the stats in question. 50% of people still on a version 2 releases old. Something in the “THOU SHALT DO WHAT WE SAY” model isn’t working, y’know, like it’s not worked for any tech company since, well, since we had tech slightly more advanced than then catapult!!

    We need to stop thinking like developers and people who knows the system. We need to start thinking like it’s our parents who have a WordPress install, and you’ll see that people stick with what works until it doesn’t work anymore. People don’t want the latest and greatest, people want what works.

    We also need to stop taking stats from WordPress.com. It’s a self hosted blogging platform, that while awesome, is not indicative of the rest of the internet. We’re skewing data from 1 source with 1 purpose and making generalisations about multiple sources with multiple purposes from it. It’s just a stupid thing to do; and each of you here are better than that (I’m probably the dumbest person in this conversation).

    Put down the Kool-Aid, stop building blogs, start looking at the market that WordPress doesn’t appeal to but could easily dominate, think like your parent and not a wordpress fan.

  12. @Kevinjohn Gallagher

    Wait, so you’re releasing code that won’t work with the CURRENT version of WordPress?

    Yes.

    And you’re doing it intentionally to force people who are happy with THEIR platform to use a system YOU want them to use?

    No. You’re misunderstanding my motivations in releasing code in general, and plugins in specific, I think.

    I don’t write code for my users, I write code for me. I write code because I’m using it and because I find it interesting.

    I’m a coder, therefore I write code.

    I release code because the code might help somebody else too, and it’s nice to get feedback on ways to improve the code. I’m not all-knowing, and by releasing code and letting other people use and criticize and modify and improve it, I get the benefit of their point of view and their expertise as well. I can use that to create better code for me to use too.

    Now, I released SGC because I’d been writing it and using it and many people have asked me for a copy when they saw it live on my site. It’s a preview release (0.1), not fully functional or complete. It works with WordPress 3.3 beta 4, because that’s what I’m actually running. (I always run trunk, everywhere. IMO, stability is overrated. Most of them I manually update to nightly builds, some I have automatically update via SVN every so often.)

    I’m not trying to push an agenda here. if you don’t want to use the plugin, then don’t. I don’t care if anybody at all uses my plugins, because I’m really writing them for me and me alone. The fact that many other people do use and like them is a happy outcome, but not the end-goal. I mean, they’re free after all. It’s not like they’re paying my mortgage.

  13. IMO, stability is overrated

    So real world example: one of my current clients has a legal requirement to have their website up, and accurate to under 15 minutes previous. The repercussions of not doing so are so severe on a moite by minute basis I wouldn’t scare you all by typing them out here.

    My viewpoint is very different to people who develop for fun. I think thats why I come across like “a bit of jerk” (to quote Jeff).

    I love WordPress. But I’ve been very open and honest that 2011 is the first year in 4 years where [my company] have moved more clients OFF WordPress than ON to WordPress; and their number one complaint: Stability.

    Not one our Government or Financial Services clients have had positive comments about WordPress3.3 (we hosted our bi-monthly “demo,show and tell”) and each and every one of them have “opted out” of our upgrade when our code freeze lifts in January, as have 2 of our
    University clients.

    Additionally, all of those clients apart from one opted out of 3.2 as well due to the Browse Crappy, sorry, Browse Happy ;)

  14. @Kevinjohn Gallagher – Developers don’t understand regular users, and to make things worse, most of the developers even refuse to acknowledge the regular users point of view. I know that, because I did same thing while I worked with my previous company. Since I started my own business, I look at things differently, I develop for my clients and users, and I can’t simply decide to drop support for a WP version without discussing it with end-users.

    I too had similar experiences with my clients, and most of them didn’t find any reason for upgrading to new WP versions after 3.0. Few updated to 3.2 because website depended on post types, and some of the improvements in WP 3.2 are directly related to that. Upgrading is not easy for most users. In some cases companies would like to run tests for the new system for few months even before using it. By the time they run tests on WP 3.2, WP 3.3 is almost released. Current WP development cycle is too fast, and I know that people running the WP core development don’t agree with that, but one major version each year would be much better solution for all, including those same developers. Adoption rate would be much better, and versions much stable if given more time to test and develop. I don’t remember a single WP version in the past 3 years that was released as planned, every one was 1 to 3 months late, proving that even the smaller features set is not simple to develop.

    I hate to see users abandoning WordPress (I don’t see that happening, really), but current version fragmentation is case and point to the fact that vast majority of WordPress users don’t agree with current development and release policy.

  15. Backwards compatibility is silly. It is extremely rare than anything would break on an upgrade. In fact I don’t recall ever having a single plugin break during an upgrade ever. That includes plugins I’ve made myself and other plugins I use. The ability for WordPress to upgrade regularly without breaking anything is one of the main reasons I use it.

    If plugin developers are having their code break on upgrades, then they’re probably doing something wrong (not always, but almost always).

    So with that in mind, I’m totally 100% in agreement with Otto and co. We need to find ways to make people upgrade, not provide backwards compatibility which has the exact opposite effect.

  16. We need to find ways to make people upgrade

    Isn’t that a diametrically opposite paradigm to “Free as in Speech” ? Thats some scary stuff right there.

    The large issue is that no software supplier in the world has successfully forced it’s users to continually upgrade to the latest version as and when it want it to. We’ve 25+ years of data to support this in software, and about 1000 years to support it in Tech.

    * Telling people to upgrade doesn’t work.
    * Making it easy to upgrade doesn’t work.
    * Making it cost effective to upgrade doesn’t work.
    * Making it more secure to upgrade doesn’t work.
    * Attempting to make people upgrade doesn’t work.

    To get people to upgrade anything, and I mean from a spork to WordPress to IE to their phone to their car – we have to make it a positive Return on Investment for them.

    Right now we’re not doing that, because we don’t consider:
    1) Time it takes to upgrade
    2) Time it takes to test after WP has been released (can’t do it in beta anymore, thanks Capital_P_Dangit)
    3) Time it takes to programatically change all of the “decisions not options”
    4) Time it takes to update the training material
    5) Time it takes to train staff on whatever UI changes have been made this release
    6) Time it takes to upgrade dependancies (plugins, themes, applications etc)

    We shouldn’t be making people do anything. If people aren’t upgrading, we should find out why, so we can manage that better. But we’re not.

    As an aside: As of Monday our offices, and our clients, enter a 2 month code freeze. Its normal for us over the Christmas and New Year period to make sure we don’t release any non-critical code that we’d end up having to support at the worst possible moment. WordPress 3.4 is scheduled for release the first week in March, just 4 weeks after our Code Freeze is lifted. As a company, a WordPress orientated company, we have no reason to upgrade any of our clients to 3.3, only to have to upgrade them to 3.4 just 4 weeks later. If only there was a Project Manager on the core team, but then the project manager would probably want at least 1 tester, and we don’t want that now would we.

    P.S. Hope your surgery went ok dude! I’m wishing you a speedy recovery.

  17. @Kevinjohn Gallagher – Not to be glib or anything, but if you users need “training material” to use WordPress, then it is my considered opinion that they shouldn’t be doing things like “touching computers” or “looking at screens” in the first place.

    I grant you that other people’s needs are different and varied. But seriously, you’re discussing the kind of projects that I used to work on. Major systems, years of development, multi-year timelines, six-month long roll-out plans, etc. I’ve been there, I’ve done that. I quit doing that specifically because that kind of crazy ass crap is not necessary in the modern world (or for the modern web). Anything that takes longer than a month to implement is rarely worth the trouble, nowadays, because the situation in a month has already changed.

    In other words, what you’re describing sounds archaic and backward to me, and no, I wouldn’t do it. I’d refuse such jobs at this point. Companies that can’t update their processes and innovate with the rest of the world can just go and die, AFAIC.

    I grant you that mine is often a minority viewpoint. Sometimes it’s a minority of one. ;)

  18. Yo Otto,

    Mate, that’s a totally fair view point. I absolutely get it. Monolithic and archaic IT systems that take months and years to implement anything are a nightmare, and you’re lucky to be able to avoid them. My hats off to you.

    But my point is this: “we” are moving those people/companies into an “edge case” that we’re not looking to support or cater for. That’s fine, but that’s a large percentage of companies.

    if you users need “training material” to use WordPress, then it is my considered opinion that they shouldn’t be doing things like “touching computers” or “looking at screens” in the first place.

    I get the point you’re making here bro, and don’t think you’re being glib. I do though think you’re being short sighted.

    How does a blind person know how to use WordPress without training?
    How does a person with disabilities know how best to use WordPress without training?

    Thats my issue. somewhere along the line we’ve decided that WordPress is really only going for the able-bodied, tech-literate in small and agile companies. Thats just not the real world.

Newsletter

Subscribe Via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.