45
Hi. I’m eaton. twitter.com/eaton Saturday, October 16, 2010 JeEaton. Core Drupal developer. Co-author of Using Drupal. Consultant and architect at Lullabot.

The Platypus Problem

Embed Size (px)

DESCRIPTION

Drupal - and many other open projects -- get caught in the trap of inexplicable emergent complexity. Can taking the "Ecosystem" analogy seriously help us understand the challenges we face? I say yes. Because I think it can. Yes.

Citation preview

Page 1: The Platypus Problem

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.

Page 2: The Platypus Problem

Saturday, October 16, 2010

Primarily large clientsHelping 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.

Page 3: The Platypus Problem

WARNING

NO CODESaturday, 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 differentAt events like this we have the luxury of it.We’re planning for the future.

Page 4: The Platypus Problem

Saturday, October 16, 2010

Let’s go to imagination land and think about some big questions.

Page 5: The Platypus Problem

1: Platypodes2: Carnivore, Bill3: Mammal, Eggs4: Electric Nose5: Milk Sweat6: Poison Feet

Saturday, October 16, 2010

Plural is NOT platypiChipmunk cheeks, too.Two ovaries, but they only use one

Page 6: The Platypus Problem

Phase 2?

Nuclear HoovesSaturday, October 16, 2010

Page 7: The Platypus Problem

1: Three Queues2: Profile Module3: Two Actions4: OOrrays5: Block Regions6: Yeah, Images

Saturday, October 16, 2010

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

Page 8: The Platypus Problem

Version 8?

Poisonous FeetSaturday, October 16, 2010

Page 9: The Platypus Problem

The Platypus Problem:

Inexplicable Emergent

Complexity

Saturday, October 16, 2010

Page 10: The Platypus Problem

http://www.flickr.com/photos/striatic/2134277399Saturday, 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?

Page 11: The Platypus Problem

http://www.flickr.com/photos/77422674@N00/693945631/

Construction

Saturday, October 16, 2010

“There’s a module for that” -- or 100 modulesHow 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?

Page 12: The Platypus Problem

http://www.flickr.com/photos/27164277@N00/495517899/

Code

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 allI don't even know what modules were released this weekSame problem in contrib: Views for Drupal 6 is larger than Drupal 5Multiple solutions emerging every day

Page 13: The Platypus Problem

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' jokeWho 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?

Page 14: The Platypus Problem

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.

Page 15: The Platypus 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 ControlsUpgrade compatabilities, support hassles, etc.

Page 16: The Platypus Problem

“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 componentsBuild tools manage the complexity, but it’s there!

Page 17: The Platypus Problem

“From a systemadministration standpoint,

Plone is just shy of being the absolute devil.”

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

See, that’s just funny.Wordpress plugin bloat is a growing problemExpressionEngine users are complaining that “really” building a site requires piles of addons

Page 18: The Platypus Problem

Saturday, October 16, 2010

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

Page 19: The Platypus Problem

NOT US

http://www.flickr.com/photos/21165371@N00/3245301713

Saturday, October 16, 2010

We are not special snowflakes.Drupal IS particularly susceptible to thisEven the core software itself is built that wayCulture of cross-module interactionBut it's a general problem.

Page 20: The Platypus Problem

http://www.flickr.com/photos/12392252@N03/1839810842/

But… But…Architecture!

It’s great to plan what you control.

Saturday, October 16, 2010

Architecture was supposed to protect us from this.Architecture is about plans and execution.Blueprints and timelines and tradeoffsOH THE GANNNNNNNNT CHARTS

Page 21: The Platypus Problem

for what

YOUcontrol

Saturday, October 16, 2010

Can this be emphasized enough?Cathedral and Bazaar has its dark sideBig danger is in ignoring itHouse with sump pumps

Page 22: The Platypus Problem

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 successDries said patches are mutations!We call Drupal an Ecosystem, but we ignore it when we plan.

Page 23: The Platypus Problem

Drupal: AnEcosystem?

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.

Page 24: The Platypus Problem

Drupal: AnEcosystem?

Saturday, October 16, 2010

Core! Everyone Depends on it!Third-party modules -- jillions of them!Participants come and go, submit patchesTeeny modules emerge to fill gaps, and vanish when the techniques fall out of favor

Page 25: The Platypus Problem

Drupal: AnEcosystem?

Saturday, October 16, 2010

Modules live on sitesSome sites add resources back insponsoring development with money or developer-hours

Page 26: The Platypus Problem

Drupal: AnEcosystem?

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?

Page 27: The Platypus Problem

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.

Page 28: The Platypus Problem

http://www.flickr.com/photos/dullhunk/439737660

Mutations!

Patches arewhere change

happens

Saturday, October 16, 2010

They come constantly.Sometimes they get folded back into the main 'tree' of codesometimes they die offbut they're how drupal core and all the modules evolve.

Page 29: The Platypus Problem

Habitats:

The web siteswhere moduleslive and learn

Saturday, October 16, 2010

Modules live on sites.Modules that live in lots of habitats tend to thrive betterSelection pressures = size or traffic demands or specific featuresThese filter out modules that are not well adapted

Page 30: The Platypus Problem

Biomes! Well-known types of

habitats. Er, sites.

Profiles?http://www.flickr.com/photos/casch/292720481

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

Page 31: The Platypus Problem

NOMNOMNOM

Developers?

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 pandadifferent developers have different areas of expertise and knowledge.

Page 32: The Platypus Problem

Drupal: AnEcosystem.

Saturday, October 16, 2010

Page 33: The Platypus Problem

Does ithelp us

understand?

http://www.flickr.com/photos/sylvain_masson/4195880838

Saturday, October 16, 2010

Page 34: The Platypus Problem

Don’t HackCore!

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."

Page 35: The Platypus Problem

Why is itso 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.

Page 36: The Platypus Problem

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.

Page 37: The Platypus Problem

…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.

Page 38: The Platypus Problem

Complexityis 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

Page 39: The Platypus Problem

Talk is silvercode 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

Page 40: The Platypus Problem

The take-away

Saturday, October 16, 2010

Page 41: The Platypus Problem

Study your habitat

Saturday, October 16, 2010

Look at your site using that habitat analogyThink of it in terms of the high level functions that it needs: user feedback, product sales, etcConsider what kinds of ‘creatures’ are well suited for itPutting dev hours into contrib is like feeding the fauna

Page 42: The Platypus Problem

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?

Page 43: The Platypus Problem

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 writeupsWatch for trends that affect you.

Page 44: The Platypus Problem

Plan for extinction

Saturday, October 16, 2010

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

Page 45: The Platypus Problem

Respect the platypodes

Arrrrrr.

Saturday, October 16, 2010

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