SlideShare a Scribd company logo
1 of 45
Download to read offline
Hi. I’m eaton.
                                        twitter.com/eaton




Saturday, October 16, 2010

Jeff Eaton.
Core Drupal developer.
Co-author of Using Drupal.
Consultant and architect at Lullabot.
Saturday, October 16, 2010

Primarily large clients
Helping them plan, get out of pickles, etc.
Lots of training, public and private.
Although I got involved with code, I spend most of my time planning and coordinating. I’m
that guy.
WARNIN
                                                            G




                             NO COD
                                                        E
Saturday, October 16, 2010

A warning: Today is a NO CODE ZONE. We’re thinking meta.
This is my cheesemonger. No money to think meta.
This is the White House. No time to think meta.
Both of them are affected - mom’s D5 site broke, and drupal is now different
At events like this we have the luxury of it.
We’re planning for the future.
Saturday, October 16, 2010

Let’s go to imagination land and think about some big questions.
1: Platypodes
     2: Carnivore, Bill
     3: Mammal, Eggs
     4: Electric Nose
     5: Milk Sweat
     6: Poison Feet
Saturday, October 16, 2010

Plural is NOT platypi
Chipmunk cheeks, too.
Two ovaries, but they only use one
Phase 2?




                   Nuclear Hooves
Saturday, October 16, 2010
1: Three Queues
     2: Profile Module
     3: Two Actions
     4: OOrrays
     5: Block Regions
     6: Yeah, Images
Saturday, October 16, 2010

Remind anyone of something?
Drupal - our complexity is platypus-style
Version 8?




                       Poisonous Feet
Saturday, October 16, 2010
The Platypus Problem:


                             Inexplicable
                              Emergent
                             Complexity
Saturday, October 16, 2010
http://www.flickr.com/photos/striatic/2134277399
Saturday, October 16, 2010

Is complexity truly a problem?
Isn’t it something that we can throw more people at?
More documentation?
Isn’t it just the eternal tug-of-war?
Construction




 http://www.flickr.com/photos/77422674@N00/693945631/
Saturday, October 16, 2010

“There’s a module for that” -- or 100 modules
How many tools do you have on your largest site? How many modules?
Did you use the RIGHT ONES? How do you know?
Are they released? are they changing?
Security update? Cross-module compatability?
Code




   http://www.flickr.com/photos/27164277@N00/495517899/
Saturday, October 16, 2010

Solving bigger and bigger problems.
We have more contributors, we have more moving parts.
Dries doesn't get it all, webchick can't keep track, chx doesn't recognize it all
I don't even know what modules were released this week
Same problem in contrib: Views for Drupal 6 is larger than Drupal 5
Multiple solutions emerging every day
Community




                                                http://www.flickr.com/photos/8897633@N02/4923221504/
Saturday, October 16, 2010

It's not a club anymore.
There are whole swaths of people who didn't get the 'chx' joke
Who should do X? Who should I ASK about Y?
Who’s responsible for Y? Pay vs Hobbyists? What is Karma FOR?
Who explains Karma to the newcomers?
Yes.
                             It’s a Problem.
Saturday, October 16, 2010

How do we cope with it?
How do we understand it?
The good news is that it’s not just our problem.
“I put a GridView onto my
              CallBack control and now I get a
              ViewState is corrupt error”. The
               real answer to this question is
                not the one supplied: “this is
                 fixed in the next version.”

                             http://whatupdave.tumblr.com/post/1170718843/leaving-net
Saturday, October 16, 2010

ASP.Net projects rely on an ecosystem of Web Controls
Upgrade compatabilities, support hassles, etc.
“It’s a pile of spaghetti with insane
             indirection and module
     dependencies and you’re lucky if you
       manage to import anything at all.
     Every other function tries to import
      modules for you automatically and
       circular imports are the norm.”

                              http://mockit.blogspot.com/2010/04/mess-djangos-in.html
Saturday, October 16, 2010

Django is a cluster of inter-dependent components
Build tools manage the complexity, but it’s there!
“From a system
                        administration standpoint,
                       Plone is just shy of being the
                              absolute devil.”


                             http://stackoverflow.com/questions/348044/what-could-justify-the-complexity-of-plone
Saturday, October 16, 2010

See, that’s just funny.
Wordpress plugin bloat is a growing problem
ExpressionEngine users are complaining that “really” building a site requires piles of addons
Saturday, October 16, 2010

