Tuesday, September 18, 2007

One community, Dozen programmers, 1186 bugs and one quest for transcendent PHP editor

One community, Dozen programmers, 1186 bugs and one quest for transcendent PHP editor, By Roy Ganor

A year and a half ago, I got a confirmation e-mail from Eclipse Foundation Inc., the subject was “Welcome to Eclipse!”. I probably didn’t understand the exact meaning of this message at that time.

Today the PDT project community consists of about 30 users that are daily involved, and about 300 users that are weekly involved, and about 13,000 users that are monthly involved in the project . Remarkable! by any mean of open-source project.

Going back to the beginning of the story, the group has started developing an Eclipse based PHP editor with mixed emotions. On the one hand our current implementation that was based on Java Swing Technology, was very robust and appreciated by PHP developers (many rewards, compliment reviews and winning contests). On the other hand we saw the effect of JDT project on the Java community.

I am not going to write about the development process as it would require at least more than ten pages to cover. I will rather tell you about the community, about us (the group) and about the integration level with the Eclipse community.

So, the first question is how we grew to a large scale community? I can come up with many reasons. Starting with the need for such a product and the existing Eclipse community, to the exposure we enjoyed during the development process. But if you ask me - there is one more (and most important) reason for growing to such a scale. Any community is based on its regular users that comprise 95% of it. This is the heart of the community and we felt that we should do more for them. We observed that everything went just great till one finds a defect in the editor, he then may:
Browse to Eclipse's bug tracking system and reports about the issue.
Go to the \eclipse folder and remove it with a ‘–r’ parameter.
But the question is how to make the user choose the first option? Well the answer is quite simple. A user will report on a bug if he gets a fix ASAP, say in 24 hours. 24 HOURS?! yes, he will then continue working with the product and probably report about another issues or features. In doing so he enters the 2% of the users that are called active users. We delivered the fix as part of a nightly build that was stable enough (unit tested) to be bundled and deployed.

The integration level with the Eclipse community is another magical and interesting issue. During the process of development we encountered with an “imported” code that is written as a framework on a daily basis. Most of the time we worked with a conformist API that in any circumstances cannot be changed. In other cases we tried to contribute these framework projects and made them more flexible to us – probably this is the strength of one open-source community that is obligated to each other. One of my e-mails to WST Project leader points out that it is a “miracle” that we integrated the PHP Editor into the Web Editor. Taking for example the JSP Editor whose team is a sub-project of WST and is relatively tight coupled to the Web Editor.

PDT 1.0 is out and there are many reasons to call it the transcendent PHP editor.

(The name of this post was inspired by “Dreaming in Code”/Scott Rosenberg)