DrupalCon

Barcelona

dries@buytaert.net  // @Dries
#Driesnote

Follow along at

www.slides.com/driesnote

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


5 of those 15
spent on building Drupal 8

since Feature Freeze

TDD

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

Made with Slides.com