Wordpress plugin bloat is a growing problem
Joomla! users have to manage their themes’ compatability with their plugins
ExpressionEngine users are complaining that “really” building a site requires piles of
addons...
Linux is and always will be Linux.
NOT US




                                                  http://www.flickr.com/photos/21165371@N00/3245301713
Saturday, October 16, 2010

We are not special snowflakes.
Drupal IS particularly susceptible to this
Even the core software itself is built that way
Culture of cross-module interaction
But it's a general problem.
But… But…
                                         Architecture!




                             It’s great to plan
                             what you control.
                                                     http://www.flickr.com/photos/12392252@N03/1839810842/
Saturday, October 16, 2010

Architecture was supposed to protect us from this.
Architecture is about plans and execution.
Blueprints and timelines and tradeoffs
OH THE GANNNNNNNNT CHARTS
for what

                             YOU
Saturday, October 16, 2010
                                         control
Can this be emphasized enough?
Cathedral and Bazaar has its dark side
Big danger is in ignoring it
House with sump pumps
Saturday, October 16, 2010

Back to the platypus... Think of Drupal like evolution.
We talk a lot about it, but rarely take it seriously.
Even use "Natural selection" to talk about module success
Dries said patches are mutations!
We call Drupal an Ecosystem, but we ignore it when we plan.
Drupal: An
                             Ecosystem?




Saturday, October 16, 2010

We call Drupal an Ecosystem, but we ignore it when we plan.
All the organisms, and habitats, etc that make up an area.
The whole that emerges from all the little parts.
They're independent, but related.
Interdependent.
Drupal: An
                             Ecosystem?




Saturday, October 16, 2010

Core! Everyone Depends on it!
Third-party modules -- jillions of them!
Participants come and go, submit patches
Teeny modules emerge to fill gaps, and vanish when the techniques fall out of favor
Drupal: An
                             Ecosystem?




Saturday, October 16, 2010

Modules live on sites
Some sites add resources back in
sponsoring development with money or developer-hours
Drupal: An
                             Ecosystem?




Saturday, October 16, 2010

No roadmap, no master plan.
The otter can’t force the turtle to help.
Wild and crazy. It works!
But seriously... what does it look like if we take it seriously?
Every module
         is a species!




                                                      Core is a
                                                     critter, too.
   http://www.flickr.com/photos/markscott/930501687
Saturday, October 16, 2010

They evolve over time, compete, swallow each other up, etc.
Sometimes they die because there isn't a place for them or they're superceded
Flexinode to CCK to FieldAPI -- and modules that used to do those focused things.
Views today isn't the Views of 2 years ago, and other modules have evolved to depend on it.
Mutations!

                                                  Patches are
                                                 where change
                                                   happens



http://www.flickr.com/photos/dullhunk/439737660
Saturday, October 16, 2010

They come constantly.
Sometimes they get folded back into the main 'tree' of code
sometimes they die off
but they're how drupal core and all the modules evolve.
Habitats:

       The web sites
       where modules
        live and learn



Saturday, October 16, 2010

Modules live on sites.
Modules that live in lots of habitats tend to thrive better
Selection pressures = size or traffic demands or specific features
These filter out modules that are not well adapted
http://www.flickr.com/photos/casch/292720481



        Profiles?




                              Biomes! Well-
                              known types of
                             habitats. Er, sites.
Saturday, October 16, 2010

Biomes are They are the commonalities across many habitats, patterns that we can recognize.
They let us learn and share the knowledge.
They let us spot what DOESN’T make sense, too
Developers?



                                                            NOM
                                                            NOM
                                                            NOM
                                                     http://www.flickr.com/photos/23382958@N02/2497966913/
Saturday, October 16, 2010

More accurately, their time is food.
High-protein food for cats is different than high-fiber bamboo for a panda
different developers have different areas of expertise and knowledge.
Drupal: An
                             Ecosystem.




Saturday, October 16, 2010
Does it
                 help us
               understand?




                             http://www.flickr.com/photos/sylvain_masson/4195880838
Saturday, October 16, 2010
Don’t Hack
                               Core!




Saturday, October 16, 2010

Eventually, you inevitably diverge so much that you can't cross-breed. You're a mule! The
Onion faced that problem. Platypuses face that problem, too. All their living relatives are
extinct. "Hack core, and you're dead to me."
Why is it
                              so ugly?




Saturday, October 16, 2010

Key word -- design. The best work tends to emerge from the specific habitat rather than the
evolutionary process. Why isn't the platypus PRETTIER? Although great design has been
*dropped* on Drupal several times, it rarely emerges from the evolutionary process.
There’s a module
                                 for that!




