(PLUGIN) Conversation Manager
On our recent trip to WordCamp NYC, we entered a plugin development contest. Out of all the entries we won! This plugin was built as a group effort with some other developers. I am very happy to announce that the plugin has been posted to the official WordPress plugin directory.
So, as part of the contest, one of the requirements was to work within a team environment. This was definitely a change for us. While Jeff and I used to working with each other, we rarely lean on others for any kind of insight. For this contest, we reached out to two others: a long-time WordPress user (Andrew C.) and a trusted WordPress developer (John Hawkins).
At first I saw this as a way to fulfill requirements of the competition, but looking back on it now, having those additional resources at hand is more powerful than I originally imagined. John, Andrew, and eventually Blair and Drew, offered a lot of additional insight into not only the how the code was written and user experience, but ideas for future releases of this plugin. With all of our previous releases, we put 99% of the features we had planned into the initial release. This meant that future releases were done primarily to update things that had broken with WordPress core updates.
I definitely see the value to both our work and the community, in developing plugins with a greater motive (and I think that was the intention of this competition at WordCamp NYC…point well taken). John and I spoke about the idea of canonical plugins several times at WordCamp NYC, and he even presented about it in his ignite session. The basic idea, that seems like a really good one, is that one plugin would cover the foundation of basic functionality, but could be extended by other plugins to allow for more customized functionality. Currently in the WordPress plugin directory, there are a lot of plugins with duplicated functionality. Imagine if all of those individual developers came together and wrote a super plugin that covered 90% of the core features of all of those plugins and could be extended by other smaller, more precise plugins for individual use. I think this would be a huge step forward from how things are currently being developed.
The last thing I took from this competition came from being judged by Mark, Matt and Brian. I think I got through Brian and Matt so quickly because we used a lot of the built-in WordPress features, looks and script libraries. Mark, being security minded (that’s a good thing), had another thing in mind. As he showed off the plugin, he began exploiting it using a lot of fairly common tactics. To be totally honest, we hadn’t spent a lot of time on security when we built this because it was a late entry into the contest. Security is an often overlooked, but crucial part of any plugin. What’s the point in having a super secure software like WordPress, when you run 75 plugins that can easily be exploited to give hackers instant access to your admin? Plugin developers, take a moment ot look over the plugins you have made. Do you escape results from the database? Do you use nonces? If not, you really should. Mark has a great article about the new escaping functions and another one about using nonces properly.