There is an active attempt to fork the Drupal content management system into a new application:

Backdrop — a play on Drupal's name and origin, which originally intended to be dorp.org (Dutch: village), but due to a typo, became drop.org in 2001. Shortly after, drop.org was renamed to drupal.org.

As the name suggests, Backdrop's intention is to get back to the roots of Drupal:

  • Quality
  • Simplicity
  • Developer Experience and Productivity
  • Performance
  • Targeted vision and use-case

The project was kick-started and is driven by a few people that I personally respect and value a lot. In fact, they are representing a group of brilliant people and excellence, which originally turned Drupal into the product that it is today. A group that felt ignored and unheard in the recent past — even though it were primarily these and like-minded people who enabled the world to interpret Drupal as a real product and competition in the first place.

To be clear: Do not try this at home. The attempt of forking Drupal involves hundreds of factors that you are not considering. There have been many attempts in the past, but not a single one succeeded. Yours will not succeed either. Backdrop may or may not be an exception.
(Did I phrase this clear enough?)

The root of all concerns is Drupal 8, which is in development and undergoes major architectural changes for ~3 years already. Though, despite all changes, there's little to no innovation compared to the competition. The focus is to clean up and modernize all core code and APIs, with the intended goal of ending up with a base system whose architecture is more maintainable and sustainable in the future.

The current state of Drupal 8 is poor and not worth to talk about. However, the final and intended state seems to present a clear and diametrical conflict to the former goals, qualities, values, and roots of the original Drupal project.

The situation

I talked to various different parties. What I learned is simple:

People are not listening to each other.

People do not appear to remotely see the points that others are trying to make. In both directions. Assumptions are utterly wrong, frontiers are built before having any clue at all, counter-arguments are overly naive and misguided, and all communication is generally hindered by a good amount of bad-ass trolling.

What I heard was offensive defense and disagreement. No one appears to listen and to truly perceive and understand all arguments, before drawing any kind of lines and/or conclusions.

As if, you know, the world was flat.

In short, a simple and common conflict resolution scenario.

This blog post originally aimed to cover all aspects on the idea of forking Drupal and my personal stance on this particular fork, but after gathering more and more insights on the current situation, I decided to leave out and save those parts for a future post.

Therefore, this post reflects on the communication conflict only.

Solutions are possible. They will require changes. They will cause conflicts. It is a matter of will, listening, and dedication. It is a matter of respect.

Disconnect in Dissent

In analyzing the situation, and in distilling and deciphering all arguments, I did notice that there appears to be a rather large disconnect in understandings and communication.

It's important to note upfront that the situation did not suddenly appear a week ago, but actually evolved over the past ~2 years throughout the Drupal 8 development cycle.

Drupal core developers appear to be coming from a mindset that is deeply stuck in refactoring work of internal core framework subsystems, which happens to involve plenty of abstractions and complexity. These were major and important undertakings, but in all of this work, not much thought went into the question of how verbose these concepts need to be for the average module developer.

A few core developers are showing good will to fix and improve minor developer experience issues. Some others do not appear to see any issues at all, and they seem to not only ignore the arguments that are being raised, but even strongly and blatantly argue against them. Tension appears to be caused by an attitude of:

I am right and know better, and you are just simply wrong.

...which doesn't make it sound as if anyone was listening.

Conversely, people who are looking at the current state of art are deeply confused as to why so much internal complexity and abstractions are verbosely exposed in the user space, and whether that is really necessary.

From what I've heard, the scope and extent of concerns does not encompass a few individual improvements here and there, but instead, is asking for major changes to remove all unnecessary complexity and ensure simplicity (and productivity, for that matter) in user space code.

The primary disconnect appears to be a major difference in understanding of what exactly is interpreted as "complex."

There further appears to be a misunderstanding in that people would have a general problem with object-oriented code, which is not only misguided but also makes an insulting assumption on the technical learnability skills of others. As a consequence, a line is drawn between parties that does not actually exist, which in turn hinders constructive communication.

The same consideration appears to be further manifested by the assumption that the target developer audience of Drupal 8 would be different. Equally based on the idea that novice PHP developers and hobbyists would not be capable to understand and learn object-oriented code. This nonsensical assumption clearly appears to stem from the disparity in understanding of what exactly "complexity" constitutes.

