phpBB and Symfony: Combining Communities

Earlier this year at the Symfony Live event in Paris, I spoke with Nils Adermann, the new lead developer of the phpBB software. At the conference it was announced that phpBB was considering moving to a Symfony basis for their upcoming version 4. Since then, an RFC was posted and given the schedule for the Libertyvasion conference organized by phpBB, they're gearing up to dive deep into Symfony. This article reflects the thoughts I've offered at the Libertyvasion Conference on the combining of powers of phpBB and Symfony.

phpBB. Software I'll always have a love for. It's not only awesome forum software (probably the de facto standard for discussion forums right now) but it's also the first Open Source project that I truely contributed to. As a member of the Support Team and as the Support Team Leader I learned a lot about PHP I didn't yet know, but also a lot about communities, personalities and dealing with the issues at hand.

Some of this knowledge I'm definitely using now, as the Community Manager for Symfony. I'm again in touch with people from the community, though this time around also far more often in real life as well. And the product at hand is of course also very different from what phpBB was. I also notice that this means the community itself is quite different. Different type of people, different type of questions, different type of concerns.

Different communities join forces

It was fun to see though that these different communities will soon be joining forces as phpBB will adopt Symfony2 as the basis of their new version 4. It's two products I've involvement in, that I've loved for years, where I've been active in the community for years. Having this insight into both communities (though one insight is a couple of years old), let's look at these communities.

phpBB

PhpBB is software for discussion forums. It's mainly aimed at end-users looking to at discussion functionality to their website or simply starting a discussion forum website. It is easy to run stand-alone without any technical knowledge, and if the installer is too technical for you, there's several hosting systems that have automatic installers for the software. It can't get any easier than that.

The phpBB community therefore exists of mostly end-users with little technical knowledge. Within the community however there is a small but active group of PHP developers that work on either phpBB itself or extensions (MODs) of the software. In addition to this, there is also a group of developers working on skins (styles) for phpBB. And then there's of course the moderators of the phpBB.com forum as well as the support team, both having a challenging task in the community-related area.

In the time I was active in phpBB, I found out that the phpBB community can be extremely tough to work with. Because of the overwhelming percentage of non-technical users of the software it was sometimes hard to explain solutions in a way that it was understood by the people asking the questions, and the percentage of trolls is relatively high as well which does not make the work any easier. Having said all this, in the end most of the work we did was still helping people who were grateful for the help, making the job a really fun one to do.

Symfony

Symfony is a PHP framework. It is not a finished product that end-users can take, install and run. Instead, it is used as the basis for PHP software to be written on top of. There are some hosting providers that provide one-click installations of Symfony, but that's mostly for people who only want a single installation of the framework and have several applications that run on top of the framework.

This means the community of Symfony is quite different from the phpBB community. There is very little end-users, and the couple of designers that are part of the community also have technical knowledge, since they have to work with Symfony itself as well. Out of the relatively big group of developers, a small group of users contribute to the project on a regular basis (for instance by writing plugins, or submitting patches to the core) and a lot of people contribute in a smaller form.

With some occasional exception the community seems very friendly and devoid of trolls. It helps that many of the members of the community are very like-minded (since they are all developers). The difference in level of developers is big though, so the occasional "you could've found this yourself" happens, but most of the times questions are answered in a helpful and serious way.

Coming together

Due to the different nature of the communities it will probably mean change for both communities. It might also mean adapting to a different kind of people. But in the end I see many benefits for both communities.

More (skilled) developers

With these two communities joining forces, both communities get a bigger pool of developers, and skilled developers at that, to their disposal. Assuming of course that these developers are and will want to stay active in one way or another, their work will now benefit both projects.

A strong, tested basis

Until now, phpBB has always been written from scratch. Though they did well, the phpBB developers usually reinvented the wheel. Using a framework (in this case Symfony2) will offer phpBB a strong basis to build upon. A basis that has been tested, both by unit tests and by many developers also building upon the same basis. There is less chance for bugs in such a codebase than in a codebase you've written from scratch yourself. Less bugs, and less code to write, means more time to focus on the functionality in the forum software, and also more time for making sure this code is stable.

A good use case

On the other hand, Symfony2 will benefit from having an excellent use case for the framework. The phpBB team will surely encounter situations where a certain approach is not optimal or perhaps does not make sense at all. This is feedback that can be very useful for the framework team, as it will display a problem point for many other developers as well.

Better and easier integration

So far, if you had a phpBB forum, it was very hard to integrate this into a website. Similarly, if you were running a Symfony-based website and you wanted a full-featured forum, you usually ran the forum seperate from the website. With both being based on the same technology, it will be much easier to integrate a website and the accompanying forum. Or you can start with a forum, and then build a whole website around it using Symfony2.

Explore new markets

PhpBB and Symfony both cater to very different markets. Where phpBB is usually used in end-user environments and community websites (I'm not saying it isn't used elsewhere, I just think this is the primary market of phpBB), Symfony as a framework aims more at the market of custom websites for small, medium and even large companies. With phpBB being based on Symfony2, phpBB may be employed much more in the business market where the usage of Symfony2 for end-user environments and community websites may grow.

Helping out

So with these two communities that are quite different from eachother, how can we help eachother to ensure that we all benefit a lot? There's several things of course that we can do.

Support eachother

This is probably the most obvious but clearly the most important as well. As the phpBB team starts working on the new version, the Symfony community should be supportive of their efforts and help them by answering any questions they have. Likewise though, anyone from the Symfony community that is trying to support the phpBB team should be helped in understanding the concepts of phpBB and what it is that needs to be created.

