SlideShare a Scribd company logo
1 of 35
Secret Ingredients for A Better Web
How Not to Be Conned
by Your Drupal Vendor!
Secret Ingredients for A Better Web
http://dilbert.com/strips/comic/2002-03-27/
Secret Ingredients for A Better Web
•  SJ for short, Solihin Jinata is my full name
•  Co-founder of Pixel Onion
•  Started from Drupal 5
•  Drupal experience:
developer, site builder, solution architect, “part-time” themer
•  Drupal projects & clients:
Earth Hour, SMUv, SingTel, Scholastic, Oradan, I2R, NIE,
Stanley Black & Decker, PlugIn@Blk71, CapitaLand
v SMU site won Acquia Partner Site of the Year Awards for higher education category in 2013
About me
Secret Ingredients for A Better Web
Topic background
•  Recently we encountered more and more Drupal projects handed to
us in terrible conditions
•  Local community members have seen and heard Drupal sites having
more than their fair share of lousy implementation
•  Having lousy implementation is bad for whole Drupal industry, locally
and globally, as it damages Drupal reputation
•  While it is hard to agree on what it means to have the right Drupal
implementation, it is easier to spot bad Drupal site by simply
checking how it is themed, built and customised
•  Despite the title, this presentation aims to shed some lights to both
clients & vendors on how to execute acceptable Drupal projects,
focusing on asking the following 10 questions
Secret Ingredients for A Better Web
Here are 10 questions you can ask
yourself and/or your vendors
Secret Ingredients for A Better Web
1. What am I building?
Secret Ingredients for A Better Web
Simple site?
Secret Ingredients for A Better Web
Complex site?
Secret Ingredients for A Better Web
•  Static vs dynamic site
•  Closed vs membership site
•  Corporate vs commerce site
•  100 visitors vs >1,000,000 visitors per month
•  US$100 project vs >US$100,000 project
Any combination of the above may give you different
solutions: WordPress, Joomla, Drupal, Magento, Shopify,
or custom build with PHP framework. Or even other
languages: Python, Ruby, .NET, etc.
Know your scope
Secret Ingredients for A Better Web
•  Are you clear on what kind of site you want to build?
•  Does the vendor try to understand you and offer different
solutions or advices?
For the remaining slides, the context is:
building scalable and easily maintainable site for medium-large
organisations, while empowering laymen to do simple updates to
the site without breaking anything
Know your scope
Secret Ingredients for A Better Web
2. How is the project managed?
Secret Ingredients for A Better Web
•  Waterfall?? Agile!!!
•  Time constraint: deploying custom Drupal site within 1
week might be impossible
•  Tools
Pivotal Tracker, Basecamp, Asana, Redmine, Trello
•  Issue tracker
•  Frequent interaction and communication for project
updates
Project management
Secret Ingredients for A Better Web
3. Is the theme done the right way?
Secret Ingredients for A Better Web
Theming
Secret Ingredients for A Better Web
Theming
✖

 ✔
Secret Ingredients for A Better Web
•  MVC: separation of business logic and theming
•  Static sites are probably OK to hardcode? Dynamic sites
are BIG NO NO to hardcode
•  Theming using tons of .tpl.php?
Ø Advantage: version control
Ø Disadvantages: extremely difficult to visualise and
understand for non-developer, difficult to track how a
particular page is layout
Theming
Secret Ingredients for A Better Web
4. Is the site built to be future-proof?
Secret Ingredients for A Better Web
<h1>CURRENT COMPANIES</h1>
<ul>
<li>item1</li>
<li>item2</li>
<li>item3</li>
</ul>
Site building
or
=
?
Secret Ingredients for A Better Web
<h1>CURRENT COMPANIES</h1>
<ul>
<li>item1</li>
<li>item2</li>
<li>item3</li>
</ul>
Site building
or
=
?✖

 ✔
