Posted

Defining the Problem

The problem with mailing lists is that they are a free for all, it doesn’t matter who posts, everybody at every level gets to see the post.

In the real world, communications pass through a hierarchy of people, escalating as necessary, passing from person to person up the chain.

This means that, given enough time, any mailing list starts to have a large noise:signal ratio, at least for any given person’s take on the list;
they want to read what they want to read, and don’t need to be distracted ignoring the stuff they don’t want to read.

Solving the Problem

There is an unspoken — some what hap-hazard — hierarchy among the community, which with some thought, I believe, could be defined, refined
and utilized to our advantage. As an example:

  - Active internals contributors with access to internals CVS (contributions of code and useful discussions)
  \
   - Active internals contributors without access to internals CVS (patch submitters, useful discussions)
   - Inactive internals contributors with access to internals CVS (previous contributions of code and useful discussions)
     \ 
      - Active non-internals, PHP contributions (docs, phpweb, PEAR)
      - Active community leaders
      - Active project leaders
      - Active linux distro maintainers
       \ 
        - General Users with a high understanding
          \
           - Genernal users with little understanding (newbies)

If we take each of these, and assign them a number:

L1  - Active internals contributors with access to internals CVS (contributions of code and useful discussions)
    \
L2   - Active internals contributiors without access to internals CVS (patch submitters, useful discussions)
L2   - Inactive internals contributors with access to internals CVS (previous contributions of code and useful discussions)
       \ 
L3      - Active non-internals, PHP contributions (docs, phpweb, PEAR)
L3      - Active community leaders
L3      - Active project leaders
L3      - Active linux distro maintainers
         \ 
L4        - General Users with a high understand
            \
L5           - Genernal users with little understanding (newbies)

Now, what if, at any level, you could only see (by default) 1 level below you (and all levels above you). For example: L1 can see L2, L2 can see L3 etc.

This immediately means that you only see stuff that might be relevant to you; however, as a community, we then lose the ability for newcomers to contribute good ideas; because they would start out with zero karma. To help solve this issue, we adjust karma based on responses:

Scenario

  • A L3 user posts something of interest
  • A L2 user see’s the post and replies, the reply is L2
    • This bumps the original post up to L2 as well
  • A L1 see’s the post now, and can then participate in the discussion if they choose

In this case, only the thread in question is bumped up, however given enough L2/L1 (weighted) direct responses over different threads, a L3 user can gain karma and eventually become a L2 user (and obviously this applies to anyone moving up the chain)

In this way, threads (and by this mechanism, users also) can organically make their way up the tree as they gain traction, are discussed at each level and moved up.

I believe it would be possible to have a ”’single”’ mailing list that could span everything from internals right down to php-general, but this is probably not desired! It would however allow the users of any list to, regardless of their experience in the tree, contribute without weighing down the list.

Features

  • Karma tree seeded by current “social” climate
    • based on CVS access level, activity in a sliding timescale, community contributions etc
    • Some manual work will be needed on this
  • Weighted responses, a L2 responding to a L3, will move it to L2, but 3 L2’s or 1 L2 and 1 L1 responding would move it to L1, for example.
  • Adjustable threshold. Perhaps some magnanimous internals contributor likes to help out newbies, he can choose to see the whole tree, or perhaps just 3 levels down
  • Championing — it should be possible for a user to champion someone to quickly move them up the ladder, for example a L2 can bring a L5 up to L3, so their peers can see stuff, this is bringing the user up, not the thread
  • Continued tweaking of karma based on CVS access and contributions
  • Personal filters, you can add users (of any level) from whom you would like to see threads, helping the movement of stuff up the tree, skipping levels

In this way, we can, in some ways, automate the karma, and in someways advance it through our own choices; creating a hierarchy based on merit and trust.

Final Thoughts

  • Some smart filtering, so that “You’re an idiot” responses don’t elevate a thread would be good
    • That, or just handle it biologically — Don’t respond to people in negative ways
  • Implementing this as a ML (in terms of interaction) is likely the only way to get some of the higher internals folks using it, a web interface [for the messages] just won’t fly
  • Personal filters would be handled at master.php.net or maybe a new web interface for this

Now, obviously, this is a huge undertaking; certainly not one any single person could complete on their own… but it’s food for thought.

– Davey