All communication appears to be distorted by another disturbing detail: The API freeze for Drupal 8 was officially announced already, despite the fact that literally everyone and all parties appear to agree that the current state is a total mess and not remotely releasable. This aspect especially supports the resignation of the non-core party, as they're in fact asking for major API changes, which obviously presents yet another unnecessary conflict.

Drupal appears to have taken steps to remedy the situation through a new D8DX initiative. But coherent to all other communications, this initiative starts with a big list of things that are out of question, and just continues with a list of minor issues that may be debatable. In other words, directly building a frontier, before even starting to listen.
Update: It appears the initiative page has been corrected to somewhat address this issue.

Conclusion

It's a tough situation, because there's a lot of frustration all around. In fact, no one appears to be happy with anything. The lack of a clear leadership, ownership, and authority certainly contributed to the final path that slowly but certainly turned frustration into resignation.

Now the question is whether everything sucks and it's too late, or whether there is a chance to resolve the situation by taking a large step back (stop coding, start listening) and bring everyone on one round table to find concrete, working solutions.

Solutions are very well possible. But they certainly require everyone to leave their comfort zone, start being receptive, listen to and ensure to comprehend concerns of others, accept that there are different world perspectives, and most importantly, to allow yourself to make compromises.

My recommendation is to not calm down and defend, downplay, or ignore the issue. Also, don't be afraid, don't be a jerk, and don't be a hardliner. Instead, I want to encourage you to be open, welcoming, collaborative, and constructive in everything you do. Respect others, respect the culture. In short, respect

The Drupal Way™

Kommentare

I'm really glad you brought this up, sun. There hasn't really been a pragmatic look at the whole situation, and I think you covered it perfectly.

This is an open source community, so forking a project should be encouraged, and it still is. The reasons to do such a thing in this case seem to come from a neglect of learning something new. I'd consider PHP 5.3 on a completely different level than what PHP was before.

The PHP community has, in a way, matured. Have we?

Best description I've read of the issues fragmenting the Drupal community, and with a bit of inspiration at the end. Thanks sun.

"Targeted vision and use-case" is the key IMO.

Even Acquia is trying to serve the very biggest Drupal users, and (through Drupal Gardens) the very smallest. If everyone agreed what and who Drupal is for (rather than holding on to the unrealistic hope that it can be a good choice for a very wide spectrum of sites) then the defined and limited range of use-cases would guide the architecture and coding decisions. It means leaving behind some user groups, but that is happening anyway.

Over the past few years with more and more people full time time employed in the ecosphere that is Drupal, with more companies some of which have secured significant rounds of capital...

I was under the impression that with all of this attention D8 was going to be an off the charts release.

How do you feel all of that contribute to the problem or is it in fact helping it and holding it together?

re: @RobLoach:

The reasons to do such a thing in this case seem to come from a neglect of learning something new. I'd consider PHP 5.3 on a completely different level than what PHP was before.

Drupal always involved major changes between major versions. PHP 5.3 and object-oriented PHP code do not present a problem.

That appears to be one of the big misunderstandings. People should stop to bring this up, since reducing the problem space like that is invalid.

A more appropriate summary would be complexity.

For that matter, just like there can be complex procedural code, object-oriented code can be complex, too. Object-oriented code can also be designed simple.

Again, I'd like to encourage everyone to listen a bit more, so as to get to the bottom of the actual concerns.

Right, Daniel, it is a good perspective of the "situation". Which I think comes down to the decission making process, which is broken, and losing focus on who is building what for whom, which we don't know anymore.

Anyway all this, included frustration, started building up seriously with Drupal 7, so I think it's healthier having this kind of "crisis" sooner than later.

Then about forking I think Drupal 6 would have been a much healthier starting point. Actually there are still more useful modules for D6 than for D7 :-)

Drupal 8 can wait anyway, as you say it is nowhere close to a releaseable anything, and apparently no one really likes it, though everyone for different reasons...

losing focus on who is building what for whom, which we don't know anymore.

That is certainly true. Although, strictly speaking, the concerns that are currently being raised primarily appear to be of technical nature.

In other words, even if you do not have a product vision and strategy, I am confident that you are still able to produce application code that is simple to learn and work with for everyone.

Drupal 6 would have been a much healthier starting point.