Saturday, October 16, 2010

Diversity is a good thing! Lots of little critters that fill lots of niches is good. It means that
there are lots of solutions being created, and lots of evolution happening.
…But don’t
                             duplicate modules!




Saturday, October 16, 2010

Different needs, different solutions. But resource starvation is dangerous. If you're
duplicating someone else's work, that's two of you who could be working on (feeding?) the
same module.
Complexity
                             is a disease!
                              (…but we need
                             wysiwyg so bad…)




Saturday, October 16, 2010

...But we need more stuff in core.
Small things need less food, and are more nimble.
It means more interdependencies, but it doesn't put all the chips in one spot.
It puts the complexity into the SYSTEM, not into the SPECIES.
It’s a tradeoff that makes us more agile in some ways but more vulnerable in others
Talk is silver
                             code is gold




Saturday, October 16, 2010

The 'natural selection' quality only kicks in when something is out there. Ideas are important
and need to be discussed and evaluated, but the process that the vast majority of the
community
The take-away




Saturday, October 16, 2010
Study your
                                 habitat



Saturday, October 16, 2010

Look at your site using that habitat analogy
Think of it in terms of the high level functions that it needs: user feedback, product sales, etc
Consider what kinds of ‘creatures’ are well suited for it
Putting dev hours into contrib is like feeding the fauna
Know your
                              honeybees



Saturday, October 16, 2010

Anyone know about the honeybee crash?
Study the subtle interdependencies in your habitat/site.
Watch the vulnerable parts - does your site live and die by hook_cron?
Is there one contributor that helps in every issue?
Spot the
                               mammals



Saturday, October 16, 2010

Change comes, and the tools you built with will change.
Ber Kessels -- God bless him -- stuck with Flexinode.
Watch new modules, screencasts, blog posts, site writeups
Watch for trends that affect you.
Plan for
                              extinction



Saturday, October 16, 2010

Modules go away.
Contributors get busy, start dating.
Maintaining dead modules is like captive breeding
EXERCISE: pick five modules, pretend they vanished
Ar r r r r r.




            Respect the
            platypodes
Saturday, October 16, 2010

Inexplicable, emergent complexity can baffle us all.
The biggest danger is pretending it isn’t there
Architecture needs context.
Don’t punt on complexity - it’s like saying, “Use sump pumps.”

More Related Content

Viewers also liked

Social Networking Applied
Social Networking AppliedSocial Networking Applied
Social Networking AppliedJeff Eaton
 
Deblobbing In The Real World
Deblobbing In The Real WorldDeblobbing In The Real World
Deblobbing In The Real WorldJeff Eaton
 
Baby Got Backend (CMS Expo 2011)
Baby Got Backend (CMS Expo 2011)Baby Got Backend (CMS Expo 2011)
Baby Got Backend (CMS Expo 2011)Jeff Eaton
 
Drupal in Action
Drupal in ActionDrupal in Action
Drupal in ActionJeff Eaton
 
Drupal Development
Drupal DevelopmentDrupal Development
Drupal DevelopmentJeff Eaton
 

Viewers also liked (6)

Social Networking Applied
Social Networking AppliedSocial Networking Applied
Social Networking Applied
 
Deblobbing In The Real World
Deblobbing In The Real WorldDeblobbing In The Real World
Deblobbing In The Real World
 
Baby Got Backend (CMS Expo 2011)
Baby Got Backend (CMS Expo 2011)Baby Got Backend (CMS Expo 2011)
Baby Got Backend (CMS Expo 2011)
 
Drupal in Action
Drupal in ActionDrupal in Action
Drupal in Action
 
Drupal Development
Drupal DevelopmentDrupal Development
Drupal Development
 
Recoupling
RecouplingRecoupling
Recoupling
 

Similar to The Platypus Problem

Los Angeles R users group - Nov 17 2010 - Part 2
Los Angeles R users group - Nov 17 2010 - Part 2Los Angeles R users group - Nov 17 2010 - Part 2
Los Angeles R users group - Nov 17 2010 - Part 2rusersla
 
Make it or Break It: Evolutionary or Throwaway Prototyping
Make it or Break It: Evolutionary or Throwaway PrototypingMake it or Break It: Evolutionary or Throwaway Prototyping
Make it or Break It: Evolutionary or Throwaway Prototypingjsokohl
 
