At the time, there were no plugins that did quite what I wanted so I started hiring outsourcers (plugin PHP coders) to do the work.
Five different outsourced php coders/software developers later (including highly rated coders on scriptlance.com) and many, many thousands of dollars spent and the plugins still don't work satisfactorily for public sale.
The first 4 developers either:
[a] disappeared mid-job and stopped replying to any contact;
[b] kept misunderstanding the detailed specs and adding/deleting key functions thus delaying projects by weeks/months;
[c] were unable to produce plugins that worked without frequent errors/bugs/conflicts
The 5th produced something adequate for in-house use but their 2 plugins had loads of issues once out in the public domain.
During such delays, any uniqueness in the marketplace was completely lost as other plugins were released with similar functions.
My experience has convinced me that the greater the complexity of a task, the less suited it is to outsourcing.
When I do any software development now, I insist on face-to-face contact several times a week to review work, clarify (mis)assumptons, monitor the UI development etc.
This means that smaller projects now take days and not months via outsourcers.
I'm also convinced that most workers need the physical presence of a manager-type figure to produce consistent work (with a few notable exceptions).
While I still use outsourcers for basic writing tasks and some website setup stuff, I insist on meeting 'real people' for anything beyond that.
In short, be wary of the 'outsource everything' myth in IM as you can lose a lot of money, time and momentum by outsourcing the wrong tasks in your business.