Help with code

Of course with two coding projects, another obvious way to help out is by contributing code. Since both projects are hosted on Github and using git, it will be very easy to make your own fork of the project code and send pull requests for your changes to the developers of the respective projects. So a developer who is working on phpBB4 may be able to spot something in Symfony2 that might be better implemented in a slightly different way can make the change in their fork, and then send a pull request to the Symfony team to ask if the change can be included in the Symfony2 core. And the other way around, a developer who is experienced with Symfony2 and is looking at the phpBB4 code may spot a bug or something that can be improved, make the changes in their local repository and then send a pull request to the phpBB team to have it included in the phpBB4 core.

Other ways

There are more ways of contributing, but I spent a whole article on that recently, so I'm going to go into that here.

Concluding

I see the move of phpBB to Symfony2 as a very good one for both projects, and I am looking forward to helping out with the move. I will definitely try to add my two cents to the movement, and I hope you will too!


Add comment

Comments

gravatar fertilizer aquarium: request info or contact 1-888-776-1311 to schedule a tour! establish a long-range plan that encompasses your business and financial plans. it seems new york in a cost preventative measure to save the city some money has started to ship out their homeless. those who enjoy watching and identifying songbirds, shorebirds and birds of prey know certain areas have more plentiful populations than others.
March 4, 2013
gravatar Manufactured Home Air Conditioner Sizing Chart: katadyn exstream purifier bottle - in your choice of colors fireplace insert installation approximately one inch on either end of the tape should remain uncut. you may wonder if you will be limited by choosing a stainless steel microwave over a different color, but rest assured that you can get any style, model or type of microwave you prefer in stainless steel or most any other color option.
March 9, 2013
gravatar headphones xbox 360 turtle beach: following are some of the benefits that a bluetooth car kit offers: sennheiser hd25 standard replacement earpads (pair) one pair of standard leatherette replacement earpads for the sennheiser hd-25 headphones.  no one would like to be dumb when they hear good music.
June 8, 2013

Php5_zce_logo

Tags

1337 2008 2010 2011 4developers access modifiers accessibility AdaLovelaceDay09 advent agavi agile alfred amsterdam amsterdamphp apache api apple article articles atk atkMetaNode audioscrobbler autoloading automation azure backwards compatibility barcelona barcodes bash bbc bbq beatstad belgium best practices bittorrent blogging blogs boards of canada book books bughuntday bundle caching cake cal evans calendar career cat cerf certificate cfp cilex clear cms cologne common sense communities community components composer conference conferences contest continuous integration contribute contribution crisis css curl custom d-day data migration datetime DbFinderPlugin decorator decorators deployment deps devdays development directoryindex directoryiterator docblox doctrine doctrine2 documentation download dpc dpc09 dpc10 dpc11 DPC2008 dreamhost drupal dv7 eclipse ed editors efficiency enterprise errors event events expertise ezcomponents facebook filter-branch filteriterator finland flickr fork framework frameworks free ticket freelance freeze frontend fun game games geoip germany getting real git github globiterator gnome-do google google calendar googletalk graceful degradation hack hackers hidden gem hiphop howto hp HR html http i386 ibuildings icann ide ideasofmarch idm imovie inclusivity indy ingewikkeld integration international php conference internet interview ipad IPC ipc ipc08 ipc10 ipc11se iterators iterm2 javascript jenkins jenkins-php job job openings jobeet john peel joomla joomladays kiva kubuntu launcher launchy left on the web libcurl libraries library lighttpd lime linktuesday linux live london loudblog m2ts mac magazines malware mambo manchester marjolein mediterra meeting meme meta methodology micro-financing microframework microsoft migration movie music mysql namespace namespaces netbeans netherlands newsfire nllgg northeastphp nos odmarco open source opinion ORM osx paradiso paris partnership pavilion pear pecl performance personal pfc10 pfc11 pfcongres pfcongrez pfz pfz.nl photo php PHP php5.3 phpabstract phpazure phpBB phpbb phpbelgium phpbenelux phpbnl10 phpday phpdoc phpdocumentor phpgg phpitalia phpnw phpnw08 phpnw11 phpnw12 phpstorm phptek phptek09 phpuk2009 phpUnderControl phpunit php|architect php|tek podcast politics portability postcrossing presentation presentations private projects protected prototype PSR-0 public python qa qr codes re2c recruiting refactoring review rewrite ruby on rails san francisco schedule scifi script security sensio seven things sexism sfdaycgn sflive2011 shell scripting silex simplexml slides smfony software sogeti solar sound speakers spl ssh standard standards star trek static steer strings stylesheets subversion symfony symfony live symfony2 Symfony2 symfonycamp symfonyday symfonylive symfonyUnderControlPlugin talk talks tech techademy technology techportal tek09 telecommuting terratec terrorism testfest testing textmate textpattern the right tool timeout tips tld todo tomas tools training twig uncon unet usability usergroup validation vhost video vim vinyl virus warp webinar weblogging webservices wiki windows winphp women wordpress work workshop world world of warcraft wpi writing wunderlist xml xpath xsd yara year youtube zc11 ZCE zemanta zend zend framework zend server zend studio zendcon Zend_Form zite
© 2004 - 2013 Stefan Koopmanschap + Powered by Symfony, photos powered by Flickr, links powered by Delicious, Shanghai smilies by Iconbuffet. Feeds: rss / atom. Left on the Web v4.4.0.1