The Network The Next Frontier for Devops ?
The Network   The Next Frontier for Devops ?The Network   The Next Frontier for Devops ?
The Network The Next Frontier for Devops ?John Willis
 
The Plone is dead, long live the Plone!
The Plone is dead, long live the Plone!The Plone is dead, long live the Plone!
The Plone is dead, long live the Plone!Alexander Loechel
 
What Does Node Need From Us
What Does Node Need From UsWhat Does Node Need From Us
What Does Node Need From UsTim Caswell
 
Cloudstack collaboration conference Europe - SDN and Devops
Cloudstack collaboration conference Europe - SDN and DevopsCloudstack collaboration conference Europe - SDN and Devops
Cloudstack collaboration conference Europe - SDN and DevopsJohn Willis
 
Traction User Group 2010 - Brian Tullis Presentation
Traction User Group 2010 - Brian Tullis PresentationTraction User Group 2010 - Brian Tullis Presentation
Traction User Group 2010 - Brian Tullis Presentationbtullis
 
Patterns of Observable Work, Brian Tullis
Patterns of Observable Work, Brian TullisPatterns of Observable Work, Brian Tullis
Patterns of Observable Work, Brian TullisTraction Software
 
Henry Story: Philosophy and the Social Web
Henry Story: Philosophy and the Social WebHenry Story: Philosophy and the Social Web
Henry Story: Philosophy and the Social WebPhiloWeb
 
Rise of devops
Rise of devopsRise of devops
Rise of devopsatmosorg
 
iBizLog. Smalltalking the Web
iBizLog. Smalltalking the WebiBizLog. Smalltalking the Web
iBizLog. Smalltalking the WebESUG
 
Mobile Accessibility - iOS, Android, Mobile Web
Mobile Accessibility - iOS, Android, Mobile WebMobile Accessibility - iOS, Android, Mobile Web
Mobile Accessibility - iOS, Android, Mobile WebTed Drake
 
Google App Engine - Devfest India 2010
Google App Engine -  Devfest India 2010Google App Engine -  Devfest India 2010
Google App Engine - Devfest India 2010Patrick Chanezon
 
Introduction to Robots
Introduction to RobotsIntroduction to Robots
Introduction to RobotsChad Mairn
 
To borg or not to borg - individual vs collective, Gavin Bell fowa08
To borg or not to borg - individual vs collective, Gavin Bell fowa08To borg or not to borg - individual vs collective, Gavin Bell fowa08
To borg or not to borg - individual vs collective, Gavin Bell fowa08Gavin Bell
 

Similar to The Platypus Problem (20)

Los Angeles R users group - Nov 17 2010 - Part 2
Los Angeles R users group - Nov 17 2010 - Part 2Los Angeles R users group - Nov 17 2010 - Part 2
Los Angeles R users group - Nov 17 2010 - Part 2
 
100 paper cuts
100 paper cuts100 paper cuts
100 paper cuts
 
Make it or Break It: Evolutionary or Throwaway Prototyping
Make it or Break It: Evolutionary or Throwaway PrototypingMake it or Break It: Evolutionary or Throwaway Prototyping
Make it or Break It: Evolutionary or Throwaway Prototyping
 
The Network The Next Frontier for Devops ?
The Network   The Next Frontier for Devops ?The Network   The Next Frontier for Devops ?
The Network The Next Frontier for Devops ?
 
The Plone is dead, long live the Plone!
The Plone is dead, long live the Plone!The Plone is dead, long live the Plone!
The Plone is dead, long live the Plone!
 
What Does Node Need From Us
What Does Node Need From UsWhat Does Node Need From Us
What Does Node Need From Us
 
EPQ Dissertation
EPQ DissertationEPQ Dissertation
EPQ Dissertation
 
Cloudstack collaboration conference Europe - SDN and Devops
Cloudstack collaboration conference Europe - SDN and DevopsCloudstack collaboration conference Europe - SDN and Devops
Cloudstack collaboration conference Europe - SDN and Devops
 
Traction User Group 2010 - Brian Tullis Presentation
Traction User Group 2010 - Brian Tullis PresentationTraction User Group 2010 - Brian Tullis Presentation
Traction User Group 2010 - Brian Tullis Presentation
 
SXSW2013-Jenson
SXSW2013-JensonSXSW2013-Jenson
SXSW2013-Jenson
 
Patterns of Observable Work, Brian Tullis
Patterns of Observable Work, Brian TullisPatterns of Observable Work, Brian Tullis
Patterns of Observable Work, Brian Tullis
 