Secret Ingredients for A Better Web
•  Normally standard modules are used for extensibility:
Ø Core’s node, field API, taxonomy
Ø Views: why write SQL queries when we can point and click?
Ø Display suite
Ø Panels
Ø Context
Site building
Secret Ingredients for A Better Web
5. How about the high level
architecture?
Secret Ingredients for A Better Web
•  Usually there are more than 1 way to use Drupal to
achieve the same goal. How many ways does a vendor
know? Does a vendor know each pros & cons?
E.g. multisite is such a common requirement nowadays. The
following are alternative ways to achieve multisite: multi
machines/vhosts, multisite in sites folder, domain access,
organic group
•  Choice of modules and achieving requirement with least
# of modules
Architecture
Secret Ingredients for A Better Web
6. Is the site built with speed in mind?
Secret Ingredients for A Better Web
•  It is a humongous topic by itself
•  Various types of improvement/caching:
Ø Reverse proxy
Ø CDN
Ø Drupal caching (page/block/views/entity)
Ø Opcode caching (APC)
Ø DB query caching (memcache/redis)
Ø DB server optimisation
•  Some reference: http://goo.gl/YZZqM
Performance
Secret Ingredients for A Better Web
7. Do I need custom modules?
Secret Ingredients for A Better Web
•  Not everything needs to be custom built
•  One of the few reasons for choosing Drupal
Ø For business people: ~7,000 contributed modules
Ø Developers / hackers: great extensible core framework,
difficult to pick up at first, but little Computer Science
knowledge is required to do extensive customisation
à double edged sword that can render your site unscalable
•  Vendor can consider contributing patches instead of
creating new modules
“There’s a module for that!”
Secret Ingredients for A Better Web
8. Is the custom module developed with
Drupal coding standards?
Secret Ingredients for A Better Web
•  No hacking of core files or contrib modules!!
•  Have the vendor tried rules module instead?
•  Coding standards!! http://goo.gl/rTt5sx
For a non techie client, probably the easiest to observe. Your
site usually still works well with non-standard custom modules,
but you then wonder why the vendor doesn’t respect basic
Drupal coding standards.
Ø Indent of 2 spaces, not tab!
Ø No closing php tag ?>
Module development
Secret Ingredients for A Better Web
•  Are all db insertion and text rendering sanitised using
check_plain() or t() function?
•  You can install coder module to identify if the custom
modules are written to coding standard
•  You can install hacked module to identify if any core and
contrib modules are hacked
Module development
Secret Ingredients for A Better Web
9. How will future enhancements,
features, and maintenance be done?
Secret Ingredients for A Better Webhttp://atouchard.github.io/drupal-continuous-integration/
Secret Ingredients for A Better Web
•  For complex sites with many developers / vendors /
content populators, CI is a must
•  Simple sites will benefit, too
•  Complexity comes from the fact that <D7 database mixes
configuration and content, D8 aims to reduce or even
eliminate this complexity
Continuous Integration
Secret Ingredients for A Better Web
•  At least the following should be observed
Ø Version control with an agreed workflow
Ø Configuration management: the best so far is through
features module for D7, there is Configuration Management
Initiatives for D8 to make this much simpler
Ø Unit test of custom modules
•  More advanced topics
Ø Automatic build for creating staging server upon pull
request
Ø Automatic integration, functional test (behat)
Continuous Integration
Secret Ingredients for A Better Web
10. What’s my gut feel about this
vendor?
Secret Ingredients for A Better Web
Thank you!
sj at pixelonion.com

More Related Content

What's hot

Responsive Design in Drupal with Zen and Zen Grids
Responsive Design in Drupal with Zen and Zen GridsResponsive Design in Drupal with Zen and Zen Grids
Responsive Design in Drupal with Zen and Zen GridsSuzanne Dergacheva
 
How to make WordPress your friend
How to make WordPress your friendHow to make WordPress your friend
How to make WordPress your friendKerch McConlogue
 
WordPress SEO 101 - Dayton 2016 WordCamp
WordPress SEO 101 - Dayton 2016 WordCampWordPress SEO 101 - Dayton 2016 WordCamp
WordPress SEO 101 - Dayton 2016 WordCampAngela Bergmann
 