Heh, yeah. In fact, I thought the same. In terms of performance, I'd even recommend to go back even further to Drupal 5 — at minimum, to figure out what caused the major slowdown compared to Drupal 6, so as to re-implement the offending parts in simpler ways.

Sun, I one hundred percent and whole heartedly agree with you. I think you've hit the nail so exactly on the head that almost any deviation from exactly what you've said would be completely off the point. I think I've seen this happening for months now and its been very interesting. The split in the drupal community has almost completely matched the split between the analytical and continental philosophers! Its in the way people write blog posts or do technical discussion rather then any specific issue in the code.

Targeted vision and use-case" is the key IMO.

I think this is very much exactly not what is important. I think everyone says stuff like that and that might be an issue for the future but for now there isn't really an inherent source of the conflict (such as differring target visions).

I remember a while back a big argument between chx and pounard about a really minor patch about how a single line of code could be written. Neither side felt the actual patch mattered that much but both sides felt that the patch represented an almost change in the "Drupal Way". One way or the other would not have clearly favoured "big", "small", "corporate" or any other demographic.

I think you are completely right about the specific source of the issue. The definition of "Complexity". Everyone wants the code to be simpler and everyone seems to think that the other side is making things "unnecessarily complex". In reality it is because a clear understanding of what complexity is, hasn't quite been reached.

Now the question is whether everything sucks and it's too late, or whether there is a chance to resolve the situation by taking a large step back (stop coding, start listening) and bring everyone on one round table to find concrete, working solutions.

I am by no means even close to being a master of Drupal. I don't even code. But everything I've seen seems to suggest that you are right when you say this is just about "conflict resolution". It doesn't seem there are any actual things that people really disagree on. It really looks like a resolution could be reached on the Drupal 8 code itself.

I think we need leadership and we need people listening again. Looking at that initial conversation between pounard and chx. I think think either individual was doing anything wrong (other then getting stressed out which happens). And I don't think either of them could have completely solved the conflict as the conflict was bigger then both actors. This to me suggests some form of leadership and conversation is what is needed.

Also... one of our junior developers who hasn't been involved in drupal for a huge amount of time (maybe just over a year) got into Drupal 8 recently by going to a Drupal Camping event and loved it. http://yanniboi.wordpress.com/2013/08/14/instagram-block-summary/ is his blog post.

He's finding Drupal 8 easy enough.

This is not me taking sides this is just me saying that I think the people I know who are more wordpressy are people who could get into Drupal 8.

I agree with sun and yautja_cetanu although I'm going to go one step further.

I think the problem is entirely a communication issue within the community and has almost nothing to do with what code is being produced, the problem is that rather than trying to resolve conflicts the community has been trying to avoid them.

We (as a community) have found the arguing stressful and so rather than battling it out and coming to the best solution we've got tired and conceded points, not because we agree but because we don't like arguing anymore.

The "there are two different target audiences" or "two different visions" seems like a cop out to me. It's an excuse to not have the discussion rather than an actual answer to the problem.

To move forward, we need to listen to each other better and we also need the input of the guys who are currently working on things like backdrop.

A few core developers are showing good will to fix and improve minor developer experience issues. Some others do not appear to see any issues at all

It's hard for the core developers to see these problems in the contrib space. After all, they're the ones who made the change (after much debate usually), so it's not hard for them to see how they must update their modules. It's the contrib maintainer coming freshly to D8 who is confuzzled.

It only stands to reason that if I walked up to you and presented you with an entirely different framework, one that you did not recognize, and did not have the faintest clue of understanding about, that you might be very skeptical about using it, in fact you would probably not want to suddenly change from "Drupal" and start using it. Right?

Well, thats what we got right now, an entirely new framework, that's not Drupal 8's fault but its a fact. If I told you we were replacing Drupal with Django and by the way you must now learn Python perhaps you would be a little shocked, right, well, we're in shock right now, and not taking it well.

I personally have to completely reassess Drupal 8 as it is, a totally new, untested and unproven framework. Naturally I am going to be skeptical, who wouldnt be when your business dollars are riding on it, when you have to feed not only your family but many others relying on you?

And we cannot leave the fact that many of us put years into Drupal, such as contrib, tutorials, docs and other contributions, not least of which contribbing to core which I did a fair amount of in D7 (now all smoke).

Needless to say I am not entirely thrilled about having this new framework rammed down my throat and being told to "learn something new its good for me, and by the way just absorb the cost thanks very much" just because I say I am not so sure about this, not really what I wanted or signed up for.

