State Of Drupal September 2009

165
State of Drupal DrupalCon Paris 2009 Dries Buytaert http://buytaert.net :: http://twitter.com/dries

Transcript of State Of Drupal September 2009

Page 1: State Of Drupal September 2009

State of DrupalDrupalCon Paris 2009

Dries Buytaert

http://buytaert.net :: http://twitter.com/dries

Page 2: State Of Drupal September 2009

Are we freezing the code?

Page 3: State Of Drupal September 2009
Page 4: State Of Drupal September 2009

time

Start of development cycle

Release

“Slow motion” phase- “We need more core committers to review patches.”- “Gosh, Drupal development is so broken. If only we used Git!”- “We lost momentum.”

Code freeze

“Patch frenzy” phase- “Crap, my patch isn’t going to make it in!”- “We failed to do enough of X. That is poor leadership.”- “Wait, we can’t freeze the code like this!

“Developer scream” phase- “Drupal was released too early! We’re missing A, B and C still.”- “We should maintain backwards compatibility. This is crazy.”

“User scream” phase- “I can’t believe you make me relearn this!”- “You shouldn’t release core until contrib is updated.”- “I can’t believe you’re already working on the next version of Drupal core. I haven’t even upgraded yet.”

Production ready

Strong momentum- “Drupal is going to be AWESOME.”

Page 5: State Of Drupal September 2009

time

Page 6: State Of Drupal September 2009

time

Page 7: State Of Drupal September 2009

Nikolai KondratievEconomist, 1892-1938

Described fifty to sixty-year long waves of economic prosperity and depression

Page 8: State Of Drupal September 2009

Joseph SchumpeterEconomist, 1883-1950

Radical innovation drives recurring cycles of “creative destruction”

Page 9: State Of Drupal September 2009

Paul Saffo

• Overestimating short-term benefits, underestimating long-term benefits of innovations

• Cycle of expectation and disappointment is an essential part of the innovation process

Page 10: State Of Drupal September 2009

We’re normal!

Page 11: State Of Drupal September 2009

GartnerJackie Fenn and Mark Raskin

Page 12: State Of Drupal September 2009

time

Gartner’s hype cycle

Innovation trigger

Negative hype

Through of disillusionment

Slope of enlightenment

Plateau of productivity

Page 13: State Of Drupal September 2009

time

Gartner’s hype cycle

Innovation trigger

Positive hype

Slope of enlightenment

Plateau of productivity

Peak of inflated expectations

Page 14: State Of Drupal September 2009

time

Gartner’s hype cycle

Innovation trigger

Positive hype

Slope of enlightenment

Plateau of productivity

Peak of inflated expectations

Negative hype

Through of disillusionment

Page 15: State Of Drupal September 2009

time

Gartner’s hype cycle

Innovation trigger

Positive hype

Plateau of productivity

Peak of inflated expectations

Negative hype

Through of disillusionment

Slope of enlightenment

Page 16: State Of Drupal September 2009

time

Gartner’s hype cycle

Innovation trigger

Positive hype

Plateau of productivity

Peak of inflated expectations

Negative hype

Through of disillusionment

Slope of enlightenment

Page 17: State Of Drupal September 2009

time

Swamp of diminishing returns

Cliff of obsolescence

Gartner’s hype cycle

Page 18: State Of Drupal September 2009

time

Start of development cycle

Release

“Slow motion” phase- “We need more core committers to review patches.”- “Gosh, Drupal development is so broken. If only we used Git!”- “We lost momentum.”

Code freeze

“Patch frenzy” phase- “Crap, my patch isn’t going to make it in!”- “We failed to do enough of X. That is poor leadership.”- “Wait, we can’t freeze the code like this!

“Developer scream” phase- “Drupal was released too early! We’re missing A, B and C still.”- “We should maintain backwards compatibility. This is crazy.”

“User scream” phase- “I can’t believe you make me relearn this!”- “You shouldn’t release core until contrib is updated.”- “I can’t believe you’re already working on the next version of Drupal core. I haven’t even upgraded yet.”

