I've heard it said time and time again. I've even said it myself. "Drupal doesn't target developers anymore." While Drupal does not have a standard listing of target audiences there is talk of an informal direction that's away from developers. But, is this actually true? Or, is it something that's used in a cry of frustration rather than observable? Looking at the details I was surprised at what I found.
Looking at Drupal 7 and 8
Thinking of modern Drupal development versions 7 and 8 came to mind. For Drupal 7 Dries had a list of priorities that read:
- Better media handling
- Custom content types in core
- WYSIWYG editor
- Better performance
- Better tools to structure/organize content
- Basic Views like module
- Automatic upgrade functionality
- Improved node access system
- Better internal APIs
- Better external APIs (import/export, web services)
While these were his priorities you may notice several of these did not happen.
And for Drupal 8 he has setup a number initiatives that include or have included:
When I look through these two lists I see a lot that is developer focused. Better internal and external APIs are definitely targeted at developers and those are 2 of the 11 goals for Drupal 7. When it comes to Drupal 8 configuration management and web services are both things that have a definite impact on coders. The html 5 initiative was for front end developers. Without even digging down into these initiatives I can see a top down approach of developers as a target audience.
Where Is It Going Wrong?
If the top down picture shows a focus on developers than why are people complaining? I can't point a finger at Dries for not setting some form of direction around these. It's not a matter of formality because there has been formal direction in some form.
So, where is it going wrong? Why are developer complaining (and sometimes rightfully so)?
Maybe a good place to start is to ask what developers Drupal is and should target. There is quite a gap between a weekend warrior, someone who does that by themselves for small organizations, and someone who is building a service on it or doing large scale applications. That is both in their needs and their background as a developer.
Then we can ask questions like, is Drupal targeted at me? What can Drupal do to have better internal APIs for this or that type of developer?
In this whole thought exercise there are two warnings.
First, we all need to be careful not to blame. In my time in the Drupal community I've learned there are a lot of people who care, are well meaning, and are trying. No one does the best or right thing all the time (or can even agree what that is).
Instead I like to think of this as an exercise in incremental improvement and looking at it from a place of observing the system to spot those opportunities. This is also a way to get a view of what's happening without coming up with an opinion based on frustration with a particular problem.
Second, I hear people say Drupal is for anyone. Or, at least for all developers. This is obviously not the case. For example, a Java developer is not expected to be excited about Drupal. I'm reminded that you can't please all the people all the time but you can displease all the people some of the time.
Coming to a picture of who Drupal is for can help to meet the needs of those people even better while diverting people trying to solve a problem that's not appropriate for Drupal to other places that meet their needs. It can even be a way to help identify others who compliment Drupal and have a better exchange with those projects.