SlideShare une entreprise Scribd logo
1  sur  42
W.T.F.
***
Where To Focus when taking over
a Drupal Project
Drupal Camp Ottawa 2014 – Symetris.ca
Symetris unlocks your web potential
***
• Founded in 2004 – 10 years ago!
• 11 web specialists
• Develop websites that go beyond marketing
• Mastery of open-source CMS platforms
• Optimize sites for mobiles
Why WTF? Context Observe Act Conclusion
About me
Brad Muncs
President @ Symetris
Loves travelling
New dad
Strives to create
simplicity from
complexity
Why WTF? Context Observe Act Conclusion
What we’ll be talking about today
• Why is this talk relevant?
• Context
• Observation phase
• Action phase
• Conclusion
Why WTF? Context Observe Act Conclusion
Why is discussing
taking on
existing projects
relevant?
Why WTF? Context Observe Act Conclusion
The web used to be
an uninhabited
klondike.
Why WTF? Context Observe Act Conclusion
It’s now a bustling city.
Why WTF? Context Observe Act Conclusion
Why WTF? Context Observe Act Conclusion
The current situation
• 3 open-source CMS platforms dominate
• Most clients already have a CMS website
• Most current CMS are mature and
allow for upgrades and scalability
Why WTF? Context Observe Act Conclusion
Taking over existing Drupal projects
THE CONTEXT
Why WTF? Context Observe Act Conclusion
Why WTF? Context Observe Act Conclusion
Context elements to consider 1/2
• Client has a history, past experiences.
• If it turned sour, they might be defensive.
• Why do they want to change web partner
now?
• Important not to repeat same mistakes…
Why WTF? Context Observe Act Conclusion
Context elements to consider 2/2
• Who are the stakeholders?
• Who will be important to get on your side moving
forward?
• Workflow: How does the client use his
website?
• Ex: they might have the admin panel active, but
don’t use
Why WTF? Context Observe Act Conclusion
You’re client
doesn’t need « the
rebound guy ».
You should both be
aiming for a long-
term relationship.
Why WTF? Context Observe Act Conclusion
Taking over existing Drupal projects
OBSERVATION PHASE
Don’t start playing in the code
and configurations just yet
Why WTF? Context Observe Act Conclusion
We need to analyse the map to develop a
strategy.
Why WTF? Context Observe Act Conclusion
Programmers like to build stuff from scratch.
Having to delve into someone else’s code, we often
expect the worst.
Why WTF? Context Observe Act Conclusion
Common apprehensions:
• It’s not my code (so it’s shitty)
• The code is not built
according to my standards
• There is no documentation
available
• There are not diagrams,
tutorials or workflows
Why WTF? Context Observe Act Conclusion
Give whoever was working
on the site before you some slack
• Other developers are like you –
they build with best intentions,
but real life gets in the way
http://theoatmeal.com/comics/design_hell
Why WTF? Context Observe Act Conclusion
Step 1: Inventory of current website
• Inventory of Modules, Themes, Plugins
(external libraries)
• Any import/export functionnality?
Migrate or Feed modules
• Check if core was hacked
• Install « Hacked » and
« Diff » modules
Why WTF? Context Observe Act Conclusion
Step 1: Inventory of current backend
• List of « standard modules »
(and their version)
• List of « custom modules »
• These are going to be the challenges to update,
enhance in the future
• Are there any « garbage » modules?
• Not used in the website, but installed for testing
purposes by previous dev
Why WTF? Context Observe Act Conclusion
Step 1: Inventory of current website
• Open the readme.txt and upgrade.txt
• Might be written « do not upgrade! »
• Open fields and blocks
• Is PHPfilter module activated?
• Check views headers/footers:
There might be custom code
• /sites/modules/
• How is it structured?
Why WTF? Context Observe Act Conclusion
Step 2: Front-end matters
• How many page templates are there?
• Are there parent/child themes?
• Responsive or mobile theme?
• How is CSS structured? (LESS? SASS?)
• Ask: « Is that content generated by a block, a
view, a module, a context, a node, php? »
Why WTF? Context Observe Act Conclusion
Step 3: Tech inventory
• Server configuration and technologies
• Deployment strategy
• Versionning system (Git, SVN, etc)
• Automatic testing system
• Unit tests?
• SimpleTest module?
Why WTF? Context Observe Act Conclusion
Step 3: Tech inventory
• .htaccess: what are the specifications?
(Drupal core update will destroy this)
• Any third party connexions?
• Solr, SSL, Web services, Databases
Why WTF? Context Observe Act Conclusion
Taking over existing Drupal projects
ACTION PHASE
Time to start playing
around with the site
Why WTF? Context Observe Act Conclusion
Mark your territory
Why WTF? Context Observe Act Conclusion
A few beginner tips:
• Don’t start working on the live site.
• Create your own environment
(or use a client dev environment)
before touching anything
• Make sure the configs are the same as the
live website
Why WTF? Context Observe Act Conclusion
Don’t be scared of versionning
• You’ll be married to the project, so don’t think
it’s a an unnecessary evil
• Import their branches to your VCS to see the
site’s previous progress
• Clean up the files
• There is probably a lot of unnecessary files
• DAMN YOU .DS_store and _notes !!
Why WTF? Context Observe Act Conclusion
Before performing updates
• Check if the website you inherit has any
« pendings » in update.php
• Sometimes websites are buggy because this
hasn’t been done in a while
Why WTF? Context Observe Act Conclusion
Perform updates
• Step 1: Cross your fingers
• Step 2: Update core and modules
• Step 3: Check if the site is broken
• Step 4: Rollback if necessary
• drush pm-update –-lock=og
Why WTF? Context Observe Act Conclusion
Install the modules you like working with
• PathoLogic
• Automatically repairs URLs that client didn't write
correctly
• Path Redirect
• Point missing urls to correct pages
• Cache Exclude
• Exclude pages from cache instead of disabling it
to not slow down the site
Why WTF? Context Observe Act Conclusion
Start adressing the first client todos
• Take control: Rebuild vs. Patch
• You often feel you should either
completely rebuild or just sloppily patch
• If you can identify specific components that you
can enhance – take the baby step to make the
site better
• You can flush stuff that is irrelevant
Why WTF? Context Observe Act Conclusion
Maintain your integrity
• From now on, the site will be
built according to your
standards
• Don’t be lazy because the
rest of the site is not
• Document your work
• You’ll be more productive
within
your team
Why WTF? Context Observe Act Conclusion
Extra Quality Control
• Changes you make have
repercussions you might
not expect
• Test Front-end,
Functionnality & code
• Check our DrupalCamp
Montreal conference : Devil’s
in the details
Why WTF? Context Observe Act Conclusion
Your goal
• OWN the website and become an expert with
it
• If the old team takes the website back,
they shouldn’t feel it’s « theirs » anymore
• You’re going to be working with the site for a long
time, so you’d better like it
Why WTF? Context Observe Act Conclusion
Conclusion
Why WTF? Context Observe Act Conclusion
AGENCIES
CLIENTS
Why WTF? Context Observe Act Conclusion
Why WTF? Context Observe Act Conclusion
Be the web agency of their dreams
• They want to trust you
• Prove to your new client that you’re made for
each other
Which means
• Take the time to listen and understand why
your new client decided to leave their
previous relationship
• Take the time to get to know
your new website in and out
• Pretend you’re the one that built it in the first
place – OWN IT
Why WTF? Context Observe Act Conclusion
Why WTF? Context Observe Act Conclusion
Thank you!
Any questions?
brad@symetris.ca
www.symetris.ca
Presentation available on slideshare
@symetris

