SlideShare a Scribd company logo
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
With a lot of caching




Dallas Drupal Days 2011
Before big websites
Before big websites
• Clients would come to me and ask me to build
them a website.
Before big websites
• Clients would come to me and ask me to build
them a website.
• I would build them a website.
I would . . .
I would . . .
• meet with a client, define their business goals and
technical needs, create a site plan.
I would . . .
• meet with a client, define their business goals and
technical needs, create a site plan.
• download and install a CMS (usually Drupal).
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.
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.
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.
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.
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.
I would . . .
I would . . .
• sprinkle on (just enough) javascript.
I would . . .
• sprinkle on (just enough) javascript.
• log in as user 1 and click configuration buttons.
I would . . .
• sprinkle on (just enough) javascript.
• log in as user 1 and click configuration buttons.
• teach the user how to use their site.
Afterwards,
Afterwards,
• clients called me when they had a problem.
Afterwards,
• clients called me when they had a problem.
• I would fix it.
Simpler times
Simpler times
• Caching was a browser issue. "Did you clear your
cache?"
Simpler times
• Caching was a browser issue. "Did you clear your
cache?"
• Version control was ensuring there was a backup
or rollback ability.
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.
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?"
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.
Little Bobby Tables
Then, things changed.
Then, things changed.
• I joined Four Kitchens, birthplace of Pressflow,
and was surrounded by major league Big Website
foo.
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.
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.
How The Economist
changed my (work) life
How The Economist
changed my (work) life
• Most of the functionality I add is custom built or at
least customized.
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.
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.
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.
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.
Big Websites
• Every bit of code I write (even in the theme) is
reviewed (more than once) before it is merged.
• 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".
• 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.
• 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.
• 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.
• 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.
Big Websites
• The havoc I could wreak if I’m not careful keeps
me up nights.
• The havoc I could wreak if I’m not careful keeps
me up nights.
• I *always* have to think about caching, in layers.
• 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.
• 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.
• 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.
• 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.
• 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
Big Websites
• I attend a lot more meetings.
• I attend a lot more meetings.
• I read and answer a river of emails - every day.
• 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.
• 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.
Code-Review Velocci
Categories of differences
Categories of differences
• Version control
Categories of differences
• Version control
• Workflow and development environments
Categories of differences
• Version control
• Workflow and development environments
• Quality control
Categories of differences
• Version control
• Workflow and development environments
• Quality control
• Back-end processes
Categories of differences
• Version control
• Workflow and development environments
• Quality control
• Back-end processes
• Performance and scalability
Categories of differences
• Version control
• Workflow and development environments
• Quality control
• Back-end processes
• Performance and scalability
• Project management (Scrum!)
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.
Version control
Version control
• I <3 Bazaar (launchpad)
Version control
• I <3 Bazaar (launchpad)
• Drupal uses Git (github)
Version control
• I <3 Bazaar (launchpad)
• Drupal uses Git (github)
• I !<3 SVN or CVS but they are better than nothing.
Version control
• I <3 Bazaar (launchpad)
• Drupal uses Git (github)
• I !<3 SVN or CVS but they are better than nothing.
• Branching
Version control
• I <3 Bazaar (launchpad)
• Drupal uses Git (github)
• I !<3 SVN or CVS but they are better than nothing.
• Branching
• Questions?
Workflow and dev
environments
Workflow and dev
environments
• Sameness in local environments is good.
Workflow and dev
environments
• Sameness in local environments is good.
• Plan development well or die.
Workflow and dev
environments
• Sameness in local environments is good.
• Plan development well or die.
• Establish version control flow.
Workflow and dev
environments
• Sameness in local environments is good.
• Plan development well or die.
• Establish version control flow.
• Questions?
Quality control
Quality control
• Code reviews
Quality control
• Code reviews
• Testing
Quality control
• Code reviews
• Testing
• Definition of Done
Quality control
• Code reviews
• Testing
• Definition of Done
• Questions?
Back-end processes
Back-end processes
• Cron tasks
Back-end processes
• Cron tasks
• Custom drush commands
Back-end processes
• Cron tasks
• Custom drush commands
• Custom scripting
Back-end processes
• Cron tasks
• Custom drush commands
• Custom scripting
• Questions?
Performance and
scalability
Performance and
scalability
• Caching: Varnish and memcache
Performance and
scalability
• Caching: Varnish and memcache
• Multiple servers, load balancing, CDN
Performance and
scalability
• Caching: Varnish and memcache
• Multiple servers, load balancing, CDN
• Questions?
Project management
Project management
• Absolutely, positively, essential to do this well.
Project management
• Absolutely, positively, essential to do this well.
• Scrum
Project management
• Absolutely, positively, essential to do this well.
• Scrum
• Questions?
Relationship management
Relationship management
• Relationship skills are as important (more
important?) as geek skills.
Relationship management
• Relationship skills are as important (more
important?) as geek skills.
• Questions?
Big Websites
Thank You!

