One of the first things you should do when building a WordPress theme/plugin is turn on WP_DEBUG in your wp-config.php file. Turning this on will make sure that you get notices for bad functions, deprecated items in your files…Every theme/site I build has this flag set in development (don’t set it on the production server).
As a result of this you quickly get to see which plugins are coded poorly. Today I installed [Your Member](http://www.yourmembers.co.uk/) only to find 4 lines of debug code on activation. While that’s a bit annoying when I fully activated it I found 50 lines of debug notices. Like I said 4 bugged me but 50 means I uninstall the plugin since I can’t continue development and see if I introduce any errors. The most troubling item was a warning on has_cap(). While this doesn’t really create a security concern it shows that the developers aren’t keeping up with WordPress best practice.
Use of has_cap() has been deprecated since 2.0, that was a long time ago. If the developers can’t be bothered to keep up with best practice how can we trust that they will update if things start to break? If I see a debug notice for deprecated stuff that’s more than one version old I start to get concerned about using it. Really if the developers can’t keep up with best practice in WordPress you’ve got to wonder how invested they are.
If you’d like to know how to build a plugin I’ll like just read the post from [Mark Jaquith](http://markjaquith.wordpress.com/2011/06/07/how-to-write-a-plugin-that-ill-use/), no point in me repeating what he said.
I posted in the [Your Member Forums](http://www.yourmembers.co.uk/forum/viewtopic.php?f=8&t=547) about the issue and they say that debug notices have been killed for the next version of the plugin. It certainly sucks that they have a bunch of users that aren’t on the current version of WordPress. I had a decent chat with online support as well and 1.10 will be out for everyone’s consumption in a few weeks. Currently it’s only available for their ‘premium’ subscription which is a bit annoying to me but everyone has to set their own pricing model. The customer service was awesome.