Contenu connexe

Tendances

Untangling spring week2
Untangling spring week2Untangling spring week2
Untangling spring week2Derek Jacoby
 
Untangling fall2017 week1
Untangling fall2017 week1Untangling fall2017 week1
Untangling fall2017 week1Derek Jacoby
 
Untangling spring week10
Untangling spring week10Untangling spring week10
Untangling spring week10Derek Jacoby
 
Untangling spring week3
Untangling spring week3Untangling spring week3
Untangling spring week3Derek Jacoby
 
Untangling the web week1
Untangling the web week1Untangling the web week1
Untangling the web week1Derek Jacoby
 
Create and upload your first Perl module to CPAN
Create and upload your first Perl module to CPANCreate and upload your first Perl module to CPAN
Create and upload your first Perl module to CPANbrian d foy
 
Untangling spring week6
Untangling spring week6Untangling spring week6
Untangling spring week6Derek Jacoby
 
Untangling spring week9
Untangling spring week9Untangling spring week9
Untangling spring week9Derek Jacoby
 
Untangling - fall2017 - week 9
Untangling - fall2017 - week 9Untangling - fall2017 - week 9
Untangling - fall2017 - week 9Derek Jacoby
 
Bootstrapping your startup & building it lean: stop wasting time
Bootstrapping your startup & building it lean: stop wasting timeBootstrapping your startup & building it lean: stop wasting time
Bootstrapping your startup & building it lean: stop wasting timeJoel Gascoigne
 
