Drupal core developer summit proposal - tap into the long tail...
With Drupalcon San Francisco just around the corner my mind seems to be more occupied than usual with all things Drupal. I especially liked the idea of the core developer summit and have dozens of things I would love to see in. With an academic research background in distributed agent systems and the Semantic Web I would love to see a decoupled, service-oriented Drupal that can discover and make use of services seamlessly and provide descriptions of its content (and state) in appropriate semantic web dialects. I would also love to see smallcore get a better definition and draw the lines between what is the app framework and what is the complete solution out of the box.
But after some thought none of that will not be in my developer summit proposal. I think what is far more important is not a purely technological innovation but a community innovation. After all Drupal is both technology and community and we need to make sure both are great.
I think we need to put in place a process that enables the long tail of Drupal, the hundreds (thousands?) of small shops and thousands of freelancers to give back in a meaningful way, even if all the time you have is just 1 hour a week. The emphasis is on meaningful. By that I mean, contribute towards getting code or documentation done so that they feel that their contribution counts for something.
As things stand if you have time, are motivated enough, read all the right things, spend hours in the issue queue, get to know people in IRC, get over any language barriers in case English is not your first language, see past (or ignore) some of the subtle politics going on you could eventually get to contribute something meaningful back. And that is great.
But there are tons of developers out there that simply don't have the time to do all that. If you have just 1 hour a week by the time you get back up to speed with what has happened in the past week the hour is gone once more and you still haven't given anything back. I know because that was my state for most of the past year.
You can call us lazy, not motivated enough, not bright enough, not brilliant enough as the people that do manage to get through but if, as a community, we somehow manage to tap into this resource we could a) make Drupal much, much better b) revolutionise how open source happens.
And perhaps once people feel they are giving something meaningful back they end up dedicating even more time, because they feel more motivated. I think this is particularly important in a time where big(ger) companies such as Acquia and Development Seed rule the day and the smaller developers feel increasingly irrelevant as they feel they could never throw in the kind of resources the greats of Drupal can.
How can we achieve this? Well, first up we need a developer profile to aim at - I will use myself as an example. I can code semi-decently, I can write semi-coherent stuff, I have a more than full-time job and a family. Realistically, I can dedicate about 2 hours a week on Drupal unless I go to bed late or wake up very early and spend more time on it. Not every week mind you, because, to put it bluntly, shit happens that eats up my time. Say at least twice a month, two hours a week. How could I help? In a meaningful way?
Two requirements come to mind.
The first requirement is a point of reference - a mentor or guide of sorts. I need someone or something that is already well hooked into the community that sets me up with what I need to do. A simple, well-defined task that can be completed in 1 or 2 hours. Write X, test Y, review Z. Simply choosing X, Y or Z can take tons of times and by the time you settle on something someone else may have answered it, or you have a question related to it which you post, go away and come back a week later to find out that all sorts of things have happened that you can't really catch up with and you then look for something else and then you feel frustrated and you give up. And Drupal lost out to a small contribution. A guide could answer questions, help me stick to it, etc. The solution to the mentor/guide requirement could begin as a simple mailing list where one could post without fear and several guides or other members could collectively answer to - a support group type solution perhaps.
The second requirement is to overhaul the tools so they describe the problems and what can be done to solve them much better. The issue queue is really bad - especially as the threads become very long. It is just not a friendly environment to be in. I am sure that as a community we could do better and perhaps the changes are not so much about huge code changes but tweaks here and there.
And there you have it. I suprised myself. No fancy distributed services, no advanced technology. It's the community, stupid.