SlideShare a Scribd company logo
architecture is
  for everyone
a gentle introduction to thinking big
hi. i’m eaton.
who are you?
who are you?
   member of a dev team
    someone with client
someone responsible for a site
    a module maintainer
        a core dev
who are you?
   member of a dev team
    someone with client
someone responsible for a site
    a module maintainer
        a core dev

  frustrated!
Bahahahahahah.
     hahah.
      ahem.
“no devs” means
  “smart” code
 smart systems are complicated
we’re architects, now



http://www.flickr.com/photos/47325272@N00/2541408630/
we’re architects, now



http://www.flickr.com/photos/47325272@N00/2541408630/
•   7 stories (then 3)

•   160 rooms

•   20,500 gallons

•   10,000 windows

•   17 chimneys (maybe?)

•   Elevators! Central heat!
    Chaos and madness!
•   7 stories (then 3)

•   160 rooms

•   20,500 gallons

•   10,000 windows

•   17 chimneys (maybe?)

•   Elevators! Central heat!
    Chaos and madness!
•   7 stories (then 3)

•   160 rooms

•   20,500 gallons

•   10,000 windows

•   17 chimneys (maybe?)

•   Elevators! Central heat!
    Chaos and madness!
complexity
                  requires
                 a roadmap

http://www.flickr.com/photos/47325272@N00/2541408630/
what makes an
  architect?
  no, seriously, what?
goals before features

http://www.flickr.com/photos/16057786@N00/2956432732/
see the forest



http://www.flickr.com/photos/cmefish/3039477633
know
                                            the tools


http://www.flickr.com/photos/thefangmonster/490423135
choices,
tradeoffs
coordinate,
communicate
coordinate,
communicate
identify
     patterns


http://www.flickr.com/photos/evaekeblad/916121820
identify
     patterns


http://www.flickr.com/photos/evaekeblad/916121820
look
                                                around
http://www.flickr.com/photos/gerlos/3119891607
building a site
(architect style)
•   Views, of course!

•   ImageAPI, ImageField...

•   Panels? Nodequeue?

•   Workflow!

•   Organic Groups!

•   And that’ll be custom...
WRONG!
GOALS
CONTEXT
PROCESS
ROAD
not as fun

but now
we have
 a plan.
but... drupal?
   road maps...?
YES
what is
drupal’s goal?
what are our
constraints?
where are we now?
where are we now?
how do we reduce
  complexity?
*cough*
smallcore
 *cough*
think big,
build small
suggested reading
suggested reading

More Related Content

Viewers also liked

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
 

Viewers also liked (8)

The Platypus Problem
The Platypus ProblemThe Platypus Problem
The Platypus Problem
 
Baby Got Backend (CMS Expo 2011)
Baby Got Backend (CMS Expo 2011)Baby Got Backend (CMS Expo 2011)
Baby Got Backend (CMS Expo 2011)
 
ROI in a GPL World
ROI in a GPL WorldROI in a GPL World
ROI in a GPL World
 
Promiscuous Drupal
Promiscuous DrupalPromiscuous Drupal
Promiscuous Drupal
 
Deblobbing In The Real World
Deblobbing In The Real WorldDeblobbing In The Real World
Deblobbing In The Real World
 
Drupal in Action
Drupal in ActionDrupal in Action
Drupal in Action
 
Drupal Development
Drupal DevelopmentDrupal Development
Drupal Development
 
Recoupling
RecouplingRecoupling
Recoupling
 

Similar to Architecture Is For Everyone

How I failed to present on using DVCS to control archival metadata
How I failed to present on using DVCS to control archival metadataHow I failed to present on using DVCS to control archival metadata
How I failed to present on using DVCS to control archival metadata
Mark Matienzo
 
GTALUG Presentation on CouchDB
GTALUG Presentation on CouchDBGTALUG Presentation on CouchDB
GTALUG Presentation on CouchDB
Myles Braithwaite
 
Coworking 7th Floor
Coworking 7th FloorCoworking 7th Floor
Coworking 7th Floor
fabiomasetti
 

Similar to Architecture Is For Everyone (20)

What Can I Do Now V1.01
What Can I Do Now V1.01What Can I Do Now V1.01
What Can I Do Now V1.01
 
Ideation to Production
Ideation to ProductionIdeation to Production
Ideation to Production
 
RailsConf 2008
RailsConf 2008RailsConf 2008
RailsConf 2008
 
Semantic Web For Distributed Social Networks
Semantic Web For Distributed Social NetworksSemantic Web For Distributed Social Networks
Semantic Web For Distributed Social Networks
 
Map Analytics - Ignite Spatial
Map Analytics - Ignite SpatialMap Analytics - Ignite Spatial
Map Analytics - Ignite Spatial
 
Designing The Digital Experience
Designing The Digital ExperienceDesigning The Digital Experience
Designing The Digital Experience
 
How I failed to present on using DVCS to control archival metadata
How I failed to present on using DVCS to control archival metadataHow I failed to present on using DVCS to control archival metadata
How I failed to present on using DVCS to control archival metadata
 
Library Skunk Works: User Experience Design for the 21st Century Library
Library Skunk Works: User Experience Design for the 21st Century LibraryLibrary Skunk Works: User Experience Design for the 21st Century Library
Library Skunk Works: User Experience Design for the 21st Century Library
 