Henry Story: Philosophy and the Social Web
Henry Story: Philosophy and the Social WebHenry Story: Philosophy and the Social Web
Henry Story: Philosophy and the Social Web
 
Rise of devops
Rise of devopsRise of devops
Rise of devops
 
iBizLog. Smalltalking the Web
iBizLog. Smalltalking the WebiBizLog. Smalltalking the Web
iBizLog. Smalltalking the Web
 
Mobile Accessibility - iOS, Android, Mobile Web
Mobile Accessibility - iOS, Android, Mobile WebMobile Accessibility - iOS, Android, Mobile Web
Mobile Accessibility - iOS, Android, Mobile Web
 
Google App Engine - Devfest India 2010
Google App Engine -  Devfest India 2010Google App Engine -  Devfest India 2010
Google App Engine - Devfest India 2010
 
Introduction to Robots
Introduction to RobotsIntroduction to Robots
Introduction to Robots
 
Introduction to Robots
Introduction to RobotsIntroduction to Robots
Introduction to Robots
 
Plagcitation fa2012
Plagcitation fa2012Plagcitation fa2012
Plagcitation fa2012
 
To borg or not to borg - individual vs collective, Gavin Bell fowa08
To borg or not to borg - individual vs collective, Gavin Bell fowa08To borg or not to borg - individual vs collective, Gavin Bell fowa08
To borg or not to borg - individual vs collective, Gavin Bell fowa08
 

More from Jeff Eaton

This Is not a Place of Honor
This Is not a Place of HonorThis Is not a Place of Honor
This Is not a Place of HonorJeff Eaton
 
An API Won't Fix Your Content Problem
An API Won't Fix Your Content ProblemAn API Won't Fix Your Content Problem
An API Won't Fix Your Content ProblemJeff Eaton
 
Hello, {{FIRSTNAME}}, My Old Friend
Hello, {{FIRSTNAME}}, My Old FriendHello, {{FIRSTNAME}}, My Old Friend
Hello, {{FIRSTNAME}}, My Old FriendJeff Eaton
 
Maps, Models, and Teams
Maps, Models, and TeamsMaps, Models, and Teams
Maps, Models, and TeamsJeff Eaton
 
Collaborative Content Modeling
Collaborative Content ModelingCollaborative Content Modeling
Collaborative Content ModelingJeff Eaton
 
Adventures in Drupal 8
Adventures in Drupal 8Adventures in Drupal 8
Adventures in Drupal 8Jeff Eaton
 
Modeling Rich Narrative Content
Modeling Rich Narrative ContentModeling Rich Narrative Content
Modeling Rich Narrative ContentJeff Eaton
 
Battle for the Body Field (DrupalCon)
Battle for the Body Field (DrupalCon)Battle for the Body Field (DrupalCon)
Battle for the Body Field (DrupalCon)Jeff Eaton
 
The Battle For The Body Field
The Battle For The Body FieldThe Battle For The Body Field
The Battle For The Body FieldJeff Eaton
 
Workflow That Works Under Pressure
Workflow That Works Under PressureWorkflow That Works Under Pressure
Workflow That Works Under PressureJeff Eaton
 
Planning Beyond the Page
Planning Beyond the PagePlanning Beyond the Page
Planning Beyond the PageJeff Eaton
 
Building Your Agency's Content Strategy Practice
Building Your Agency's Content Strategy PracticeBuilding Your Agency's Content Strategy Practice
Building Your Agency's Content Strategy PracticeJeff Eaton
 
Prepare for the Mobilacalypse
Prepare for the MobilacalypsePrepare for the Mobilacalypse
Prepare for the MobilacalypseJeff Eaton
 
Building Apis That Rock
Building Apis That RockBuilding Apis That Rock
Building Apis That RockJeff Eaton
 
Drupal Deployment
Drupal DeploymentDrupal Deployment
Drupal DeploymentJeff Eaton
 
Building Twitter in Drupal
Building Twitter in DrupalBuilding Twitter in Drupal
Building Twitter in DrupalJeff Eaton
 
O'Reilly Drupal Webcast
O'Reilly Drupal WebcastO'Reilly Drupal Webcast
O'Reilly Drupal WebcastJeff Eaton
 
The Future of Nodes
The Future of NodesThe Future of Nodes
The Future of NodesJeff Eaton
 

More from Jeff Eaton (19)

This Is not a Place of Honor
This Is not a Place of HonorThis Is not a Place of Honor
This Is not a Place of Honor
 