11 Amazing things I Learnt At Word Camp Sydney 2014
11 Amazing things I Learnt At Word Camp Sydney 201411 Amazing things I Learnt At Word Camp Sydney 2014
11 Amazing things I Learnt At Word Camp Sydney 2014WordPressBrisbane
 
HK CodeConf 2015 - Your WebPerf Sucks
HK CodeConf 2015 - Your WebPerf Sucks HK CodeConf 2015 - Your WebPerf Sucks
HK CodeConf 2015 - Your WebPerf Sucks Holger Bartel
 
14 Things You Must Do Before Launching a Website
14 Things You Must Do Before Launching a Website14 Things You Must Do Before Launching a Website
14 Things You Must Do Before Launching a WebsiteZero Point Development
 
Tech Thursdays: Building Products
Tech Thursdays: Building ProductsTech Thursdays: Building Products
Tech Thursdays: Building ProductsHayden Bleasel
 
Automated testing DrupalCamp in Asheville
Automated testing DrupalCamp in AshevilleAutomated testing DrupalCamp in Asheville
Automated testing DrupalCamp in AshevillePromet Source
 
Requirements & Drupal: Planning for Successful Projects
Requirements & Drupal: Planning for Successful ProjectsRequirements & Drupal: Planning for Successful Projects
Requirements & Drupal: Planning for Successful ProjectsAcquia
 
Create Your Own Starter Files
Create Your Own Starter FilesCreate Your Own Starter Files
Create Your Own Starter FilesEmily Lewis
 
Drag-and-drop WordPress Themes, featuring Themify Builder
Drag-and-drop WordPress Themes, featuring Themify BuilderDrag-and-drop WordPress Themes, featuring Themify Builder
Drag-and-drop WordPress Themes, featuring Themify BuilderEast Bay WordPress Meetup
 
DevOps for Drupal: Why We Cook With Chef
DevOps for Drupal: Why We Cook With ChefDevOps for Drupal: Why We Cook With Chef
DevOps for Drupal: Why We Cook With ChefPromet Source
 
Cheat Sheet to a Lean Website
Cheat Sheet to a Lean WebsiteCheat Sheet to a Lean Website
Cheat Sheet to a Lean WebsiteBarbara Bermes
 
Zurb foundation
Zurb foundationZurb foundation
Zurb foundationsean_todd
 
WordPress Hosting Basics
WordPress Hosting BasicsWordPress Hosting Basics
WordPress Hosting BasicsChris Burgess
 
WordPress Themes Demystified
WordPress Themes DemystifiedWordPress Themes Demystified
WordPress Themes DemystifiedChris Burgess
 
Drupal project timeline
Drupal project timelineDrupal project timeline
Drupal project timelineArdi Hundt
 

What's hot (20)

Responsive Design in Drupal with Zen and Zen Grids
Responsive Design in Drupal with Zen and Zen GridsResponsive Design in Drupal with Zen and Zen Grids
Responsive Design in Drupal with Zen and Zen Grids
 
How to make WordPress your friend
How to make WordPress your friendHow to make WordPress your friend
How to make WordPress your friend
 
WordPress SEO 101 - Dayton 2016 WordCamp
WordPress SEO 101 - Dayton 2016 WordCampWordPress SEO 101 - Dayton 2016 WordCamp
WordPress SEO 101 - Dayton 2016 WordCamp
 
11 Amazing things I Learnt At Word Camp Sydney 2014
11 Amazing things I Learnt At Word Camp Sydney 201411 Amazing things I Learnt At Word Camp Sydney 2014
11 Amazing things I Learnt At Word Camp Sydney 2014
 
HK CodeConf 2015 - Your WebPerf Sucks
HK CodeConf 2015 - Your WebPerf Sucks HK CodeConf 2015 - Your WebPerf Sucks
HK CodeConf 2015 - Your WebPerf Sucks
 
14 Things You Must Do Before Launching a Website
14 Things You Must Do Before Launching a Website14 Things You Must Do Before Launching a Website
14 Things You Must Do Before Launching a Website
 