More Related Content

PDF
WAG the Blog
PDF
11 Amazing things I Learnt At Word Camp Sydney 2014
PDF
Theming Wordpress with Adobe
KEY
Wordpress 101 presentation - Canadian Association of Labour Media (CALM)
KEY
Social dev camp_2011
PPTX
HyperDB, MySQL Performance, & Flavors of MySQL
PPT
Up and Running with WordPress - Site Shack Nashville Web Design
PDF
Building the next generation of themes with WP Rig 2.0
WAG the Blog
11 Amazing things I Learnt At Word Camp Sydney 2014
Theming Wordpress with Adobe
Wordpress 101 presentation - Canadian Association of Labour Media (CALM)
Social dev camp_2011
HyperDB, MySQL Performance, & Flavors of MySQL
Up and Running with WordPress - Site Shack Nashville Web Design
Building the next generation of themes with WP Rig 2.0

What's hot (20)

PPTX
WordPress Plugins and Security
PDF
How to Build Custom WordPress Blocks
PDF
High Performance WordPress
PDF
There's No Crying In Wordpress! (an intro to WP)
PDF
光速テーマ開発のコツ
KEY
Intro To WordPress Themes
PPT
2010 11 pubcon_hendison-hosting
PPTX
Presentation to SAIT Students - Dec 2013
PDF
Seven deadly theming sins
KEY
The web standards gentleman: a matter of (evolving) standards)
PDF
What's Coming in WordPress 3.0
PPT
Building a Simple Theme Framework
KEY
Becoming a more productive Rails Developer
PDF
Theming in WordPress - Where do I Start?
PDF
What Multisite can do for You - Anthony Cole - WordCamp Sydney 2012
KEY
PDF
WordPress, Domain Names and Web Hosting Basics
KEY
PDF
PHPをさわらず作る!デザイナーさんのためのWordPress【超!初級】
PPTX
BDUG Responsive Web Theming - 7/23/12
WordPress Plugins and Security
How to Build Custom WordPress Blocks
High Performance WordPress
There's No Crying In Wordpress! (an intro to WP)
光速テーマ開発のコツ
Intro To WordPress Themes
2010 11 pubcon_hendison-hosting
Presentation to SAIT Students - Dec 2013
Seven deadly theming sins
The web standards gentleman: a matter of (evolving) standards)
What's Coming in WordPress 3.0
Building a Simple Theme Framework
Becoming a more productive Rails Developer
Theming in WordPress - Where do I Start?
What Multisite can do for You - Anthony Cole - WordCamp Sydney 2012
WordPress, Domain Names and Web Hosting Basics
PHPをさわらず作る!デザイナーさんのためのWordPress【超!初級】
BDUG Responsive Web Theming - 7/23/12
Ad

Viewers also liked (6)

