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
      ...
who are you?
   member of a dev team
    someone with client
someone responsible for a site
    a module maintainer
      ...
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! Ce...
•   7 stories (then 3)

•   160 rooms

•   20,500 gallons

•   10,000 windows

•   17 chimneys (maybe?)

•   Elevators! Ce...
•   7 stories (then 3)

•   160 rooms

•   20,500 gallons

•   10,000 windows

•   17 chimneys (maybe?)

•   Elevators! Ce...
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 tha...
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
Architecture Is For Everyone
Architecture Is For Everyone
Architecture Is For Everyone
Architecture Is For Everyone
Architecture Is For Everyone
Architecture Is For Everyone
Architecture Is For Everyone
Upcoming SlideShare
Loading in...5
×

Architecture Is For Everyone

2,851

Published on

A gentle introduction to "architecture" presented at DrupalCon Paris, 2009. Intended for the casual and intermediate web developer interested in considering the bigger picture.

Published in: Technology, Education
1 Comment
3 Likes
Statistics
Notes
No Downloads
Views
Total Views
2,851
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
60
Comments
1
Likes
3
Embeds 0
No embeds

No notes for slide
  • Work with clients who need sustainable sites
    Training, Planning, and suffering
  • Dries has talked about this for years
    Who here used to be a webmaster?
    You didn’t go away - you became a developer.
  • “Eliminate the developer” - CCK, Views, Panels, OG, d7ux!
    I wrote “Using Drupal” - code free site recipes!
    Are we dying?
  • More pieces than ever
    Pieces are bigger
    Nontrivial changes require deep understanding
    “No-code” requires knowing the code enough to avoid it
  • Sarah Winchester’s mansion
  • cool features.
    total chaos.
    no master plan.
  • cool features.
    total chaos.
    no master plan.
  • that’s software architecture.
  • this is not canon, it’s fuzzy.
    What’s the difference between a dev and an architect?
  • 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?
  • 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
  • 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.
  • 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
  • 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
  • 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
  • "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.
  • increase page views!
    more social features!
    escape $400,000 a year CMS!
    simplify editorial!
  • Publication cycle? User participation levels? Traffic? Servers? Migrating newsroom to drupal, or just display? Legacy systems? Priorities?
    This is why specs are gold.
  • 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
  • How are we going to get there?
    What portions are most important?
  • Become wordpress?
    Become django?
    Facilitate distributions?
    Avoid commitment?
  • Mostly volunteers
    Shared hosting
    Now Public (current client w/85,000 logged in users)
    PHP Language
  • 100 fewer lines of PHP?
    10,000 new sites?
    Code “feels better?”
    Ghosts leave us alone?
  • Finding places where APIs collide
    Finding cruft of half-implemented features
    Eliminating things that are edge cases
    Adding pieces that are constantly re-implemented
  • 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
  • Architecture Is For Everyone

    1. 1. architecture is for everyone a gentle introduction to thinking big
    2. 2. hi. i’m eaton.
    3. 3. who are you?
    4. 4. who are you? member of a dev team someone with client someone responsible for a site a module maintainer a core dev
    5. 5. who are you? member of a dev team someone with client someone responsible for a site a module maintainer a core dev frustrated!
    6. 6. Bahahahahahah. hahah. ahem.
    7. 7. “no devs” means “smart” code smart systems are complicated
    8. 8. we’re architects, now http://www.flickr.com/photos/47325272@N00/2541408630/
    9. 9. we’re architects, now http://www.flickr.com/photos/47325272@N00/2541408630/
    10. 10. • 7 stories (then 3) • 160 rooms • 20,500 gallons • 10,000 windows • 17 chimneys (maybe?) • Elevators! Central heat! Chaos and madness!
    11. 11. • 7 stories (then 3) • 160 rooms • 20,500 gallons • 10,000 windows • 17 chimneys (maybe?) • Elevators! Central heat! Chaos and madness!
    12. 12. • 7 stories (then 3) • 160 rooms • 20,500 gallons • 10,000 windows • 17 chimneys (maybe?) • Elevators! Central heat! Chaos and madness!
    13. 13. complexity requires a roadmap http://www.flickr.com/photos/47325272@N00/2541408630/
    14. 14. what makes an architect? no, seriously, what?
    15. 15. goals before features http://www.flickr.com/photos/16057786@N00/2956432732/
    16. 16. see the forest http://www.flickr.com/photos/cmefish/3039477633
    17. 17. know the tools http://www.flickr.com/photos/thefangmonster/490423135
    18. 18. choices, tradeoffs
    19. 19. coordinate, communicate
    20. 20. coordinate, communicate
    21. 21. identify patterns http://www.flickr.com/photos/evaekeblad/916121820
    22. 22. identify patterns http://www.flickr.com/photos/evaekeblad/916121820
    23. 23. look around http://www.flickr.com/photos/gerlos/3119891607
    24. 24. building a site (architect style)
    25. 25. • Views, of course! • ImageAPI, ImageField... • Panels? Nodequeue? • Workflow! • Organic Groups! • And that’ll be custom...
    26. 26. WRONG!
    27. 27. GOALS
    28. 28. CONTEXT
    29. 29. PROCESS
    30. 30. ROAD
    31. 31. not as fun but now we have a plan.
    32. 32. but... drupal? road maps...?
    33. 33. YES
    34. 34. what is drupal’s goal?
    35. 35. what are our constraints?
    36. 36. where are we now?
    37. 37. where are we now?
    38. 38. how do we reduce complexity?
    39. 39. *cough* smallcore *cough*
    40. 40. think big, build small
    41. 41. suggested reading
    42. 42. suggested reading
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×