Tech Thursdays: Building Products
Tech Thursdays: Building ProductsTech Thursdays: Building Products
Tech Thursdays: Building Products
 
Automated testing DrupalCamp in Asheville
Automated testing DrupalCamp in AshevilleAutomated testing DrupalCamp in Asheville
Automated testing DrupalCamp in Asheville
 
Requirements & Drupal: Planning for Successful Projects
Requirements & Drupal: Planning for Successful ProjectsRequirements & Drupal: Planning for Successful Projects
Requirements & Drupal: Planning for Successful Projects
 
Create Your Own Starter Files
Create Your Own Starter FilesCreate Your Own Starter Files
Create Your Own Starter Files
 
Website
WebsiteWebsite
Website
 
Drag-and-drop WordPress Themes, featuring Themify Builder
Drag-and-drop WordPress Themes, featuring Themify BuilderDrag-and-drop WordPress Themes, featuring Themify Builder
Drag-and-drop WordPress Themes, featuring Themify Builder
 
DevOps for Drupal: Why We Cook With Chef
DevOps for Drupal: Why We Cook With ChefDevOps for Drupal: Why We Cook With Chef
DevOps for Drupal: Why We Cook With Chef
 
Cheat Sheet to a Lean Website
Cheat Sheet to a Lean WebsiteCheat Sheet to a Lean Website
Cheat Sheet to a Lean Website
 
Zurb foundation
Zurb foundationZurb foundation
Zurb foundation
 
WordPress Hosting Basics
WordPress Hosting BasicsWordPress Hosting Basics
WordPress Hosting Basics
 
WordPress for Designers
WordPress for DesignersWordPress for Designers
WordPress for Designers
 
WordPress Themes Demystified
WordPress Themes DemystifiedWordPress Themes Demystified
WordPress Themes Demystified
 
Web design basics_01
Web design basics_01Web design basics_01
Web design basics_01
 
Drupal project timeline
Drupal project timelineDrupal project timeline
Drupal project timeline
 

Similar to How Not to Be Conned by Your Drupal Vendor!

The things we found in your website
The things we found in your websiteThe things we found in your website
The things we found in your websitehernanibf
 
Devconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developedDevconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developedAlexander Makarov
 
Oxford DrupalCamp 2012 - The things we found in your website
Oxford DrupalCamp 2012 - The things we found in your websiteOxford DrupalCamp 2012 - The things we found in your website
Oxford DrupalCamp 2012 - The things we found in your websitehernanibf
 
One drupal to rule them all - Drupalcamp Caceres
One drupal to rule them all - Drupalcamp CaceresOne drupal to rule them all - Drupalcamp Caceres
One drupal to rule them all - Drupalcamp Cacereshernanibf
 
5 Common Mistakes You are Making on your Website
 5 Common Mistakes You are Making on your Website 5 Common Mistakes You are Making on your Website
5 Common Mistakes You are Making on your WebsiteAcquia
 
Untangling the web11
Untangling the web11Untangling the web11
Untangling the web11Derek Jacoby
 
Absolute Beginners Guide to Drupal
Absolute Beginners Guide to DrupalAbsolute Beginners Guide to Drupal
Absolute Beginners Guide to DrupalRod Martin
 
WTF: Where To Focus when you take over a Drupal project
WTF: Where To Focus when you take over a Drupal projectWTF: Where To Focus when you take over a Drupal project
WTF: Where To Focus when you take over a Drupal projectSymetris
 
DNN-Connect 2019: DNN Horror Stories
DNN-Connect 2019: DNN Horror StoriesDNN-Connect 2019: DNN Horror Stories
DNN-Connect 2019: DNN Horror StoriesWill Strohl
 
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
 
Delivering Fantastic Brand Experiences With Low-Code
Delivering Fantastic Brand Experiences With Low-CodeDelivering Fantastic Brand Experiences With Low-Code
Delivering Fantastic Brand Experiences With Low-CodeCyber-Duck
 
Prototyping like it is 2022
Prototyping like it is 2022 Prototyping like it is 2022
Prototyping like it is 2022 Michael Yagudaev
 