Netbeans dev and ecosystem
Netbeans dev and ecosystemNetbeans dev and ecosystem
Netbeans dev and ecosystemPeter Cheung
 
Untangling fall2017 week2
Untangling fall2017 week2Untangling fall2017 week2
Untangling fall2017 week2Derek Jacoby
 
Untangling - fall2017 - week 8
Untangling - fall2017 - week 8Untangling - fall2017 - week 8
Untangling - fall2017 - week 8Derek Jacoby
 
Untangling - fall2017 - week 10
Untangling - fall2017 - week 10Untangling - fall2017 - week 10
Untangling - fall2017 - week 10Derek Jacoby
 
Trying Out Tomorrow’s WordPress Today
Trying Out Tomorrow’s WordPress TodayTrying Out Tomorrow’s WordPress Today
Trying Out Tomorrow’s WordPress TodayDrewAPicture
 
Untangling the web - fall2017 - class 4
Untangling the web - fall2017 - class 4Untangling the web - fall2017 - class 4
Untangling the web - fall2017 - class 4Derek Jacoby
 
A Personal Journey
A Personal JourneyA Personal Journey
A Personal JourneyMichael Lihs
 
Untangling - fall2017 - week5
Untangling - fall2017 - week5Untangling - fall2017 - week5
Untangling - fall2017 - week5Derek Jacoby
 
Django production
Django productionDjango production
Django productionpythonsd
 

Tendances (20)

Untangling spring week2
Untangling spring week2Untangling spring week2
Untangling spring week2
 
Untangling fall2017 week1
Untangling fall2017 week1Untangling fall2017 week1
Untangling fall2017 week1
 
Untangling spring week10
Untangling spring week10Untangling spring week10
Untangling spring week10
 
Untangling spring week3
Untangling spring week3Untangling spring week3
Untangling spring week3
 
Untangling the web week1
Untangling the web week1Untangling the web week1
Untangling the web week1
 
Create and upload your first Perl module to CPAN
Create and upload your first Perl module to CPANCreate and upload your first Perl module to CPAN
Create and upload your first Perl module to CPAN
 
Untangling spring week6
Untangling spring week6Untangling spring week6
Untangling spring week6
 
Untangling spring week9
Untangling spring week9Untangling spring week9
Untangling spring week9
 
Untangling - fall2017 - week 9
Untangling - fall2017 - week 9Untangling - fall2017 - week 9
Untangling - fall2017 - week 9
 
Bootstrapping your startup & building it lean: stop wasting time
Bootstrapping your startup & building it lean: stop wasting timeBootstrapping your startup & building it lean: stop wasting time
Bootstrapping your startup & building it lean: stop wasting time
 
Untangling11
Untangling11Untangling11
Untangling11
 
Netbeans dev and ecosystem
Netbeans dev and ecosystemNetbeans dev and ecosystem
Netbeans dev and ecosystem
 
Untangling fall2017 week2
Untangling fall2017 week2Untangling fall2017 week2
Untangling fall2017 week2
 
Untangling - fall2017 - week 8
Untangling - fall2017 - week 8Untangling - fall2017 - week 8
Untangling - fall2017 - week 8
 
Untangling - fall2017 - week 10
Untangling - fall2017 - week 10Untangling - fall2017 - week 10
Untangling - fall2017 - week 10
 
Trying Out Tomorrow’s WordPress Today
Trying Out Tomorrow’s WordPress TodayTrying Out Tomorrow’s WordPress Today
Trying Out Tomorrow’s WordPress Today
 
Untangling the web - fall2017 - class 4
Untangling the web - fall2017 - class 4Untangling the web - fall2017 - class 4
Untangling the web - fall2017 - class 4
 
A Personal Journey
A Personal JourneyA Personal Journey
A Personal Journey
 
Untangling - fall2017 - week5
Untangling - fall2017 - week5Untangling - fall2017 - week5
Untangling - fall2017 - week5
 
Django production
Django productionDjango production
Django production
 

Similaire à WTF: Where To Focus when you take over a Drupal project

Pearls and Must-Have Tools for the Modern Web / .NET Developer
Pearls and Must-Have Tools for the Modern Web / .NET DeveloperPearls and Must-Have Tools for the Modern Web / .NET Developer
Pearls and Must-Have Tools for the Modern Web / .NET DeveloperOfer Zelig
 
How Not to Be Conned by Your Drupal Vendor!
How Not to Be Conned by Your Drupal Vendor!How Not to Be Conned by Your Drupal Vendor!
How Not to Be Conned by Your Drupal Vendor!pixelonion
 