An API Won't Fix Your Content Problem
An API Won't Fix Your Content ProblemAn API Won't Fix Your Content Problem
An API Won't Fix Your Content Problem
 
Hello, {{FIRSTNAME}}, My Old Friend
Hello, {{FIRSTNAME}}, My Old FriendHello, {{FIRSTNAME}}, My Old Friend
Hello, {{FIRSTNAME}}, My Old Friend
 
Maps, Models, and Teams
Maps, Models, and TeamsMaps, Models, and Teams
Maps, Models, and Teams
 
Collaborative Content Modeling
Collaborative Content ModelingCollaborative Content Modeling
Collaborative Content Modeling
 
Adventures in Drupal 8
Adventures in Drupal 8Adventures in Drupal 8
Adventures in Drupal 8
 
Modeling Rich Narrative Content
Modeling Rich Narrative ContentModeling Rich Narrative Content
Modeling Rich Narrative Content
 
Battle for the Body Field (DrupalCon)
Battle for the Body Field (DrupalCon)Battle for the Body Field (DrupalCon)
Battle for the Body Field (DrupalCon)
 
The Battle For The Body Field
The Battle For The Body FieldThe Battle For The Body Field
The Battle For The Body Field
 
Workflow That Works Under Pressure
Workflow That Works Under PressureWorkflow That Works Under Pressure
Workflow That Works Under Pressure
 
Planning Beyond the Page
Planning Beyond the PagePlanning Beyond the Page
Planning Beyond the Page
 
Building Your Agency's Content Strategy Practice
Building Your Agency's Content Strategy PracticeBuilding Your Agency's Content Strategy Practice
Building Your Agency's Content Strategy Practice
 
Prepare for the Mobilacalypse
Prepare for the MobilacalypsePrepare for the Mobilacalypse
Prepare for the Mobilacalypse
 
Building Apis That Rock
Building Apis That RockBuilding Apis That Rock
Building Apis That Rock
 
Drupal Deployment
Drupal DeploymentDrupal Deployment
Drupal Deployment
 
Building Twitter in Drupal
Building Twitter in DrupalBuilding Twitter in Drupal
Building Twitter in Drupal
 
O'Reilly Drupal Webcast
O'Reilly Drupal WebcastO'Reilly Drupal Webcast
O'Reilly Drupal Webcast
 
The Future of Nodes
The Future of NodesThe Future of Nodes
The Future of Nodes
 
Form API 3
Form API 3Form API 3
Form API 3
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusZilliz
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 

Recently uploaded (20)

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 

