Your message was an interesting read, and I agreed almost entirely with it.
However, I noted that there’s a pretty fine line between:
“provid[ing] a means for constructive criticism”
“An invitation to harass and otherwise frustrate a small and dedicated development staff because they didn’t do what you wanted”
In Michigan’s case, he was pretty vocal about his criticisms regarding the dial plan changes, but I read most of his comments as constructive criticism and not harassment.
As I’ve said before, I can see both sides of the dial plan issue. The developers wanted to make the dial plan entry easier for novices, and they succeeded. The contrary side is that it makes it harder for experts. And the dev. team responded to that by allowing imports, which they didn’t have to do (and which I really appreciate when I set up a new system).
I wouldn’t interpret anything that Michigan posted on the subject as harassing. To be sure, he was persistent. On the other hand, I could see how a developer, particularly those who made the decision, could find his consistent disappointment with that aspect of FreePBX as harassment/frustrating.
I don’t know if it was that issue that prompted him to become disenchanted with FreePBX, and I have no idea what motivated WiseOldOwl.
What I do know is that both of them materially contributed to the project. I don’t know if they ever coded, but they both documented extensively and I found their contributions essential to my learning how FreePBX worked.
What’s interesting is that both of them posted cryptic messages at one time or another pointing to a specific incident with a specific person that caused them to stop contributing. Neither disclosed what the incident was or who the person was, and so I don’t have any idea.
Whether it is because someone was too sensitive, or another person was too offensive, or both, I can’t help but think of those famous words from now deceased philosopher Rodney King: “Can’t we all just get along?”
When it comes to the written word, I always begin by assuming that whatever is written, no matter how offensive it may read, was not intended to be that way. I only assume that a written word is intended to be offensive if there is no other way to read it.
Unfortunately, that’s not true of everyone.
As I write this, Michigan has just posted a blog article criticizing Andrew for being offended that Michigan never thanked Andrew for writing SAK. Of course, that’s not what Andrew said, but I could see how someone who didn’t follow my method of interpretation could read it that way.
What Andrew actually said (and what I choose to believe that he meant) was that he WROTE SAK for Michigan, and that he anticipated that Michigan would be happy, and that when Michigan continued posting negative comments about F—PBX and the team that Andrew chose to align himself with, it made Andrew feel terrible. Andrew’s position on this point seems perfectly reasonable to me. Frankly, I don’t understand why Michigan would want to interpret it any other way.
Then again, Andrew shouldn’t have had any reason to feel badly. He did a great job on SAK, and a lot of people appreciated it (even if we didn’t all call him and say so). The fact that Michigan continued his criticism of FreePBX (and called it F—PBX) is a good thing, because criticism is a good thing.
If I see criticism that I don’t like, I either respond to it, or I ignore it. But, I don’t let it get me down, because, in my view, criticism forces me to think about my views and to either refine them or reject them. In my view, criticism is a way of helping. I realize that not everyone thinks this way, but I find that even the most angrily written criticism can be helpful.
FreePBX is a great product, it meets all of my needs, and I want it to continue to be around. If that is to happen, we need to keep as many people, whether developers or contributors, and lose as few as possible to what I can only describe as personality conflicts. We all have to start by choosing not to be offended, and assuming that we’re all working towards a common goal - because we are.