DrupalCon
Barcelona
dries@buytaert.net // @Dries
#Driesnote

Follow along at
acquia.slides.com/
drupalcon/driesnote2015
Work-life balance
We need to talk”

To escape fear, you have to go through it, not around ”
~ Richie Norton

Uncomfortable
questions
Drupal companies are losing business

Is Drupal losing momentum?

“Why isn't my
phone ringing?”

We need to
talk about that
Why can't we release on time?


We need to
talk about that
“WordPress is getting even bigger”

“What about content APIs?”
“Squarespace has a great
developer experience”
“Proprietary CMSes are becoming full-featured product suites”



Can we compete?










We need to
talk about that
Can we get user
experience right?



“Why can’t I just drag it in?”
“Where is the “new post” button?”
“What is a ‘view’?”
“I give up, this is just too hard.”

We need to
talk about that
Client side apps
are a big trend and
they're not going away




My friends
are using Angular
I don’t
want to be ‘out-of-touch’
Going headless looks fun
Customers
are asking for
‘web apps’
I won’t have to fight the markup
Will my PHP skills be in demand?

Are they
a threat?
We need to
talk about that
Development
process
Market
position
Technological relevance

Are we losing momentum?
Why can't we release on time?
Can we compete?
Can we get UX right?
Are the frameworks a threat?
How should we react to them?
2
1
3
So let's talk

Development
process
Market
position
Technological relevance
Are we losing momentum?
Why can't we release on time?
Can we compete?
Can we get UX right?
Are the frameworks a threat?
How should we react to them?
2
1
3
Developement
process
1
Is Drupal losing momentum?

Users are waiting for Drupal 8
Yes.
This is not
unusual
Announcement of a new release slows adoption of the current version
The Osborne Effect
We need to get
Drupal 8 released
Start developing
on Drupal 8 today
Upgrade contrib
modules
Donate
time to
fix bugs
Attend
sprints
Donate
money to
fix bugs

3,000+
15,000+
1,300
contributors
committed patches
fixed criticals
1 month without a surprise
1 big problem left
RC1
October 7th, 2015


(*)
(*) Assuming no security or data loss issues
However, there are some
things we need to change
Drupal is almost
15 years old
5 of those 15
spent on building Drupal 8
since Feature Freeze
1024 days
That is
too long
Development
process
1
Why can't we release on time?

No one is to blame for this
No one is to blame for this
Except me
Heroic effort is usually evidence of a flawed process
Expected life of a feature
Planned work
Complete
Unplanned
Abandoned
Planned work
Complete
Unplanned
Abandoned
Reality
The Planning Fallacy
Daniel Kahneman and Amos Tversky, 1979
“Regardless of skill or prior knowledge humans tend to underestimate project timelines by up to 75%”
Everyone has a plan until they get punched in the mouth.”
Mike Tyson


Multiply times many features ...
... and all in one branch
Main branch
Release
Main branch
... and all in one branch
Release
Main branch
Release pushed back
Release
We can only go as fast as our slowest feature
We added hundreds of features to Drupal 8 so imagine hundreds of these
Release
We're now down to one feature (Twig)!

There must be a better way.
We need to stop this or
we will not survive.
Release
Main branch
Release
Main branch
#1: Create feature branches
Feature branches
Release
Main branch
#2: Only merge when shippable
Feature branches
Release 1
Main branch
#3: Date-based releases
Feature branches
Release 2
But what about merges?
Release 1
Main branch
#1: Break up features
Feature branches
Release 2
Release 1
Main branch
#1: Break up features
Feature branches
Release 2
MVP 2
MVP 1
Release 1
Main branch
#2: Cross functional teams
Feature branches
Release 2
MVP 2
MVP 1
Release 1
Main branch
#3: Orchestrate merges
Feature branches
Release 2
Max
impact
MVP 2
MVP 1
To sum up:


This wasn't
your fault
We will fix the
way we work
We didn't
release on time


Development
process
Market
position
Technological relevance
Are we losing momentum?
Why can't we release on time?
Can we compete?
Can we get UX right?
Are the frameworks a threat?
How should we react to them?
2
1
3








Market
position
2
Can we compete?



Perception

Total sites
Alexa ranks, including subdomains
Reality
How did they do this?
Alexa ranks, including subdomains
It’s a shipload of apples to truckload of really big oranges


Developer experience

Site builder experience
Developer experience
Site builder experience

DrupalCon Barcelona 2007
Déjà vu?
(8 years ago!)

Slide from keynote in Barcelona 2007