DrupalCon Austin - Absolute Beginner's Guide to Drupal
DrupalCon Austin - Absolute Beginner's Guide to DrupalDrupalCon Austin - Absolute Beginner's Guide to Drupal
DrupalCon Austin - Absolute Beginner's Guide to DrupalRod Martin
 
Out With the Old, in With the Open-source: Brainshark's Complete CMS Migration
Out With the Old, in With the Open-source: Brainshark's Complete CMS MigrationOut With the Old, in With the Open-source: Brainshark's Complete CMS Migration
Out With the Old, in With the Open-source: Brainshark's Complete CMS MigrationAcquia
 
HyperDB, MySQL Performance, & Flavors of MySQL
HyperDB, MySQL Performance, & Flavors of MySQLHyperDB, MySQL Performance, & Flavors of MySQL
HyperDB, MySQL Performance, & Flavors of MySQLEvan Volgas
 
Untangling spring week1
Untangling spring week1Untangling spring week1
Untangling spring week1Derek Jacoby
 
Drupal 7 Search Engine Optimisation
Drupal 7 Search Engine OptimisationDrupal 7 Search Engine Optimisation
Drupal 7 Search Engine OptimisationPeter Macinkovic
 

Similar to How Not to Be Conned by Your Drupal Vendor! (20)

The things we found in your website
The things we found in your websiteThe things we found in your website
The things we found in your website
 
My website is live now what?
My website is live now what?My website is live now what?
My website is live now what?
 
Devconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developedDevconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developed
 
Oxford DrupalCamp 2012 - The things we found in your website
Oxford DrupalCamp 2012 - The things we found in your websiteOxford DrupalCamp 2012 - The things we found in your website
Oxford DrupalCamp 2012 - The things we found in your website
 
One drupal to rule them all - Drupalcamp Caceres
One drupal to rule them all - Drupalcamp CaceresOne drupal to rule them all - Drupalcamp Caceres
One drupal to rule them all - Drupalcamp Caceres
 
5 Common Mistakes You are Making on your Website
 5 Common Mistakes You are Making on your Website 5 Common Mistakes You are Making on your Website
5 Common Mistakes You are Making on your Website
 
Untangling the web11
Untangling the web11Untangling the web11
Untangling the web11
 
Shaun-Ellis-feb25
Shaun-Ellis-feb25Shaun-Ellis-feb25
Shaun-Ellis-feb25
 
Absolute Beginners Guide to Drupal
Absolute Beginners Guide to DrupalAbsolute Beginners Guide to Drupal
Absolute Beginners Guide to Drupal
 
WTF: Where To Focus when you take over a Drupal project
WTF: Where To Focus when you take over a Drupal projectWTF: Where To Focus when you take over a Drupal project
WTF: Where To Focus when you take over a Drupal project
 
DNN-Connect 2019: DNN Horror Stories
DNN-Connect 2019: DNN Horror StoriesDNN-Connect 2019: DNN Horror Stories
DNN-Connect 2019: DNN Horror Stories
 
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
 
Delivering Fantastic Brand Experiences With Low-Code
Delivering Fantastic Brand Experiences With Low-CodeDelivering Fantastic Brand Experiences With Low-Code
Delivering Fantastic Brand Experiences With Low-Code
 
Managed WordPress Demystified
Managed WordPress DemystifiedManaged WordPress Demystified
Managed WordPress Demystified
 
Prototyping like it is 2022
Prototyping like it is 2022 Prototyping like it is 2022
Prototyping like it is 2022
 
DrupalCon Austin - Absolute Beginner's Guide to Drupal
DrupalCon Austin - Absolute Beginner's Guide to DrupalDrupalCon Austin - Absolute Beginner's Guide to Drupal
DrupalCon Austin - Absolute Beginner's Guide to Drupal
 
Out With the Old, in With the Open-source: Brainshark's Complete CMS Migration
Out With the Old, in With the Open-source: Brainshark's Complete CMS MigrationOut With the Old, in With the Open-source: Brainshark's Complete CMS Migration
Out With the Old, in With the Open-source: Brainshark's Complete CMS Migration
 