Automated Acceptance Testing from Scratch
Automated Acceptance Testing from ScratchAutomated Acceptance Testing from Scratch
Automated Acceptance Testing from ScratchExcella
 
CodeIgniter for Startups, cicon2010
CodeIgniter for Startups, cicon2010CodeIgniter for Startups, cicon2010
CodeIgniter for Startups, cicon2010Joel Gascoigne
 
Best Practices for Building WordPress Applications
Best Practices for Building WordPress ApplicationsBest Practices for Building WordPress Applications
Best Practices for Building WordPress ApplicationsTaylor Lovett
 
Best Practices for WordPress in Enterprise
Best Practices for WordPress in EnterpriseBest Practices for WordPress in Enterprise
Best Practices for WordPress in EnterpriseTaylor Lovett
 
Best practices-wordpress-enterprise
Best practices-wordpress-enterpriseBest practices-wordpress-enterprise
Best practices-wordpress-enterpriseTaylor Lovett
 
Journey to Docker Production: Evolving Your Infrastructure and Processes - Br...
Journey to Docker Production: Evolving Your Infrastructure and Processes - Br...Journey to Docker Production: Evolving Your Infrastructure and Processes - Br...
Journey to Docker Production: Evolving Your Infrastructure and Processes - Br...Docker, Inc.
 
Picnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable applicationPicnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable applicationNick Josevski
 
USG Rock Eagle 2017 - PWP at 1000 Days
USG Rock Eagle 2017 - PWP at 1000 DaysUSG Rock Eagle 2017 - PWP at 1000 Days
USG Rock Eagle 2017 - PWP at 1000 DaysEric Sembrat
 
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...SmartBear
 
New life inside monolithic application
New life inside monolithic applicationNew life inside monolithic application
New life inside monolithic applicationTaras Matyashovsky
 
Why use Go for web development?
Why use Go for web development?Why use Go for web development?
Why use Go for web development?Weng Wei
 
Design Reviews for Operations - Velocity Europe 2014
Design Reviews for Operations - Velocity Europe 2014Design Reviews for Operations - Velocity Europe 2014
Design Reviews for Operations - Velocity Europe 2014Mandi Walls
 
Enabling Design Reviews with JIRA and Confluence - Atlassian Summit 2012
Enabling Design Reviews with JIRA and Confluence - Atlassian Summit 2012Enabling Design Reviews with JIRA and Confluence - Atlassian Summit 2012
Enabling Design Reviews with JIRA and Confluence - Atlassian Summit 2012Atlassian
 
Lean Startup with WebObjects
Lean Startup with WebObjectsLean Startup with WebObjects
Lean Startup with WebObjectsWO Community
 
Progressive Enhancement using WSGI
Progressive Enhancement using WSGIProgressive Enhancement using WSGI
Progressive Enhancement using WSGIMatthew Wilkes
 
Dart Past Your Competition by Getting Your Digital Experience into Market Fas...
Dart Past Your Competition by Getting Your Digital Experience into Market Fas...Dart Past Your Competition by Getting Your Digital Experience into Market Fas...
Dart Past Your Competition by Getting Your Digital Experience into Market Fas...Perficient, Inc.
 
Untying the Knots of Web Dev with Internet Explorer
Untying the Knots of Web Dev with Internet Explorer Untying the Knots of Web Dev with Internet Explorer
Untying the Knots of Web Dev with Internet Explorer Sarah Dutkiewicz
 

Similaire à WTF: Where To Focus when you take over a Drupal project (20)

Pearls and Must-Have Tools for the Modern Web / .NET Developer
Pearls and Must-Have Tools for the Modern Web / .NET DeveloperPearls and Must-Have Tools for the Modern Web / .NET Developer
Pearls and Must-Have Tools for the Modern Web / .NET Developer
 
How Not to Be Conned by Your Drupal Vendor!
How Not to Be Conned by Your Drupal Vendor!How Not to Be Conned by Your Drupal Vendor!
How Not to Be Conned by Your Drupal Vendor!
 
Automated Acceptance Testing from Scratch
Automated Acceptance Testing from ScratchAutomated Acceptance Testing from Scratch
Automated Acceptance Testing from Scratch
 
CodeIgniter for Startups, cicon2010
CodeIgniter for Startups, cicon2010CodeIgniter for Startups, cicon2010
CodeIgniter for Startups, cicon2010
 
Best Practices for Building WordPress Applications
Best Practices for Building WordPress ApplicationsBest Practices for Building WordPress Applications
Best Practices for Building WordPress Applications
 
Best Practices for WordPress in Enterprise
Best Practices for WordPress in EnterpriseBest Practices for WordPress in Enterprise
Best Practices for WordPress in Enterprise
 