The Platypus Problem

  • 1. Hi. I’m eaton. twitter.com/eaton Saturday, October 16, 2010 Jeff Eaton. Core Drupal developer. Co-author of Using Drupal. Consultant and architect at Lullabot.
  • 2. Saturday, October 16, 2010 Primarily large clients Helping them plan, get out of pickles, etc. Lots of training, public and private. Although I got involved with code, I spend most of my time planning and coordinating. I’m that guy.
  • 3. WARNIN G NO COD E Saturday, October 16, 2010 A warning: Today is a NO CODE ZONE. We’re thinking meta. This is my cheesemonger. No money to think meta. This is the White House. No time to think meta. Both of them are affected - mom’s D5 site broke, and drupal is now different At events like this we have the luxury of it. We’re planning for the future.
  • 4. Saturday, October 16, 2010 Let’s go to imagination land and think about some big questions.
  • 5. 1: Platypodes 2: Carnivore, Bill 3: Mammal, Eggs 4: Electric Nose 5: Milk Sweat 6: Poison Feet Saturday, October 16, 2010 Plural is NOT platypi Chipmunk cheeks, too. Two ovaries, but they only use one
  • 6. Phase 2? Nuclear Hooves Saturday, October 16, 2010
  • 7. 1: Three Queues 2: Profile Module 3: Two Actions 4: OOrrays 5: Block Regions 6: Yeah, Images Saturday, October 16, 2010 Remind anyone of something? Drupal - our complexity is platypus-style
  • 8. Version 8? Poisonous Feet Saturday, October 16, 2010
  • 9. The Platypus Problem: Inexplicable Emergent Complexity Saturday, October 16, 2010
  • 10. http://www.flickr.com/photos/striatic/2134277399 Saturday, October 16, 2010 Is complexity truly a problem? Isn’t it something that we can throw more people at? More documentation? Isn’t it just the eternal tug-of-war?
  • 11. Construction http://www.flickr.com/photos/77422674@N00/693945631/ Saturday, October 16, 2010 “There’s a module for that” -- or 100 modules How many tools do you have on your largest site? How many modules? Did you use the RIGHT ONES? How do you know? Are they released? are they changing? Security update? Cross-module compatability?
  • 12. Code http://www.flickr.com/photos/27164277@N00/495517899/ Saturday, October 16, 2010 Solving bigger and bigger problems. We have more contributors, we have more moving parts. Dries doesn't get it all, webchick can't keep track, chx doesn't recognize it all I don't even know what modules were released this week Same problem in contrib: Views for Drupal 6 is larger than Drupal 5 Multiple solutions emerging every day
  • 13. Community http://www.flickr.com/photos/8897633@N02/4923221504/ Saturday, October 16, 2010 It's not a club anymore. There are whole swaths of people who didn't get the 'chx' joke Who should do X? Who should I ASK about Y? Who’s responsible for Y? Pay vs Hobbyists? What is Karma FOR? Who explains Karma to the newcomers?
  • 14. Yes. It’s a Problem. Saturday, October 16, 2010 How do we cope with it? How do we understand it? The good news is that it’s not just our problem.
  • 15. “I put a GridView onto my CallBack control and now I get a ViewState is corrupt error”. The real answer to this question is not the one supplied: “this is fixed in the next version.” http://whatupdave.tumblr.com/post/1170718843/leaving-net Saturday, October 16, 2010 ASP.Net projects rely on an ecosystem of Web Controls Upgrade compatabilities, support hassles, etc.
  • 16. “It’s a pile of spaghetti with insane indirection and module dependencies and you’re lucky if you manage to import anything at all. Every other function tries to import modules for you automatically and circular imports are the norm.” http://mockit.blogspot.com/2010/04/mess-djangos-in.html Saturday, October 16, 2010 Django is a cluster of inter-dependent components Build tools manage the complexity, but it’s there!
  • 17. “From a system administration standpoint, Plone is just shy of being the absolute devil.” http://stackoverflow.com/questions/348044/what-could-justify-the-complexity-of-plone Saturday, October 16, 2010 See, that’s just funny. Wordpress plugin bloat is a growing problem ExpressionEngine users are complaining that “really” building a site requires piles of addons
  • 18. Saturday, October 16, 2010 Wordpress plugin bloat is a growing problem Joomla! users have to manage their themes’ compatability with their plugins ExpressionEngine users are complaining that “really” building a site requires piles of addons... Linux is and always will be Linux.
  • 19. NOT US http://www.flickr.com/photos/21165371@N00/3245301713 Saturday, October 16, 2010 We are not special snowflakes. Drupal IS particularly susceptible to this Even the core software itself is built that way Culture of cross-module interaction But it's a general problem.
  • 20. But… But… Architecture! It’s great to plan what you control. http://www.flickr.com/photos/12392252@N03/1839810842/ Saturday, October 16, 2010 Architecture was supposed to protect us from this. Architecture is about plans and execution. Blueprints and timelines and tradeoffs OH THE GANNNNNNNNT CHARTS
  • 21. for what YOU Saturday, October 16, 2010 control Can this be emphasized enough? Cathedral and Bazaar has its dark side Big danger is in ignoring it House with sump pumps
  • 22. Saturday, October 16, 2010 Back to the platypus... Think of Drupal like evolution. We talk a lot about it, but rarely take it seriously. Even use "Natural selection" to talk about module success Dries said patches are mutations! We call Drupal an Ecosystem, but we ignore it when we plan.
  • 23. Drupal: An Ecosystem? Saturday, October 16, 2010 We call Drupal an Ecosystem, but we ignore it when we plan. All the organisms, and habitats, etc that make up an area. The whole that emerges from all the little parts. They're independent, but related. Interdependent.
  • 24. Drupal: An Ecosystem? Saturday, October 16, 2010 Core! Everyone Depends on it! Third-party modules -- jillions of them! Participants come and go, submit patches Teeny modules emerge to fill gaps, and vanish when the techniques fall out of favor
  • 25. Drupal: An Ecosystem? Saturday, October 16, 2010 Modules live on sites Some sites add resources back in sponsoring development with money or developer-hours
  • 26. Drupal: An Ecosystem? Saturday, October 16, 2010 No roadmap, no master plan. The otter can’t force the turtle to help. Wild and crazy. It works! But seriously... what does it look like if we take it seriously?
  • 27. Every module is a species! Core is a critter, too. http://www.flickr.com/photos/markscott/930501687 Saturday, October 16, 2010 They evolve over time, compete, swallow each other up, etc. Sometimes they die because there isn't a place for them or they're superceded Flexinode to CCK to FieldAPI -- and modules that used to do those focused things. Views today isn't the Views of 2 years ago, and other modules have evolved to depend on it.
  • 28. Mutations! Patches are where change happens http://www.flickr.com/photos/dullhunk/439737660 Saturday, October 16, 2010 They come constantly. Sometimes they get folded back into the main 'tree' of code sometimes they die off but they're how drupal core and all the modules evolve.
  • 29. Habitats: The web sites where modules live and learn Saturday, October 16, 2010 Modules live on sites. Modules that live in lots of habitats tend to thrive better Selection pressures = size or traffic demands or specific features These filter out modules that are not well adapted
  • 30. http://www.flickr.com/photos/casch/292720481 Profiles? Biomes! Well- known types of habitats. Er, sites. Saturday, October 16, 2010 Biomes are They are the commonalities across many habitats, patterns that we can recognize. They let us learn and share the knowledge. They let us spot what DOESN’T make sense, too
  • 31. Developers? NOM NOM NOM http://www.flickr.com/photos/23382958@N02/2497966913/ Saturday, October 16, 2010 More accurately, their time is food. High-protein food for cats is different than high-fiber bamboo for a panda different developers have different areas of expertise and knowledge.
  • 32. Drupal: An Ecosystem. Saturday, October 16, 2010
  • 33. Does it help us understand? http://www.flickr.com/photos/sylvain_masson/4195880838 Saturday, October 16, 2010
  • 34. Don’t Hack Core! Saturday, October 16, 2010 Eventually, you inevitably diverge so much that you can't cross-breed. You're a mule! The Onion faced that problem. Platypuses face that problem, too. All their living relatives are extinct. "Hack core, and you're dead to me."
  • 35. Why is it so ugly? Saturday, October 16, 2010 Key word -- design. The best work tends to emerge from the specific habitat rather than the evolutionary process. Why isn't the platypus PRETTIER? Although great design has been *dropped* on Drupal several times, it rarely emerges from the evolutionary process.
  • 36. There’s a module for that! Saturday, October 16, 2010 Diversity is a good thing! Lots of little critters that fill lots of niches is good. It means that there are lots of solutions being created, and lots of evolution happening.
  • 37. …But don’t duplicate modules! Saturday, October 16, 2010 Different needs, different solutions. But resource starvation is dangerous. If you're duplicating someone else's work, that's two of you who could be working on (feeding?) the same module.
  • 38. Complexity is a disease! (…but we need wysiwyg so bad…) Saturday, October 16, 2010 ...But we need more stuff in core. Small things need less food, and are more nimble. It means more interdependencies, but it doesn't put all the chips in one spot. It puts the complexity into the SYSTEM, not into the SPECIES. It’s a tradeoff that makes us more agile in some ways but more vulnerable in others
  • 39. Talk is silver code is gold Saturday, October 16, 2010 The 'natural selection' quality only kicks in when something is out there. Ideas are important and need to be discussed and evaluated, but the process that the vast majority of the community
  • 41. Study your habitat Saturday, October 16, 2010 Look at your site using that habitat analogy Think of it in terms of the high level functions that it needs: user feedback, product sales, etc Consider what kinds of ‘creatures’ are well suited for it Putting dev hours into contrib is like feeding the fauna
  • 42. Know your honeybees Saturday, October 16, 2010 Anyone know about the honeybee crash? Study the subtle interdependencies in your habitat/site. Watch the vulnerable parts - does your site live and die by hook_cron? Is there one contributor that helps in every issue?
  • 43. Spot the mammals Saturday, October 16, 2010 Change comes, and the tools you built with will change. Ber Kessels -- God bless him -- stuck with Flexinode. Watch new modules, screencasts, blog posts, site writeups Watch for trends that affect you.
  • 44. Plan for extinction Saturday, October 16, 2010 Modules go away. Contributors get busy, start dating. Maintaining dead modules is like captive breeding EXERCISE: pick five modules, pretend they vanished
  • 45. Ar r r r r r. Respect the platypodes Saturday, October 16, 2010 Inexplicable, emergent complexity can baffle us all. The biggest danger is pretending it isn’t there Architecture needs context. Don’t punt on complexity - it’s like saying, “Use sump pumps.”