HyperDB, MySQL Performance, & Flavors of MySQL
HyperDB, MySQL Performance, & Flavors of MySQLHyperDB, MySQL Performance, & Flavors of MySQL
HyperDB, MySQL Performance, & Flavors of MySQL
 
Untangling spring week1
Untangling spring week1Untangling spring week1
Untangling spring week1
 
Drupal 7 Search Engine Optimisation
Drupal 7 Search Engine OptimisationDrupal 7 Search Engine Optimisation
Drupal 7 Search Engine Optimisation
 

Recently uploaded

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
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
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 

Recently uploaded (20)

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
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
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 

How Not to Be Conned by Your Drupal Vendor!

  • 1. Secret Ingredients for A Better Web How Not to Be Conned by Your Drupal Vendor!
  • 2. Secret Ingredients for A Better Web http://dilbert.com/strips/comic/2002-03-27/
  • 3. Secret Ingredients for A Better Web •  SJ for short, Solihin Jinata is my full name •  Co-founder of Pixel Onion •  Started from Drupal 5 •  Drupal experience: developer, site builder, solution architect, “part-time” themer •  Drupal projects & clients: Earth Hour, SMUv, SingTel, Scholastic, Oradan, I2R, NIE, Stanley Black & Decker, PlugIn@Blk71, CapitaLand v SMU site won Acquia Partner Site of the Year Awards for higher education category in 2013 About me
  • 4. Secret Ingredients for A Better Web Topic background •  Recently we encountered more and more Drupal projects handed to us in terrible conditions •  Local community members have seen and heard Drupal sites having more than their fair share of lousy implementation •  Having lousy implementation is bad for whole Drupal industry, locally and globally, as it damages Drupal reputation •  While it is hard to agree on what it means to have the right Drupal implementation, it is easier to spot bad Drupal site by simply checking how it is themed, built and customised •  Despite the title, this presentation aims to shed some lights to both clients & vendors on how to execute acceptable Drupal projects, focusing on asking the following 10 questions
  • 5. Secret Ingredients for A Better Web Here are 10 questions you can ask yourself and/or your vendors
  • 6. Secret Ingredients for A Better Web 1. What am I building?
  • 7. Secret Ingredients for A Better Web Simple site?
  • 8. Secret Ingredients for A Better Web Complex site?
  • 9. Secret Ingredients for A Better Web •  Static vs dynamic site •  Closed vs membership site •  Corporate vs commerce site •  100 visitors vs >1,000,000 visitors per month •  US$100 project vs >US$100,000 project Any combination of the above may give you different solutions: WordPress, Joomla, Drupal, Magento, Shopify, or custom build with PHP framework. Or even other languages: Python, Ruby, .NET, etc. Know your scope
  • 10. Secret Ingredients for A Better Web •  Are you clear on what kind of site you want to build? •  Does the vendor try to understand you and offer different solutions or advices? For the remaining slides, the context is: building scalable and easily maintainable site for medium-large organisations, while empowering laymen to do simple updates to the site without breaking anything Know your scope
  • 11. Secret Ingredients for A Better Web 2. How is the project managed?
  • 12. Secret Ingredients for A Better Web •  Waterfall?? Agile!!! •  Time constraint: deploying custom Drupal site within 1 week might be impossible •  Tools Pivotal Tracker, Basecamp, Asana, Redmine, Trello •  Issue tracker •  Frequent interaction and communication for project updates Project management
  • 13. Secret Ingredients for A Better Web 3. Is the theme done the right way?
  • 14. Secret Ingredients for A Better Web Theming
  • 15. Secret Ingredients for A Better Web Theming ✖ ✔
  • 16. Secret Ingredients for A Better Web •  MVC: separation of business logic and theming •  Static sites are probably OK to hardcode? Dynamic sites are BIG NO NO to hardcode •  Theming using tons of .tpl.php? Ø Advantage: version control Ø Disadvantages: extremely difficult to visualise and understand for non-developer, difficult to track how a particular page is layout Theming
  • 17. Secret Ingredients for A Better Web 4. Is the site built to be future-proof?
  • 18. Secret Ingredients for A Better Web <h1>CURRENT COMPANIES</h1> <ul> <li>item1</li> <li>item2</li> <li>item3</li> </ul> Site building or = ?
  • 19. Secret Ingredients for A Better Web <h1>CURRENT COMPANIES</h1> <ul> <li>item1</li> <li>item2</li> <li>item3</li> </ul> Site building or = ?✖ ✔
  • 20. Secret Ingredients for A Better Web •  Normally standard modules are used for extensibility: Ø Core’s node, field API, taxonomy Ø Views: why write SQL queries when we can point and click? Ø Display suite Ø Panels Ø Context Site building
  • 21. Secret Ingredients for A Better Web 5. How about the high level architecture?
  • 22. Secret Ingredients for A Better Web •  Usually there are more than 1 way to use Drupal to achieve the same goal. How many ways does a vendor know? Does a vendor know each pros & cons? E.g. multisite is such a common requirement nowadays. The following are alternative ways to achieve multisite: multi machines/vhosts, multisite in sites folder, domain access, organic group •  Choice of modules and achieving requirement with least # of modules Architecture
  • 23. Secret Ingredients for A Better Web 6. Is the site built with speed in mind?
  • 24. Secret Ingredients for A Better Web •  It is a humongous topic by itself •  Various types of improvement/caching: Ø Reverse proxy Ø CDN Ø Drupal caching (page/block/views/entity) Ø Opcode caching (APC) Ø DB query caching (memcache/redis) Ø DB server optimisation •  Some reference: http://goo.gl/YZZqM Performance
  • 25. Secret Ingredients for A Better Web 7. Do I need custom modules?
  • 26. Secret Ingredients for A Better Web •  Not everything needs to be custom built •  One of the few reasons for choosing Drupal Ø For business people: ~7,000 contributed modules Ø Developers / hackers: great extensible core framework, difficult to pick up at first, but little Computer Science knowledge is required to do extensive customisation à double edged sword that can render your site unscalable •  Vendor can consider contributing patches instead of creating new modules “There’s a module for that!”
  • 27. Secret Ingredients for A Better Web 8. Is the custom module developed with Drupal coding standards?
  • 28. Secret Ingredients for A Better Web •  No hacking of core files or contrib modules!! •  Have the vendor tried rules module instead? •  Coding standards!! http://goo.gl/rTt5sx For a non techie client, probably the easiest to observe. Your site usually still works well with non-standard custom modules, but you then wonder why the vendor doesn’t respect basic Drupal coding standards. Ø Indent of 2 spaces, not tab! Ø No closing php tag ?> Module development
  • 29. Secret Ingredients for A Better Web •  Are all db insertion and text rendering sanitised using check_plain() or t() function? •  You can install coder module to identify if the custom modules are written to coding standard •  You can install hacked module to identify if any core and contrib modules are hacked Module development
  • 30. Secret Ingredients for A Better Web 9. How will future enhancements, features, and maintenance be done?
  • 31. Secret Ingredients for A Better Webhttp://atouchard.github.io/drupal-continuous-integration/
  • 32. Secret Ingredients for A Better Web •  For complex sites with many developers / vendors / content populators, CI is a must •  Simple sites will benefit, too •  Complexity comes from the fact that <D7 database mixes configuration and content, D8 aims to reduce or even eliminate this complexity Continuous Integration
  • 33. Secret Ingredients for A Better Web •  At least the following should be observed Ø Version control with an agreed workflow Ø Configuration management: the best so far is through features module for D7, there is Configuration Management Initiatives for D8 to make this much simpler Ø Unit test of custom modules •  More advanced topics Ø Automatic build for creating staging server upon pull request Ø Automatic integration, functional test (behat) Continuous Integration
  • 34. Secret Ingredients for A Better Web 10. What’s my gut feel about this vendor?
  • 35. Secret Ingredients for A Better Web Thank you! sj at pixelonion.com