How to be a good extension developer
(By
MichaelDaum, abstracted from
ChangeContactAuthorFirstPolicyNotifyAuthor)
Bad behaviour is:
- abandoning extensions (not maintaining them)
- not listening to your user-base
- ignoring or even rejecting bug fixes
- ignoring or even rejecting good contributions
- not contacting the author if you have a bug fix or improvement to their extension
- not answering to a patch to one of your extensions that you received
- writing bad non-informative bug reports with no way to reproduce them
- not providing a better bug fix once the first one has been rejected
- rejecting bug fixes or improvements for no good reason
- forking an actively maintained plugin
- releasing insecure code
- re-releasing someone else's extension without contacting him first, not letting the original author intercept this act, thus putting users that use this extension for everyday work and try to upgrade at a risk.
Good behaviour is:
- accept responsibility for the code you once contributed
- take over responsibility for code that has been abandoned
- take care that nobody messes up our code
- try to collaborate with the original authors
- accept additional features "with taste"
- comment on added features and give people a chance to come back with an improved patch
- be thankful for any bug that someone reports
- be even more thankful for any bug that someone fixes
- have deep respect for people opening up a can of worms
- be able to communicate about bugs and code and whatever
- be open-minded and able to accept that you were wrong in your bug report and a short RTFM answer
- be able to accept that the code or patch you provided is indeed totally crap
- be able to say one of the following sentences occasionally:
- Oh, I see now.
- I was wrong.
- You are right.
- I don't know.
- Can't we do both?
- Shit, what was I on when I wrote this code?
- Wow, what a great idea!
- accept that the original author is the official authority for his/her code
- be eager and willing to learn, either by yourself or by listening to more experienced people
- be able to put aside your own ego and still remain authentic
- take everything with a dash of humor
- have a certain acceptance for people not behaving well
- take care that the project is not put at risk by bad behaviour, or accepting too much bad behaviour
There are items in these lists that apply to users of extensions rather than to developers. Shouldn't they be in a separate topic?
--
RobStewart - 17 Sep 2008