PDF
Four Kitchens Presents: Future of the CMS
PDF
Four Kitchens: We make BIG websites
PDF
Big Websites for Small Screens: ICANN.org Case Study
PDF
No RFPs! Why requests for proposal are bad for business (and how we can stop ...
PDF
Don't Design Websites. Design Web SYSTEMS! (UT Austin Drupal Users Group)
PDF
UX design for every screen
Four Kitchens Presents: Future of the CMS
Four Kitchens: We make BIG websites
Big Websites for Small Screens: ICANN.org Case Study
No RFPs! Why requests for proposal are bad for business (and how we can stop ...
Don't Design Websites. Design Web SYSTEMS! (UT Austin Drupal Users Group)
UX design for every screen
Ad

Similar to Big Websites (20)

PDF
resume
DOCX
resume
PPT
Open / Drupal Camp Presentation: Brent Bice
PPTX
Intro to advanced web development
PPTX
How to maintain, evolve and maximize the return on your Drupal website invest...
PDF
4 Essential Checklist to Manage Drupal Projects
DOC
Phil_Pearl_Resume
PPTX
Becoming A Drupal Master Builder
PPT
5 Common Mistakes You are Making on your Website
PDF
Staging Drupal 8 31 09 1 3
PDF
Web developer - Wordpress - Joomla- ExpressionEngine
DOC
Purnendu_MSc_Exp12Yrs_PHPMYSQL
DOC
CV_Abhay_Pawar
PPT
Web Speed And Scalability
DOCX
Biswajit-Resume-PHP-Drupal
PDF
Joomla User Group Suffolk - July 2012 - Crossing the line first or last - per...
PPTX
Software Development Whats & Whys
PDF
Best practices-wordpress-enterprise
PDF
Designing and developing challenging Drupal sites
KEY
Performance and scalability with drupal
resume
resume
Open / Drupal Camp Presentation: Brent Bice
Intro to advanced web development
How to maintain, evolve and maximize the return on your Drupal website invest...
4 Essential Checklist to Manage Drupal Projects
Phil_Pearl_Resume
Becoming A Drupal Master Builder
5 Common Mistakes You are Making on your Website
Staging Drupal 8 31 09 1 3
Web developer - Wordpress - Joomla- ExpressionEngine
Purnendu_MSc_Exp12Yrs_PHPMYSQL
CV_Abhay_Pawar
Web Speed And Scalability
Biswajit-Resume-PHP-Drupal
Joomla User Group Suffolk - July 2012 - Crossing the line first or last - per...
Software Development Whats & Whys
Best practices-wordpress-enterprise
Designing and developing challenging Drupal sites
Performance and scalability with drupal

More from Four Kitchens (20)

PDF
Don't Design Websites. Design Web SYSTEMS! (BADCamp 2011)
PDF
Don't Design Websites. Design Web SYSTEMS! (DrupalCon London 2011)
PDF
Don't Design Websites. Design Web SYSTEMS! (DrupalCamp LA 2011)
PDF
Accelerated grid theming using NineSixty (DrupalCamp LA 2011)
PDF
Don't Design Websites. Design Web SYSTEMS! (Dallas Drupal Days 2011)
KEY
Building Responsive Websites and Apps with Drupal
PDF
Accelerated grid theming using NineSixty (Dallas Drupal Days 2011)
KEY
Intro to Drush
KEY
Teaching Drupal
KEY
Designing future proof websites
PDF
Making drupal beautiful with web fonts
PDF
The type revolutionary's cookbook
PDF
The Web Chef Cookbook
PDF
Don't Design Websites. Design Web SYSTEMS! (DrupalCamp Stockholm 2011)
PDF
Don't Design Websites. Design Web SYSTEMS! (DrupalCon Chicago 2011)
PDF
Don't Design Websites. Design Web SYSTEMS! (DrupalCon Copenhagen 2010)
KEY
The state of web typography
PDF
Accelerated grid theming using NineSixty (Drupal Design Camp Boston 2010)
KEY
PHP for NonProgrammers (DrupalCon SF 2010)
PDF
From Photoshop to Drupal Theme (DrupalCon San Francisco 2010)
Don't Design Websites. Design Web SYSTEMS! (BADCamp 2011)
Don't Design Websites. Design Web SYSTEMS! (DrupalCon London 2011)
Don't Design Websites. Design Web SYSTEMS! (DrupalCamp LA 2011)
Accelerated grid theming using NineSixty (DrupalCamp LA 2011)
Don't Design Websites. Design Web SYSTEMS! (Dallas Drupal Days 2011)
Building Responsive Websites and Apps with Drupal
Accelerated grid theming using NineSixty (Dallas Drupal Days 2011)
Intro to Drush
Teaching Drupal
Designing future proof websites
Making drupal beautiful with web fonts
The type revolutionary's cookbook
The Web Chef Cookbook
Don't Design Websites. Design Web SYSTEMS! (DrupalCamp Stockholm 2011)
Don't Design Websites. Design Web SYSTEMS! (DrupalCon Chicago 2011)
Don't Design Websites. Design Web SYSTEMS! (DrupalCon Copenhagen 2010)
The state of web typography
Accelerated grid theming using NineSixty (Drupal Design Camp Boston 2010)
PHP for NonProgrammers (DrupalCon SF 2010)
From Photoshop to Drupal Theme (DrupalCon San Francisco 2010)

Recently uploaded (20)

PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
NewMind AI Monthly Chronicles - July 2025
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
cuic standard and advanced reporting.pdf
PPTX
MYSQL Presentation for SQL database connectivity
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
Big Data Technologies - Introduction.pptx
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
Understanding_Digital_Forensics_Presentation.pptx
NewMind AI Monthly Chronicles - July 2025
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
20250228 LYD VKU AI Blended-Learning.pptx
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf
The AUB Centre for AI in Media Proposal.docx
cuic standard and advanced reporting.pdf
MYSQL Presentation for SQL database connectivity
“AI and Expert System Decision Support & Business Intelligence Systems”
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Per capita expenditure prediction using model stacking based on satellite ima...
Big Data Technologies - Introduction.pptx
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Chapter 3 Spatial Domain Image Processing.pdf
Spectral efficient network and resource selection model in 5G networks
Diabetes mellitus diagnosis method based random forest with bat algorithm
Digital-Transformation-Roadmap-for-Companies.pptx

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
  • 2. With a lot of caching Dallas Drupal Days 2011
  • 4. Before big websites • Clients would come to me and ask me to build them a website.
  • 5. Before big websites • Clients would come to me and ask me to build them a website. • I would build them a website.
  • 6. I would . . .
  • 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.
  • 14. I would . . .
  • 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.
  • 19. Afterwards, • clients called me when they had a problem.
  • 20. Afterwards, • clients called me when they had a problem. • I would fix it.
  • 22. Simpler times • Caching was a browser issue. "Did you clear your cache?"
  • 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.
  • 32. How The Economist changed my (work) life
  • 33. How The Economist changed my (work) life • Most of the functionality I add is custom built or at least customized.
  • 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
  • 54. • I attend a lot more meetings.
  • 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.
  • 60. Categories of differences • Version control
  • 61. Categories of differences • Version control • Workflow and development environments
  • 62. Categories of differences • Version control • Workflow and development environments • Quality control
  • 63. Categories of differences • Version control • Workflow and development environments • Quality control • Back-end processes
  • 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.
  • 68. Version control • I <3 Bazaar (launchpad)
  • 69. Version control • I <3 Bazaar (launchpad) • Drupal uses Git (github)
  • 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?
  • 74. Workflow and dev environments • Sameness in local environments is good.
  • 75. Workflow and dev environments • Sameness in local environments is good. • Plan development well or die.
  • 76. Workflow and dev environments • Sameness in local environments is good. • Plan development well or die. • Establish version control flow.
  • 77. Workflow and dev environments • Sameness in local environments is good. • Plan development well or die. • Establish version control flow. • Questions?
  • 80. Quality control • Code reviews • Testing
  • 81. Quality control • Code reviews • Testing • Definition of Done
  • 82. Quality control • Code reviews • Testing • Definition of Done • Questions?
  • 85. Back-end processes • Cron tasks • Custom drush commands
  • 86. Back-end processes • Cron tasks • Custom drush commands • Custom scripting
  • 87. Back-end processes • Cron tasks • Custom drush commands • Custom scripting • Questions?
  • 90. Performance and scalability • Caching: Varnish and memcache • Multiple servers, load balancing, CDN
  • 91. Performance and scalability • Caching: Varnish and memcache • Multiple servers, load balancing, CDN • Questions?
  • 93. Project management • Absolutely, positively, essential to do this well.
  • 94. Project management • Absolutely, positively, essential to do this well. • Scrum
  • 95. Project management • Absolutely, positively, essential to do this well. • Scrum • Questions?
  • 97. Relationship management • Relationship skills are as important (more important?) as geek skills.
  • 98. Relationship management • Relationship skills are as important (more important?) as geek skills. • Questions?

Editor's Notes