11.
12.
13.
14.
15.
16.
17.
Symfony framework
Configuration management
Web services
Performance and caching
Plugin system
Twig
Full views in core
Can we get UX right?
Market
position
2



“Why can't I just drag it in?”
“Where is the 'new post' button?”
“What is a 'view'?”
“I give up, this is just too hard.”

We need to focus more on
the non-coders
Author
Builder
Themer
Editor





Developer
Ops engineer

Experience is not
just a list of features

as close to zero
as possible
It's getting user effort

Let them try it!
How do you know?
Expected life of a feature
Planned work
Complete & shippable
Build, measure, learn
Paper test
Patch
Prototype
User test/demo
If we focus on the non-coders, there is tremendous potential

To sum up:


We're in a good position
If we do there's big upside

But we still need to get better at UX
Development
process
Market
position
Technological relevance

Are we losing momentum?
Why can't we release on time?
Can we compete?
Can we get UX right?
Are the frameworks a threat?
How should we react to them?
2
1
3
Technological
relevance
3
Client side apps
are a big trend and
they're not going away



A little web history
Early Web
Render


Desktop
Server
Browser



Traditional CMS
Render
Desktop
Server
Browser





Client side apps
Desktop
Server
Browser





Render
Optimistic Feedback
Non-blocking user interfaces
Application Experience
|
|


What are the benefits of client side apps?

CMS
Traditional




Architecture:

CMS sends layout and content


Client side apps



App requestscontent
Architecture:



App
Builds layout
App requestscontent




CMS
Content


Decoupled
(CMS + Client side app)
Architecture:

App
Builds layout

Apps

Maybe this wasn't such a good idea
Fully decoupled is usually not the solution
You lose a lot

No
preview
No page layout
No form validation
No
edit in place
No
toolbar
No
a11y
No
RDFa
Benefits of Traditional
Benefits of Decoupled
All of your Drupal site building tools
Faster performance with BigPipe
All of your layout tools
Optimistic feedback
Non-blocking interfaces
Application-like experience
Can we have our cake and eat it?
Progressive
Decoupling

presents:
App
Progressive decoupling
Traditional




CMS
Content
Layout
Architecture:
App
Progressive decoupling
Traditional



CMS
Content
CMS sends layout

Architecture:


Layout
App
Progressive decoupling
Traditional



CMS
Content
Architecture:

CMS sends content

App
Progressive decoupling
Traditional



CMS
Content

Architecture:
App requests
more content

We have our options
open
Build better
front-ends with Backbone and Twig
Feed your Drupal data to client side
apps (native)
Build progressively decoupled sites
with page building tools
Traditional
Progressive
Decoupled

REST in Drupal 8
Multiple
round trips
Too much, or too
brittle data
Poor dev experience
|
|
Great, but not perfect







What we need:
One API call for everything you need and nothing you don’t

Better dev experience for query building
We have these!
One API call for everything you need and nothing you don’t

Better dev experience for query building

Sebastian Siemssen
'fubhy'
REST in Drupal 8










GraphQL in Drupal

Serialization and typed data in Drupal 8 made
Graph QL possible
GraphQL query
builder is in
Drupal 8 contrib

Progressive decoupling and GraphQL
put us ahead of the competitors









Competitors
Innovators
Drupal 8
Text
Javascript MVCs







We need to keep exploring decoupled architectures
This is not a little shift, it’s a big shift
To sum up:


Progressive decoupling is the best of both worlds
Drupal 8 + GraphQL
is ideal for apps
and sites
Fully decoupled
is not always the best solution

Development
process
Market
position
Technological relevance
Are we losing momentum?
Why can't we release on time?
Can we compete?
Can we get UX right?
Are the frameworks a threat?
How should we react to them?

The take-aways
1. Release Drupal 8 and momentum will come
The take-aways
1. Release Drupal 8 and momentum will come
2. Move to a more sustainable release process
The take-aways
1. Release Drupal 8 and momentum will come
3. Put non-coders first to increase our impact
2. Move to a more sustainable release process
The take-aways
Drupal 8 will be the go-to platform for sites
and apps
1. Release Drupal 8 and momentum will come
3. Put non-coders first to increase our impact
2. Move to a more sustainable release process
4.
One final (Dries) note:






3.1 billion are online


With 1 in 40 sites Drupal touches almost all of them
3.1 billion are online
5 BILLION

By 2018 there will be
Want more details?
http://buytaert.net
Thanks!
dries@buytaert.net // @Dries
#Driesnote
DrupalCon Barcelona
By drupalcon