views:

47

answers:

3

I am developing an application that can be extended using "plug-ins". The plug-ins will be pretty basic, allowing developers to add new "actions" to my application.

What documentation/information do I need to provide so that developers can do what they need to?

I was thinking a short example and a general overview of how the application/plug-ins work?

+1  A: 

You need to foster a sense of community. Things like:

  • sample code for more than one real plugin;
  • a getting started guide for plugin writers;
  • details on how to deploy a plugin and on how they are discovered by your application;
  • a wiki so that plugin writers can collaborate, and
  • an easy way for plugin authors to contribute their plugin

might help.

ewalshe
A: 

You also have to decide how detailed your API is going to be. IF you are offering a rich API, make sure to document it well, and to explicitly highlight directives (explicit "do" or "don't do" instructions).

Most users will not bother to read the documentation and figure out things from the name, or skim your docs. So it is best if you can avoid "surprising them", and if not, at least offer them a chance to find the problems.

Finally, err on the side of caution with checking correct use and send exceptions rather than counting on users meeting your instructions.

Uri
A: 

Also, think very well in advance on whether you truly expect anyone to use your plug-ins because the core product becomes a "hit".

It is very common to err on the side of optimism, and think that when you are writing a plug-in infrastructure that somebody will actually use it.

However, nobody is likely to write plugins before the core out-of-the-box offering is successful and popular. You may be better off publishing and distributing your own plugins before worrying about extensions by others.

Uri