Best practices-wordpress-enterprise
Best practices-wordpress-enterpriseBest practices-wordpress-enterprise
Best practices-wordpress-enterprise
 
Journey to Docker Production: Evolving Your Infrastructure and Processes - Br...
Journey to Docker Production: Evolving Your Infrastructure and Processes - Br...Journey to Docker Production: Evolving Your Infrastructure and Processes - Br...
Journey to Docker Production: Evolving Your Infrastructure and Processes - Br...
 
SharePoint Framework 101 (SPFx)
SharePoint Framework 101 (SPFx)SharePoint Framework 101 (SPFx)
SharePoint Framework 101 (SPFx)
 
Picnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable applicationPicnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable application
 
USG Rock Eagle 2017 - PWP at 1000 Days
USG Rock Eagle 2017 - PWP at 1000 DaysUSG Rock Eagle 2017 - PWP at 1000 Days
USG Rock Eagle 2017 - PWP at 1000 Days
 
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
 
New life inside monolithic application
New life inside monolithic applicationNew life inside monolithic application
New life inside monolithic application
 
Why use Go for web development?
Why use Go for web development?Why use Go for web development?
Why use Go for web development?
 
Design Reviews for Operations - Velocity Europe 2014
Design Reviews for Operations - Velocity Europe 2014Design Reviews for Operations - Velocity Europe 2014
Design Reviews for Operations - Velocity Europe 2014
 
Enabling Design Reviews with JIRA and Confluence - Atlassian Summit 2012
Enabling Design Reviews with JIRA and Confluence - Atlassian Summit 2012Enabling Design Reviews with JIRA and Confluence - Atlassian Summit 2012
Enabling Design Reviews with JIRA and Confluence - Atlassian Summit 2012
 
Lean Startup with WebObjects
Lean Startup with WebObjectsLean Startup with WebObjects
Lean Startup with WebObjects
 
Progressive Enhancement using WSGI
Progressive Enhancement using WSGIProgressive Enhancement using WSGI
Progressive Enhancement using WSGI
 
Dart Past Your Competition by Getting Your Digital Experience into Market Fas...
Dart Past Your Competition by Getting Your Digital Experience into Market Fas...Dart Past Your Competition by Getting Your Digital Experience into Market Fas...
Dart Past Your Competition by Getting Your Digital Experience into Market Fas...
 
Untying the Knots of Web Dev with Internet Explorer
Untying the Knots of Web Dev with Internet Explorer Untying the Knots of Web Dev with Internet Explorer
Untying the Knots of Web Dev with Internet Explorer
 

Plus de Symetris

Hyperpersonnalisation des sites web et écosystèmes numériques - Les best prac...
Hyperpersonnalisation des sites web et écosystèmes numériques - Les best prac...Hyperpersonnalisation des sites web et écosystèmes numériques - Les best prac...
Hyperpersonnalisation des sites web et écosystèmes numériques - Les best prac...Symetris
 
Écrire de la documentation persistante pour un projet Drupal
Écrire de la documentation persistante pour un projet DrupalÉcrire de la documentation persistante pour un projet Drupal
Écrire de la documentation persistante pour un projet DrupalSymetris
 
How to maintain, evolve and maximize the return on your Drupal website invest...
How to maintain, evolve and maximize the return on your Drupal website invest...How to maintain, evolve and maximize the return on your Drupal website invest...
How to maintain, evolve and maximize the return on your Drupal website invest...Symetris
 
Should you upgrade your Drupal 7 website or migrate to Drupal 8?
Should you upgrade  your Drupal 7 website or  migrate to Drupal 8? Should you upgrade  your Drupal 7 website or  migrate to Drupal 8?
Should you upgrade your Drupal 7 website or migrate to Drupal 8? Symetris
 
Different approaches for different scopes: How to tackle a medium-sized Dr...
Different approaches for different scopes: How to tackle a medium-sized Dr...Different approaches for different scopes: How to tackle a medium-sized Dr...
Different approaches for different scopes: How to tackle a medium-sized Dr...Symetris
 
Trop gros pour des mercenaires, trop petit pour une armée: Comment s'attaquer...
Trop gros pour des mercenaires, trop petit pour une armée: Comment s'attaquer...Trop gros pour des mercenaires, trop petit pour une armée: Comment s'attaquer...
Trop gros pour des mercenaires, trop petit pour une armée: Comment s'attaquer...Symetris
 