GTALUG Presentation on CouchDB
GTALUG Presentation on CouchDBGTALUG Presentation on CouchDB
GTALUG Presentation on CouchDB
 
“Public Library 2.0: Making it Happen”
“Public Library 2.0: Making it Happen”“Public Library 2.0: Making it Happen”
“Public Library 2.0: Making it Happen”
 
Functional Interaction Design
Functional Interaction DesignFunctional Interaction Design
Functional Interaction Design
 
Web 2.0 Pedagogy v1.2
Web 2.0 Pedagogy v1.2Web 2.0 Pedagogy v1.2
Web 2.0 Pedagogy v1.2
 
Coworking 7th Floor
Coworking 7th FloorCoworking 7th Floor
Coworking 7th Floor
 
Snakes on the Web
Snakes on the WebSnakes on the Web
Snakes on the Web
 
Picture Perfect: Images for Coders
Picture Perfect: Images for CodersPicture Perfect: Images for Coders
Picture Perfect: Images for Coders
 
Agile Estimation
Agile EstimationAgile Estimation
Agile Estimation
 
WDE08 BULLETPROOF A to Z
WDE08 BULLETPROOF A to ZWDE08 BULLETPROOF A to Z
WDE08 BULLETPROOF A to Z
 
Fundamental Design Principles
Fundamental Design PrinciplesFundamental Design Principles
Fundamental Design Principles
 
Design Disrepair
Design DisrepairDesign Disrepair
Design Disrepair
 
RWD in the Wild
RWD in the WildRWD in the Wild
RWD in the Wild
 

More from Jeff Eaton

Workflow That Works Under Pressure
Workflow That Works Under PressureWorkflow That Works Under Pressure
Workflow That Works Under Pressure
Jeff Eaton
 
Planning Beyond the Page
Planning Beyond the PagePlanning Beyond the Page
Planning Beyond the Page
Jeff 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 Practice
Jeff Eaton
 
Prepare for the Mobilacalypse
Prepare for the MobilacalypsePrepare for the Mobilacalypse
Prepare for the Mobilacalypse
Jeff Eaton
 
Building Apis That Rock
Building Apis That RockBuilding Apis That Rock
Building Apis That Rock
Jeff 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

Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Peter Udo Diehl
 

Recently uploaded (20)

Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 

Architecture Is For Everyone

Editor's Notes

  1. Work with clients who need sustainable sites Training, Planning, and suffering
  2. Dries has talked about this for years Who here used to be a webmaster? You didn’t go away - you became a developer.
  3. “Eliminate the developer” - CCK, Views, Panels, OG, d7ux! I wrote “Using Drupal” - code free site recipes! Are we dying?
  4. More pieces than ever Pieces are bigger Nontrivial changes require deep understanding “No-code” requires knowing the code enough to avoid it
  5. Sarah Winchester’s mansion
  6. cool features. total chaos. no master plan.
  7. cool features. total chaos. no master plan.
  8. that’s software architecture.
  9. this is not canon, it’s fuzzy. What’s the difference between a dev and an architect?
  10. Too quick to jump to modules, features, “can we do X?” Need context: Winchester house was fine for its goal “Divide articles into pages!” break up long articles, or increase clicks? “We need a content staging server!” Or use workflow? OR NOT “We need X in core!” Do we?
  11. Balance Features, legacy code, performance, growth, real-world workflow, external environment (business AND tech), timelines, available resources we “know” many of these, but must be explicit
  12. the flip side: my grandfather was a machinist, and he hated architects. understand the details too, even if you delegate otherwise you’re just project manager, not an architect.
  13. If you only have one option, you’re doing it wrong Might be only one GOOD option Understand goals & constraints lets you get the spirit of the requests, not just the letter
  14. silos are good -- but only if they’re planned mismatched APIs in core overlapping modules, duplicated work, performance collisions in sites this is why architects love their diagrams
  15. Things you’re doing over and over (nodes, taxonomy, flag) Things you’re doing that others have (Pattern language) Christopher Alexander Patterns aren’t magic: they are lessons that have been learned
  16. "Use Wordpress." "Farm that out to an outside service." "Learn lessons from Movable Type's template system..." "How does the django team deal with scaling?" Don't have to become an expert at everything, but knowing how to learn from others - and get help from them - is critical.
  17. increase page views! more social features! escape $400,000 a year CMS! simplify editorial!
  18. Publication cycle? User participation levels? Traffic? Servers? Migrating newsroom to drupal, or just display? Legacy systems? Priorities? This is why specs are gold.
  19. How will we test? How will we launch/transition? How will we roll out new stuff AFTER launch? See the Economist presentation for a great example
  20. How are we going to get there? What portions are most important?
  21. Become wordpress? Become django? Facilitate distributions? Avoid commitment?
  22. Mostly volunteers Shared hosting Now Public (current client w/85,000 logged in users) PHP Language
  23. 100 fewer lines of PHP? 10,000 new sites? Code “feels better?” Ghosts leave us alone?
  24. Finding places where APIs collide Finding cruft of half-implemented features Eliminating things that are edge cases Adding pieces that are constantly re-implemented
  25. Not a code idea, but manifests in code Split APIs (fapi, dbtng, menus, hooks...) from “features” Push “features” to distros and profiles Plan silos, reduce assumptions, allow specialization