I reserve that right to walk away and do something different when the community I joined and help build so aggressively turns its back on me and many, many others alike.

Maybe communication is the issue, then again everyones been talking for a long time and as you say, frontiers were built, and they can be pretty hard to take down once in place.

One of the issues I am not clear on is upgrade path, afaict D8 will have absolutely zero upgrade path for D7, at least from my few weeks of theme building on D8 that seems pretty evident, and afaict Backdrop looks to plug that gap, to gives site owners somewhere to go when the time comes to move. Now that seems well and good but it will still entail an upgrade cost - Backdrop will use twig for one, but perhaps those costs will be less so with Backdrop (assumption), one thinks that requires a lot of contrib developers to get on board or for contrib module upgrades to Backdrop to be trivial.

I think this might be a pretty major pain point for many - if theres one thing we've head, loudly, or should I say VERY loudly, from the community over the years its for goodness sake stop breaking API's. OK, sure, we know thats not really the way forward but this time around it's not a trivial upgrade or API makeover, it's a paradigm shift akin to turning the world upside down.

I think D8 has a lot of people worried about costs, capacity and capability (at least to some extent), especially small to medium shops that only use Drupal sometimes (they can't afford the time and effort to relearn Drupal API's every three years).

I am not a programmer, however even I am diving into D8 and, one byte at a time, eating the elephant. I've written my first theme that is twig based and almost entirely OO, ok it's a non-trivial theme, but I don't do trivial themes, as you may know. I've leveraged many of the new things - namespaces and autoloading, and even some of cores base classes, great, its just great, I love it to be frank.

But this is not about OO in general, not at all really, for some yes, like me who learned all PHP in Drupal its by and large a brave new world and a shift in thinking is required.

For me Backdrop is a not a bad thing at all, and may well coexist quite happily and provide a much needed option for those who need it, so I think its not really a huge debate here to be had, we can have both, forks are good, not bad - that idea is a Drupalism I'm afraid, and one that has to go away, if we are going to move into the modern age of web and code development then please throw out these archaic ideas that forks are a bad idea, Github already proved to us over and over that forks fuel innovation, allow site developers to lock down their (required) changes and many other good reasons.

For me we can all still be bff's, and alternatives are just OK, lets not get into a mambo over this.

I loved your article and hope this is okay to ask but you mentioned:

There's little to no innovation compared to the competition.

Can you clarify this point as it is quite a broad statement to make without clear facts. Especially when it seems there are many improvements and innovation in D8.

Backbone, Twig, Guzzle, Rest Server with CMS on top, we all know the marketing but this seems like innovation my end.

I can remember the outcry from certain people when Drupal went from 5 to 6. I know of at least one person who was convinced drupal 6 would not release and left the Drupal community altogether.

Change is hard but necessary. What makes it harder is that good change rarely comes from "one man one vote" democratic consensus. Sometimes a hierarchical decision process is required to actually make shit happen.

I, for one, am kind of excited about learning an improved themeing engine and dabbling in object oriented programming.

Daniel, can you reply in these comments when you post your opinions on Drupal 8 and Backdrop. I'd love to hear what your thoughts are.

I highly appriciate Drupal features, but breaking the APIs every few years erases all of those advantages.

I agree with Jeff Burnz:

For goodness sake stop breaking API's!!

Save Drupal!

I would clarify that breaking API's is something I have agreed with in the past very much, it allowed Drupal to dump it's technical depts and move forward in a huge leaps. What I mean was that its a message we have heard a lot and should be considered, and I personally at least, think yes, we might be able to consider this now and I can see moves within the core team to push this idea forward.

Yes that's right Its in the way people write blog posts or do technical discussion which is really important. Even we can share complete code we have sometime to understand the issue.

I hadn't realized how bad the situation was for module developers in the early D8 alphas.

That having been said, I find the notion that preserving D7 state would make Drupal easier for new developers to be pretty problematic. Drupal is fairly difficult to learn to develop for. I have to think D8 (assuming the issues with crazy complexity in developing simple modules) will _simplify_ things for new developers.

I expect it to be harder for me; but that's because I've got time invested.

It seems to me that quicksketch & his compatriots are serving a community that's destined to diminish in size, unless they make some of the same kinds of change that D8 was making.