Symetris présente Drupal 8 - Linux-Meetup (Montreal) 02/02/2016
Symetris présente Drupal 8 - Linux-Meetup (Montreal) 02/02/2016Symetris présente Drupal 8 - Linux-Meetup (Montreal) 02/02/2016
Symetris présente Drupal 8 - Linux-Meetup (Montreal) 02/02/2016Symetris
 
Les particularités de Drupal en gestion de projet: une histoire d’amour et de...
Les particularités de Drupal en gestion de projet: une histoire d’amour et de...Les particularités de Drupal en gestion de projet: une histoire d’amour et de...
Les particularités de Drupal en gestion de projet: une histoire d’amour et de...Symetris
 
Personnaliser l'interface administrateur de Drupal - DrupalCamp Montreal 2014
Personnaliser l'interface administrateur de Drupal - DrupalCamp Montreal 2014Personnaliser l'interface administrateur de Drupal - DrupalCamp Montreal 2014
Personnaliser l'interface administrateur de Drupal - DrupalCamp Montreal 2014Symetris
 
Symetris ambiance
Symetris ambianceSymetris ambiance
Symetris ambianceSymetris
 
Présentation Symetris - Drupalcamp Montreal 2013 le diable est dans les détails
Présentation Symetris - Drupalcamp Montreal 2013 le diable est dans les détailsPrésentation Symetris - Drupalcamp Montreal 2013 le diable est dans les détails
Présentation Symetris - Drupalcamp Montreal 2013 le diable est dans les détailsSymetris
 
Mieux Filtrer ses listes WordPress avec Ajax et WP_Query
Mieux Filtrer ses listes WordPress avec Ajax et WP_QueryMieux Filtrer ses listes WordPress avec Ajax et WP_Query
Mieux Filtrer ses listes WordPress avec Ajax et WP_QuerySymetris
 
Générer plus de revenus par le web: Pouvez-vous faire mieux ?
Générer plus de revenus par le web: Pouvez-vous faire mieux ?Générer plus de revenus par le web: Pouvez-vous faire mieux ?
Générer plus de revenus par le web: Pouvez-vous faire mieux ?Symetris
 
Connecter Drupal à des API externes
Connecter Drupal à des API externesConnecter Drupal à des API externes
Connecter Drupal à des API externesSymetris
 

Plus de Symetris (14)

Hyperpersonnalisation des sites web et écosystèmes numériques - Les best prac...
Hyperpersonnalisation des sites web et écosystèmes numériques - Les best prac...Hyperpersonnalisation des sites web et écosystèmes numériques - Les best prac...
Hyperpersonnalisation des sites web et écosystèmes numériques - Les best prac...
 
Écrire de la documentation persistante pour un projet Drupal
Écrire de la documentation persistante pour un projet DrupalÉcrire de la documentation persistante pour un projet Drupal
Écrire de la documentation persistante pour un projet Drupal
 
How to maintain, evolve and maximize the return on your Drupal website invest...
How to maintain, evolve and maximize the return on your Drupal website invest...How to maintain, evolve and maximize the return on your Drupal website invest...
How to maintain, evolve and maximize the return on your Drupal website invest...
 
Should you upgrade your Drupal 7 website or migrate to Drupal 8?
Should you upgrade  your Drupal 7 website or  migrate to Drupal 8? Should you upgrade  your Drupal 7 website or  migrate to Drupal 8?
Should you upgrade your Drupal 7 website or migrate to Drupal 8?
 
Different approaches for different scopes: How to tackle a medium-sized Dr...
Different approaches for different scopes: How to tackle a medium-sized Dr...Different approaches for different scopes: How to tackle a medium-sized Dr...
Different approaches for different scopes: How to tackle a medium-sized Dr...
 
Trop gros pour des mercenaires, trop petit pour une armée: Comment s'attaquer...
Trop gros pour des mercenaires, trop petit pour une armée: Comment s'attaquer...Trop gros pour des mercenaires, trop petit pour une armée: Comment s'attaquer...
Trop gros pour des mercenaires, trop petit pour une armée: Comment s'attaquer...
 
Symetris présente Drupal 8 - Linux-Meetup (Montreal) 02/02/2016
Symetris présente Drupal 8 - Linux-Meetup (Montreal) 02/02/2016Symetris présente Drupal 8 - Linux-Meetup (Montreal) 02/02/2016
Symetris présente Drupal 8 - Linux-Meetup (Montreal) 02/02/2016
 
Les particularités de Drupal en gestion de projet: une histoire d’amour et de...
Les particularités de Drupal en gestion de projet: une histoire d’amour et de...Les particularités de Drupal en gestion de projet: une histoire d’amour et de...
Les particularités de Drupal en gestion de projet: une histoire d’amour et de...
 
