The PHP podcast where everyone chimes in.

Originally aired on

June 22nd, 2015

023: PHP's Major "Bus Factor" Problem

Inspired by a lively Open Spaces session at php|tek 2015, we discuss how PHP's ecosystem could be threatened by a not-so-obvious bus factor and what we can all do to keep things thriving.

with


How the bus factor may negatively impact the PHP ecosystem Show Summary


Intro

  • Definition of the bus factor
  • Samantha discusses her talk at php|tek 2015 "Open Sourcing Teams", which provided the inspiration for this podcast topic.
  • The panel quickly decides that 'getting hit by a bus' is unnecessarily morbid. For the rest of the podcast, we can read 'getting hit by a bus' as 'retiring' or 'winning the lottery' :)
  • How do we measure/express bus factor - does a project with 2 crucial contributors have a bus factor of 2 or 0.5? The panel agrees on 2. A low bus factor is bad, a high bus factor is good.

Which important PHP projects have a low bus factor?

The panel discusses some popular PHP projects and their maintainers/contributors:

Do these maintainers represent a bus factor of one in the context of these projects?

How does over-reliance on one individual impact developers using a framework/platform?

  • If we use these tools in (commercial) projects, there is risk associated with uncertain future of the project
  • Reliance on a single maintainer does not represent the only risk associated with building on top of open source frameworks/packages
  • One of the advantages of commercial software backed by large companies/organizations is greater stability in this respect

How do we evaluate open source software for use in projects?

  • Quality of documentation
  • Size/strength of community - network effects
  • In a worst case scenario (e.g: the project is abandoned), could we maintain a fork?

How can we identify projects with a low bus-factor?

  • This is a hard judgement to make
  • The majority of users/developers are not sufficiently involved in the PHP community to make this judgement
  • Sometimes projects fail/disappear/fall out of favor due to other reasons (osCommerce and Lithium are cited as examples)
  • High bus-factor does not guarantee stability

How can we mitigate against this?

  • Projects with clean standards-compliant code will be easier for others to maintain
  • Projects where the reasoning/philosophy behind the project is well explained will be easier for others to maintain
  • One reason a project maintainer may be forced to step away is financial constraints. In the Ruby community, they attempt to mitigate this risk against core projects with Ruby Together
  • Form/encourage community around projects and contribute to projects
  • PHP Mentoring
  • Companies that depend on open source projects should contribute to those projects - the cost to businesses of contributing now is far smaller than the cost of an important project that they depend on disappearing in future
  • Developers and businesses should support open source projects e.g: by buying licenses for their premium/commercial services
  • Project maintainers should welcome help and contributions from others
  • Project maintainers should produce good quality documentation
  • Project maintainers should produce contributing guidelines

Does PHP Internals have a low bus factor?

  • PHP Internals has many maintainers and contributors, but some specific components have serious problems. For example:
    • PDO does not have an active maintainer
    • mcrypt does not have an active maintainer

Samantha Quiñones


Davey Shafik


Chris Tankersley


Michelangelo van Dam


Developer Shout-Out

The Developer Shout-Out recognizes developers in the community for their contributions.

For this episode the panel guests, Samantha, Davey, Chris, and Michelangelo nominated Derick Rethans for the Developer Shout-Out segment.

Thank you, Derick Rethans for all your contributions to the PHP community. A $50 Amazon gift card is on its way to you.

$50 Amazon gift card sponsored by Laracasts

Laracasts

It's like Netflix for developers.

Show Notes Credit

Chris Shaw

Thank you Chris Shaw for authoring the show notes for this episode!

If you'd like to contribute show notes and totally get credit for it, check out the show-notes repo!