Production ready

Strong momentum- “Drupal is going to be AWESOME.”

Page 19: State Of Drupal September 2009

Are we freezing the code?

Page 20: State Of Drupal September 2009

When to freeze the code?

Previous release: plateau of productivity

Next release: peak of inflated expectations

time

Page 21: State Of Drupal September 2009

Plateau of productivity for Drupal 6?

Page 22: State Of Drupal September 2009

Install base

Source: http://drupal.org/project/drupal/usage

Page 23: State Of Drupal September 2009

!"

!#$"

%"

%#$"

&"

&#$"

'"

'#$"

(")*+"&!!,"

-*."&!!,"

)/+"&!!,"

0/1"&!!,"

234"&!!,"

563"&!!,"

768"&!!9"

0:."&!!9"

)/+"&!!9"

0/1"&!!9"

234"&!!9"

563"&!!9"

768"&!!;"

)/+"&!!;"

0/1"&!!;"

234"&!!;"

563"&!!;"

768"&!!<"

0:."&!!<"

)/+"&!!<"

!"##"$%&'

()*+,-'$.'/"&"0&'

Source: awstats from drupal.org

Page 24: State Of Drupal September 2009

!"

#"

$!"

$#"

%!"

%#"

&!"

&#"'()"%!!*"

+(,"%!!*"

'-)"%!!*"

.-/"%!!*"

012"%!!*"

341"%!!*"

546"%!!7"

.8,"%!!7"

'-)"%!!7"

.-/"%!!7"

012"%!!7"

341"%!!7"

546"%!!9"

'-)"%!!9"

.-/"%!!9"

012"%!!9"

341"%!!9"

546"%!!:"

.8,"%!!:"

'-)"%!!:"

!"##"$%&'

()*+&'

Source: awstats from drupal.org

Page 25: State Of Drupal September 2009
Page 26: State Of Drupal September 2009

We continue to win awards

Page 27: State Of Drupal September 2009
Page 28: State Of Drupal September 2009

Peak of inflated expectations for Drupal 7?

Page 29: State Of Drupal September 2009

New database layer

Page 30: State Of Drupal September 2009

Support for master/slave replication

Page 31: State Of Drupal September 2009

Support for transactions

Page 32: State Of Drupal September 2009

Support for multi-insert queries

Page 33: State Of Drupal September 2009

Support for delayed inserts

Page 34: State Of Drupal September 2009

A much improved support for PostgreSQL

Page 35: State Of Drupal September 2009

SQLite support

Page 36: State Of Drupal September 2009

MSSQL and Oracle support are now feasible

Page 37: State Of Drupal September 2009

Stronger password hashes

Page 38: State Of Drupal September 2009

Rate limit login attempts

Page 39: State Of Drupal September 2009

Better support for WYSIWYG editors

Page 40: State Of Drupal September 2009

More drag-and-drop

Page 41: State Of Drupal September 2009

Added a dummy install profile

Page 42: State Of Drupal September 2009

Removed comment controls

Page 43: State Of Drupal September 2009

Added account cancelation

Page 44: State Of Drupal September 2009

Added a built-in cron feature

Page 45: State Of Drupal September 2009

Added a default administrator role

Page 46: State Of Drupal September 2009

Redesigned the password strength checker

Page 47: State Of Drupal September 2009

Redesigned the add content type screen

Page 48: State Of Drupal September 2009

We have a much improved filter system

Page 49: State Of Drupal September 2009

Reduced number of SQL queries

Page 50: State Of Drupal September 2009

Stopped writing session for anonymous users

Page 51: State Of Drupal September 2009

Fixed HTTP headers

Page 52: State Of Drupal September 2009

Added support for HTTP proxies (can improve performance up to 2000x)

Page 53: State Of Drupal September 2009

Added 10,000 lines of API documentation

Page 54: State Of Drupal September 2009

Added a test framework and embraced test driven development

Page 55: State Of Drupal September 2009

Wrote thousands of tests

Page 56: State Of Drupal September 2009

Improved time zone support

Page 57: State Of Drupal September 2009

Cleaned up many APIs

Page 58: State Of Drupal September 2009

Made files first class citizens

Page 59: State Of Drupal September 2009

Added support for CDNs

Page 60: State Of Drupal September 2009

Removed per user themes

Page 61: State Of Drupal September 2009

Removed the throttle module

Page 62: State Of Drupal September 2009

Added the code registry

Page 63: State Of Drupal September 2009

Removed the code registry

Page 64: State Of Drupal September 2009

Removed Bluemarine theme

Page 65: State Of Drupal September 2009

Removed Chameleon theme

Page 66: State Of Drupal September 2009

Removed Pushbutton theme

Page 67: State Of Drupal September 2009

Added Stark theme

Page 68: State Of Drupal September 2009

Added Seven theme

Page 69: State Of Drupal September 2009

Made various theme system improvements

Page 70: State Of Drupal September 2009

Added support for thumbnails

Page 71: State Of Drupal September 2009

Added support for image effects

Page 72: State Of Drupal September 2009

Modules can declare RDF namespaces

Page 73: State Of Drupal September 2009

Added a Field API in core (CCK in core)

Page 74: State Of Drupal September 2009

Node bodies are regular fields now

Page 75: State Of Drupal September 2009

Made it possible to add fields to users

Page 76: State Of Drupal September 2009

Made it possible to add fields to comments

Page 77: State Of Drupal September 2009

Made it possible to add fields to anything

Page 78: State Of Drupal September 2009

Turned taxonomy term into fields

Page 79: State Of Drupal September 2009

Made the help text area a region with blocks

Page 80: State Of Drupal September 2009

Made the mission statement a regular block

Page 81: State Of Drupal September 2009

Made the footer a regular block

Page 82: State Of Drupal September 2009

Added translation contexts

Page 83: State Of Drupal September 2009

Added jQuery UI

Page 84: State Of Drupal September 2009

Added better module versioning

Page 85: State Of Drupal September 2009

Removed the blog API module from core

Page 86: State Of Drupal September 2009

Improved the node access control system

Page 87: State Of Drupal September 2009
Page 88: State Of Drupal September 2009

Peak of inflated expectations for Drupal 7?

Page 89: State Of Drupal September 2009
Page 90: State Of Drupal September 2009

Plateau of productivity for Drupal 6

Peak of inflated expectations for Drupal 7

Page 91: State Of Drupal September 2009

Where we are today

Previous release: plateau of productivity

Next release: peak of inflated expectations

time

Page 92: State Of Drupal September 2009

We are going to freezethe code!

Page 93: State Of Drupal September 2009

Half-baked croissants

Page 94: State Of Drupal September 2009

Field API is not 100% yet

Page 95: State Of Drupal September 2009

Profile module not converted yet

Page 96: State Of Drupal September 2009

D7UX is still a work in progress

Page 97: State Of Drupal September 2009

Test coverage OK but not stellar

Page 98: State Of Drupal September 2009

Performance degraded

(my biggest concern)

Page 99: State Of Drupal September 2009

Drupal 6 Drupal 7

/node 103 49

/node/1 43 56

/user/1

SQL queries

Credit: catchDetails: APC enabled, XDebug off

Page 100: State Of Drupal September 2009

no caching caching

/node -20% -12%

/node/1 -55% -12%

/user/1 -45% -12%

Performance

Credit: catchDetails: APC enabled, XDebug off

Page 101: State Of Drupal September 2009
Page 102: State Of Drupal September 2009
Page 103: State Of Drupal September 2009

Code freeze

Drupal 7.0 release

Development

Page 104: State Of Drupal September 2009

Code freezeDevelopment

82 weeks

Feb 1, 2008 Unknown

Phase one: “DrupalCon Paris”

• Still allowed: everything

• Ends Monday morning

• Make a snapshot of everything that is RTBC

• Angie and myself will review and commit those as soon we have time to

Page 105: State Of Drupal September 2009

Code freezeDevelopment

82 weeks 5 weeks

Feb 1, 2008 Sep 7, 2009 UnknownOct 15, 2009

Phase two: “code slush”

• Time boxed at 5 weeks

• Not allowed:

• New features or functionality

• Still allowed:

• Up to 10 carefully selected exceptions for new features

• Important API changes for existing features

• Usability, accessibility, testing, documentation and performance

• October 15th = API freeze (including mark-up freeze and schema freeze)

Page 106: State Of Drupal September 2009

Current exceptions

1. Imagefield2. Field translations3. Convert profile module to field API4. Convert taxonomy to field API5. Overlays6. Edit anywhere7. Shortcuts8. Dashboard9. Plugin manager10. RDF/RFDa

Page 107: State Of Drupal September 2009

Code freezeDevelopment

82 weeks 5 weeks

Feb 1, 2008 Sep 7, 2009 UnknownOct 15, 2009

Phase two: “code slush”

• Time boxed at 5 weeks

• Not allowed:

• New features or functionality

• Still allowed:

• Up to 10 carefully selected exceptions for new features

• Important API changes for existing features

• Usability, accessibility, testing, documentation and performance

• October 15th = API freeze (including mark-up freeze and schema freeze)

Page 108: State Of Drupal September 2009

Code freezeDevelopment

82 weeks 5 weeks 4 weeks

Feb 1, 2008 UnknownOct 15, 2009 Nov 15, 2009

? weeks

• Time boxed at 4 weeks

• Not allowed:

• New features, API changes, mark-up changes

• Allowed:

• Usability, accessibility, testing, documentation and performance

• November 15th = string freeze and UI freeze

• Releases: first alpha (or potentially beta)

Phase three: “strictly polish”

Sep 7, 2009

Page 109: State Of Drupal September 2009

Code freezeDevelopment

82 weeks 5 weeks 4 weeks

Feb 1, 2008 Unknown

? weeks

• Length: until all “release blockers” are fixed

• Allowed

• Release blockers

• Bug fixes

• Testing

• Releases: betas and RCs

Phase four: “bugs and release blockers only”

Oct 15, 2009 Nov 15, 2009Sep 7, 2009

Page 110: State Of Drupal September 2009

Code freezeDevelopment

82 weeks 6 weeks 4 weeks

Feb 1, 2008 Unknown

? weeks

Features

High-impact exceptions

API changes existing features

Bug fixes

SimpleTests

Oct 15, 2009 Nov 15, 2009

Performance

Usability

String changes and UI changes

Documentation

Accessibility

API freezeUpgrade path

String freeze UI freeze

Sep 7, 2009

5 weeks

Page 111: State Of Drupal September 2009

Beyond Drupal 7

Page 112: State Of Drupal September 2009

Joseph SchumpeterEconomist, 1883-1950

Radical innovation drives recurring cycles of “creative destruction”

Page 113: State Of Drupal September 2009

Everett Rogers1931-2004, Diffusion of innovations

Showed that innovation adoption does not happen in a straight line, but that it follows a predictable S-curve

Page 114: State Of Drupal September 2009

time

Page 115: State Of Drupal September 2009

time

Page 116: State Of Drupal September 2009

time

reachEverett Rogers’ S-curve

Page 117: State Of Drupal September 2009

Repeating in many different industries

Page 118: State Of Drupal September 2009

William Hyde Wollaston1828

Innovation

Credit: Simon Wardley

Page 119: State Of Drupal September 2009

Hippolyte Pixii1808–1835

Innovation Bespoke

Credit: Simon Wardley

Page 120: State Of Drupal September 2009

Gramme-dynamo

Innovation Bespoke Products

Credit: Simon Wardley

Page 121: State Of Drupal September 2009

Innovation

Electricity grid

Bespoke Products Commoditization

Credit: Simon Wardley

Page 122: State Of Drupal September 2009

Innovation

Electricity grid

Bespoke Products Service

Credit: Simon Wardley

Page 123: State Of Drupal September 2009

Electricity has transformed from an innovation to a service

Innovation Service

William Hyde Wollaston1828

Electricity grid

Credit: Simon Wardley

Page 124: State Of Drupal September 2009

Innovation

Credit: Simon Wardley

Z3, 1941

Page 125: State Of Drupal September 2009

Innovation Bespoke

Credit: Simon Wardley

Leo, 1946

Page 126: State Of Drupal September 2009

Innovation Bespoke Products

Credit: Simon Wardley

IBM 650

Page 127: State Of Drupal September 2009

Innovation Bespoke Products Commoditization

Credit: Simon Wardley

Cloud computing

Page 128: State Of Drupal September 2009

Innovation Bespoke Products Service

Credit: Simon Wardley

Cloud computing

Page 129: State Of Drupal September 2009

time

InnovationBespoke

Products

Service

reach

Credit: Simon Wardley

Page 130: State Of Drupal September 2009

time

InnovationBespoke

Products

Service

reach

database

downloadable CRM product

Credit: Simon Wardley

Page 131: State Of Drupal September 2009

time

InnovationBespoke

Products

Service

reach

Buzzr

Acquia Gardens

DrupalEd

Open Atrium

PressFlow

Acquia Drupal

OpenPublish

...

Page 132: State Of Drupal September 2009
Page 133: State Of Drupal September 2009

Get break out growth instead of linear growth

Page 134: State Of Drupal September 2009

Install base

Source: http://drupal.org/project/drupal/usage

Page 135: State Of Drupal September 2009

Distributions is one way

Page 136: State Of Drupal September 2009

Install profiles as modules + plugin manager

Page 137: State Of Drupal September 2009

“Features” is one way

Page 138: State Of Drupal September 2009

Richness + reach = success

Reach

RichnessThe place to be

Drupal

Joomla!WordpressExpressionEngine

Plone

Page 139: State Of Drupal September 2009

Richness + reach = success

Reach

RichnessThe place to be

ProductsFrameworks Services

Page 140: State Of Drupal September 2009

Framework versus product

Page 141: State Of Drupal September 2009

Frameworks create bespoke systems

Page 142: State Of Drupal September 2009

Framework versus product

Page 143: State Of Drupal September 2009

Framework AND product

Page 144: State Of Drupal September 2009
Page 145: State Of Drupal September 2009

time

InnovationBespoke

Products

Service

reach

Market or user driven development

Innovation driven development

Page 146: State Of Drupal September 2009

Denial?

Page 147: State Of Drupal September 2009

Drupal 7 usability

Page 148: State Of Drupal September 2009

“If you’re not afraid, you’re not doing the right thing.”

Page 149: State Of Drupal September 2009

Pain

Page 150: State Of Drupal September 2009

Great

Page 151: State Of Drupal September 2009

Growing up

Page 152: State Of Drupal September 2009

We can’t roll back time. We have no choice to grow up.

Page 153: State Of Drupal September 2009

We’ll reach out to new people, and have to learn how to interact with them

Page 154: State Of Drupal September 2009

• Learned a pattern on how we innovate -- and we’re normal

• Innovation is on track, feel great about Drupal 6 and Drupal 7

• Learned what our evolution might be

Recap

Page 155: State Of Drupal September 2009

Only good platform is an open platform

Page 156: State Of Drupal September 2009

Only good community is a fair and balanced community

Page 157: State Of Drupal September 2009

DrupalCon after 4 years ...

25 Drupal developers DrupalCon Belgium

Antwerp, 2005

Page 158: State Of Drupal September 2009

1400 Drupal developers DrupalCon DC

Washington, 2009

DrupalCon after 4 years ...

Page 159: State Of Drupal September 2009
Page 160: State Of Drupal September 2009

Being significant

Page 161: State Of Drupal September 2009

How do we go where we aren’t today?

Page 162: State Of Drupal September 2009

Richness + reach = success

Reach

RichnessThe place to be

Drupal

Page 163: State Of Drupal September 2009

Richness, we should be less worried about

Page 164: State Of Drupal September 2009

Reach is our biggest challenge and opportunity

Page 165: State Of Drupal September 2009