Personnaliser l'interface administrateur de Drupal - DrupalCamp Montreal 2014
Personnaliser l'interface administrateur de Drupal - DrupalCamp Montreal 2014Personnaliser l'interface administrateur de Drupal - DrupalCamp Montreal 2014
Personnaliser l'interface administrateur de Drupal - DrupalCamp Montreal 2014
 
Symetris ambiance
Symetris ambianceSymetris ambiance
Symetris ambiance
 
Présentation Symetris - Drupalcamp Montreal 2013 le diable est dans les détails
Présentation Symetris - Drupalcamp Montreal 2013 le diable est dans les détailsPrésentation Symetris - Drupalcamp Montreal 2013 le diable est dans les détails
Présentation Symetris - Drupalcamp Montreal 2013 le diable est dans les détails
 
Mieux Filtrer ses listes WordPress avec Ajax et WP_Query
Mieux Filtrer ses listes WordPress avec Ajax et WP_QueryMieux Filtrer ses listes WordPress avec Ajax et WP_Query
Mieux Filtrer ses listes WordPress avec Ajax et WP_Query
 
Générer plus de revenus par le web: Pouvez-vous faire mieux ?
Générer plus de revenus par le web: Pouvez-vous faire mieux ?Générer plus de revenus par le web: Pouvez-vous faire mieux ?
Générer plus de revenus par le web: Pouvez-vous faire mieux ?
 
Connecter Drupal à des API externes
Connecter Drupal à des API externesConnecter Drupal à des API externes
Connecter Drupal à des API externes
 

Dernier

Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 

Dernier (20)

Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 

