Big Websites
- 1. Big Websites
Diana Montalion Dupuis : @dianadupuis
previously: @mooncougar
Robert Ristroph : @robgr
Drupal powers many small-to-medium websites, from personal
blogs to company intranets. Drupal also powers big sites like
The Economist and The White House. How are the big sites
different from the small ones?
Four Kitchens : @fourkitchens
- 5. Before big websites
• Clients would come to me and ask me to build
them a website.
• I would build them a website.
- 7. I would . . .
• meet with a client, define their business goals and
technical needs, create a site plan.
- 8. I would . . .
• meet with a client, define their business goals and
technical needs, create a site plan.
• download and install a CMS (usually Drupal).
- 9. I would . . .
• meet with a client, define their business goals and
technical needs, create a site plan.
• download and install a CMS (usually Drupal).
• download, install and configure modules or plug-
ins.
- 10. I would . . .
• meet with a client, define their business goals and
technical needs, create a site plan.
• download and install a CMS (usually Drupal).
• download, install and configure modules or plug-
ins.
• sometimes install and configure compatible apps
like CiviCRM or a shopping cart.
- 11. I would . . .
• meet with a client, define their business goals and
technical needs, create a site plan.
• download and install a CMS (usually Drupal).
• download, install and configure modules or plug-
ins.
• sometimes install and configure compatible apps
like CiviCRM or a shopping cart.
• merge some data, maybe.
- 12. I would . . .
• meet with a client, define their business goals and
technical needs, create a site plan.
• download and install a CMS (usually Drupal).
• download, install and configure modules or plug-
ins.
• sometimes install and configure compatible apps
like CiviCRM or a shopping cart.
• merge some data, maybe.
• build a theme, install it, and cross-browser test.
- 13. I would . . .
• meet with a client, define their business goals and
technical needs, create a site plan.
• download and install a CMS (usually Drupal).
• download, install and configure modules or plug-
ins.
• sometimes install and configure compatible apps
like CiviCRM or a shopping cart.
• merge some data, maybe.
• build a theme, install it, and cross-browser test.
• rebuild the theme for IE6.
- 15. I would . . .
• sprinkle on (just enough) javascript.
- 16. I would . . .
• sprinkle on (just enough) javascript.
• log in as user 1 and click configuration buttons.
- 17. I would . . .
• sprinkle on (just enough) javascript.
• log in as user 1 and click configuration buttons.
• teach the user how to use their site.
- 23. Simpler times
• Caching was a browser issue. "Did you clear your
cache?"
• Version control was ensuring there was a backup
or rollback ability.
- 24. Simpler times
• Caching was a browser issue. "Did you clear your
cache?"
• Version control was ensuring there was a backup
or rollback ability.
• Performance was not serving an automatically-
playing video on the homepage.
- 25. Simpler times
• Caching was a browser issue. "Did you clear your
cache?"
• Version control was ensuring there was a backup
or rollback ability.
• Performance was not serving an automatically-
playing video on the homepage.
• Scalability was a functionality issue. "Can I add a
picture gallery later?"
- 26. Simpler times
• Caching was a browser issue. "Did you clear your
cache?"
• Version control was ensuring there was a backup
or rollback ability.
• Performance was not serving an automatically-
playing video on the homepage.
• Scalability was a functionality issue. "Can I add a
picture gallery later?"
• I longed to write more code.
- 29. Then, things changed.
• I joined Four Kitchens, birthplace of Pressflow,
and was surrounded by major league Big Website
foo.
- 30. Then, things changed.
• I joined Four Kitchens, birthplace of Pressflow,
and was surrounded by major league Big Website
foo.
• In time, I became the team lead for the Austin
(aka Janus) team working on The Economist online.
Rob is currently the team lead.
- 31. Then, things changed.
• I joined Four Kitchens, birthplace of Pressflow,
and was surrounded by major league Big Website
foo.
• In time, I became the team lead for the Austin
(aka Janus) team working on The Economist online.
Rob is currently the team lead.
• I went from a one-woman expertise factory to a
developer who *needs* her teammates to survive
the workday.
- 34. How The Economist
changed my (work) life
• Most of the functionality I add is custom built or at
least customized.
• I often have to study more (custom) code than I
write when implementing new functionality.
- 35. How The Economist
changed my (work) life
• Most of the functionality I add is custom built or at
least customized.
• I often have to study more (custom) code than I
write when implementing new functionality.
• I build a branch for every task and merge code into
the codebase when it's done.
- 36. How The Economist
changed my (work) life
• Most of the functionality I add is custom built or at
least customized.
• I often have to study more (custom) code than I
write when implementing new functionality.
• I build a branch for every task and merge code into
the codebase when it's done.
• I am rarely the only person working on that
branch.
- 37. How The Economist
changed my (work) life
• Most of the functionality I add is custom built or at
least customized.
• I often have to study more (custom) code than I
write when implementing new functionality.
• I build a branch for every task and merge code into
the codebase when it's done.
• I am rarely the only person working on that
branch.
• If I do use a contributed module, it has it’s own
vendor branch.
- 39. • Every bit of code I write (even in the theme) is
reviewed (more than once) before it is merged.
- 40. • Every bit of code I write (even in the theme) is
reviewed (more than once) before it is merged.
• I test everything in four different environments
(versions of the website) before it is "Done".
- 41. • Every bit of code I write (even in the theme) is
reviewed (more than once) before it is merged.
• I test everything in four different environments
(versions of the website) before it is "Done".
• I write a test (Selenium, currently) for any new
functionality I create.
- 42. • Every bit of code I write (even in the theme) is
reviewed (more than once) before it is merged.
• I test everything in four different environments
(versions of the website) before it is "Done".
• I write a test (Selenium, currently) for any new
functionality I create.
• I work in the command line every day, not just
during install.
- 43. • Every bit of code I write (even in the theme) is
reviewed (more than once) before it is merged.
• I test everything in four different environments
(versions of the website) before it is "Done".
• I write a test (Selenium, currently) for any new
functionality I create.
• I work in the command line every day, not just
during install.
• Local work is done using VMWare running a Centos
enviroment (no MAMP) configured to match the
production environment.
- 44. • Every bit of code I write (even in the theme) is
reviewed (more than once) before it is merged.
• I test everything in four different environments
(versions of the website) before it is "Done".
• I write a test (Selenium, currently) for any new
functionality I create.
• I work in the command line every day, not just
during install.
• Local work is done using VMWare running a Centos
enviroment (no MAMP) configured to match the
production environment.
• It takes hours to download a new database for my
local environment.
- 46. • The havoc I could wreak if I’m not careful keeps
me up nights.
- 47. • The havoc I could wreak if I’m not careful keeps
me up nights.
• I *always* have to think about caching, in layers.
- 48. • The havoc I could wreak if I’m not careful keeps
me up nights.
• I *always* have to think about caching, in layers.
• Performance and scalability is a science involving.
multiple servers, load balancers, CDN, Varnish, etc
that I need to understand.
- 49. • The havoc I could wreak if I’m not careful keeps
me up nights.
• I *always* have to think about caching, in layers.
• Performance and scalability is a science involving.
multiple servers, load balancers, CDN, Varnish, etc
that I need to understand.
• Complicated tasks running "in the
background" (cron, drush/Hudson) are Chuck-
Norris-level customizations.
- 50. • The havoc I could wreak if I’m not careful keeps
me up nights.
• I *always* have to think about caching, in layers.
• Performance and scalability is a science involving.
multiple servers, load balancers, CDN, Varnish, etc
that I need to understand.
• Complicated tasks running "in the
background" (cron, drush/Hudson) are Chuck-
Norris-level customizations.
• I will never know enough Javascript.
- 51. • The havoc I could wreak if I’m not careful keeps
me up nights.
• I *always* have to think about caching, in layers.
• Performance and scalability is a science involving.
multiple servers, load balancers, CDN, Varnish, etc
that I need to understand.
• Complicated tasks running "in the
background" (cron, drush/Hudson) are Chuck-
Norris-level customizations.
• I will never know enough Javascript.
• Everything must be in code, even admin
configurations. I never click a button.
- 52. • The havoc I could wreak if I’m not careful keeps
me up nights.
• I *always* have to think about caching, in layers.
• Performance and scalability is a science involving.
multiple servers, load balancers, CDN, Varnish, etc
that I need to understand.
• Complicated tasks running "in the
background" (cron, drush/Hudson) are Chuck-
Norris-level customizations.
• I will never know enough Javascript.
• Everything must be in code, even admin
configurations. I never click a button.
• I apply relational skills as often as software
development skills to problems or inventing
- 55. • I attend a lot more meetings.
• I read and answer a river of emails - every day.
- 56. • I attend a lot more meetings.
• I read and answer a river of emails - every day.
• I always know what time it is in London and New
York and Seattle and Los Angeles.
- 57. • I attend a lot more meetings.
• I read and answer a river of emails - every day.
• I always know what time it is in London and New
York and Seattle and Los Angeles.
• Besides writing code together, the other devs and I
have bowled, snowshoed, played with dry ice, seen
Weird Al in person, pub crawled in London, drank
awesomesauce in Copenhagen, watched Tron 3D at
the IMAX, and smoked hookah together.
- 64. Categories of differences
• Version control
• Workflow and development environments
• Quality control
• Back-end processes
• Performance and scalability
- 65. Categories of differences
• Version control
• Workflow and development environments
• Quality control
• Back-end processes
• Performance and scalability
• Project management (Scrum!)
- 66. Categories of differences
• Version control
• Workflow and development environments
• Quality control
• Back-end processes
• Performance and scalability
• Project management (Scrum!)
• Group think and relationship management.
- 70. Version control
• I <3 Bazaar (launchpad)
• Drupal uses Git (github)
• I !<3 SVN or CVS but they are better than nothing.
- 71. Version control
• I <3 Bazaar (launchpad)
• Drupal uses Git (github)
• I !<3 SVN or CVS but they are better than nothing.
• Branching
- 72. Version control
• I <3 Bazaar (launchpad)
• Drupal uses Git (github)
• I !<3 SVN or CVS but they are better than nothing.
• Branching
• Questions?
- 77. Workflow and dev
environments
• Sameness in local environments is good.
• Plan development well or die.
• Establish version control flow.
• Questions?
Editor's Notes
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n