WTF: Where To Focus when you take over a Drupal project

  • 1. W.T.F. *** Where To Focus when taking over a Drupal Project Drupal Camp Ottawa 2014 – Symetris.ca
  • 2. Symetris unlocks your web potential *** • Founded in 2004 – 10 years ago! • 11 web specialists • Develop websites that go beyond marketing • Mastery of open-source CMS platforms • Optimize sites for mobiles Why WTF? Context Observe Act Conclusion
  • 3. About me Brad Muncs President @ Symetris Loves travelling New dad Strives to create simplicity from complexity Why WTF? Context Observe Act Conclusion
  • 4. What we’ll be talking about today • Why is this talk relevant? • Context • Observation phase • Action phase • Conclusion Why WTF? Context Observe Act Conclusion
  • 5. Why is discussing taking on existing projects relevant? Why WTF? Context Observe Act Conclusion
  • 6. The web used to be an uninhabited klondike. Why WTF? Context Observe Act Conclusion
  • 7. It’s now a bustling city. Why WTF? Context Observe Act Conclusion
  • 8. Why WTF? Context Observe Act Conclusion
  • 9. The current situation • 3 open-source CMS platforms dominate • Most clients already have a CMS website • Most current CMS are mature and allow for upgrades and scalability Why WTF? Context Observe Act Conclusion
  • 10. Taking over existing Drupal projects THE CONTEXT Why WTF? Context Observe Act Conclusion
  • 11. Why WTF? Context Observe Act Conclusion
  • 12. Context elements to consider 1/2 • Client has a history, past experiences. • If it turned sour, they might be defensive. • Why do they want to change web partner now? • Important not to repeat same mistakes… Why WTF? Context Observe Act Conclusion
  • 13. Context elements to consider 2/2 • Who are the stakeholders? • Who will be important to get on your side moving forward? • Workflow: How does the client use his website? • Ex: they might have the admin panel active, but don’t use Why WTF? Context Observe Act Conclusion
  • 14. You’re client doesn’t need « the rebound guy ». You should both be aiming for a long- term relationship. Why WTF? Context Observe Act Conclusion
  • 15. Taking over existing Drupal projects OBSERVATION PHASE Don’t start playing in the code and configurations just yet Why WTF? Context Observe Act Conclusion
  • 16. We need to analyse the map to develop a strategy. Why WTF? Context Observe Act Conclusion
  • 17. Programmers like to build stuff from scratch. Having to delve into someone else’s code, we often expect the worst. Why WTF? Context Observe Act Conclusion
  • 18. Common apprehensions: • It’s not my code (so it’s shitty) • The code is not built according to my standards • There is no documentation available • There are not diagrams, tutorials or workflows Why WTF? Context Observe Act Conclusion
  • 19. Give whoever was working on the site before you some slack • Other developers are like you – they build with best intentions, but real life gets in the way http://theoatmeal.com/comics/design_hell Why WTF? Context Observe Act Conclusion
  • 20. Step 1: Inventory of current website • Inventory of Modules, Themes, Plugins (external libraries) • Any import/export functionnality? Migrate or Feed modules • Check if core was hacked • Install « Hacked » and « Diff » modules Why WTF? Context Observe Act Conclusion
  • 21. Step 1: Inventory of current backend • List of « standard modules » (and their version) • List of « custom modules » • These are going to be the challenges to update, enhance in the future • Are there any « garbage » modules? • Not used in the website, but installed for testing purposes by previous dev Why WTF? Context Observe Act Conclusion
  • 22. Step 1: Inventory of current website • Open the readme.txt and upgrade.txt • Might be written « do not upgrade! » • Open fields and blocks • Is PHPfilter module activated? • Check views headers/footers: There might be custom code • /sites/modules/ • How is it structured? Why WTF? Context Observe Act Conclusion
  • 23. Step 2: Front-end matters • How many page templates are there? • Are there parent/child themes? • Responsive or mobile theme? • How is CSS structured? (LESS? SASS?) • Ask: « Is that content generated by a block, a view, a module, a context, a node, php? » Why WTF? Context Observe Act Conclusion
  • 24. Step 3: Tech inventory • Server configuration and technologies • Deployment strategy • Versionning system (Git, SVN, etc) • Automatic testing system • Unit tests? • SimpleTest module? Why WTF? Context Observe Act Conclusion
  • 25. Step 3: Tech inventory • .htaccess: what are the specifications? (Drupal core update will destroy this) • Any third party connexions? • Solr, SSL, Web services, Databases Why WTF? Context Observe Act Conclusion
  • 26. Taking over existing Drupal projects ACTION PHASE Time to start playing around with the site Why WTF? Context Observe Act Conclusion
  • 27. Mark your territory Why WTF? Context Observe Act Conclusion
  • 28. A few beginner tips: • Don’t start working on the live site. • Create your own environment (or use a client dev environment) before touching anything • Make sure the configs are the same as the live website Why WTF? Context Observe Act Conclusion
  • 29. Don’t be scared of versionning • You’ll be married to the project, so don’t think it’s a an unnecessary evil • Import their branches to your VCS to see the site’s previous progress • Clean up the files • There is probably a lot of unnecessary files • DAMN YOU .DS_store and _notes !! Why WTF? Context Observe Act Conclusion
  • 30. Before performing updates • Check if the website you inherit has any « pendings » in update.php • Sometimes websites are buggy because this hasn’t been done in a while Why WTF? Context Observe Act Conclusion
  • 31. Perform updates • Step 1: Cross your fingers • Step 2: Update core and modules • Step 3: Check if the site is broken • Step 4: Rollback if necessary • drush pm-update –-lock=og Why WTF? Context Observe Act Conclusion
  • 32. Install the modules you like working with • PathoLogic • Automatically repairs URLs that client didn't write correctly • Path Redirect • Point missing urls to correct pages • Cache Exclude • Exclude pages from cache instead of disabling it to not slow down the site Why WTF? Context Observe Act Conclusion
  • 33. Start adressing the first client todos • Take control: Rebuild vs. Patch • You often feel you should either completely rebuild or just sloppily patch • If you can identify specific components that you can enhance – take the baby step to make the site better • You can flush stuff that is irrelevant Why WTF? Context Observe Act Conclusion
  • 34. Maintain your integrity • From now on, the site will be built according to your standards • Don’t be lazy because the rest of the site is not • Document your work • You’ll be more productive within your team Why WTF? Context Observe Act Conclusion
  • 35. Extra Quality Control • Changes you make have repercussions you might not expect • Test Front-end, Functionnality & code • Check our DrupalCamp Montreal conference : Devil’s in the details Why WTF? Context Observe Act Conclusion
  • 36. Your goal • OWN the website and become an expert with it • If the old team takes the website back, they shouldn’t feel it’s « theirs » anymore • You’re going to be working with the site for a long time, so you’d better like it Why WTF? Context Observe Act Conclusion
  • 37. Conclusion Why WTF? Context Observe Act Conclusion
  • 38. AGENCIES CLIENTS Why WTF? Context Observe Act Conclusion
  • 39. Why WTF? Context Observe Act Conclusion Be the web agency of their dreams • They want to trust you • Prove to your new client that you’re made for each other
  • 40. Which means • Take the time to listen and understand why your new client decided to leave their previous relationship • Take the time to get to know your new website in and out • Pretend you’re the one that built it in the first place – OWN IT Why WTF? Context Observe Act Conclusion
  • 41. Why WTF? Context Observe Act Conclusion