WordPress is growing at an accelerating pace. With this growth, the ubiquity of WordPress is gaining the attention of enterprise-level companies who want an easy and maintainable way to manage their content. That’s great for developers and agencies, right? But what does that mean when you’re actually working for a client named Microsoft or Uber or the United States Government(!)? How do the rules change and how can you shift your brain from “I build WordPress sites for small businesses and non-profits and myself” to “I build enterprise-level WordPress-powered sites for Fortune 500 companies”? This talk will cover specific tools and best practices used by the development teams at WebDevStudios that have been applied to projects for clients like Microsoft, the National Park Service, Campbell’s Soup, the Discovery Channel and more, as well as some tips for dealing with the inevitable imposter syndrome associated with working for brands you use in your home or with team members you know from books you’ve read or podcasts you listen to.
15. LESSONSLEARNED
▸ Don’t use Genesis
▸ Decouple functionality from the theme
▸ Build functionality into plugins that can be activated or
deactivated (instead of mu-plugins)
▸ Establish and enforce code standards
▸ DOCUMENT YOUR CODE!!!
BUILDING WORDPRESS FOR ENTERPRISE CLIENTS
16. BUILDING WORDPRESS FOR ENTERPRISE CLIENTS
GENESIS…
▸ wd_s, a fork of _s
▸ https://github.com/WebDevStudios/wd_s
▸ http://wdunderscores.com
▸ “living document” of code standards
▸ built-in a11y, easy-to-read code, documented
17. BUILDING WORDPRESS FOR ENTERPRISE CLIENTS
CODESTANDARDS
▸ WordPress PHP/JS/CSS standards
▸ Standard naming scheme
▸ WDS {Client Name} {Name of Plugin}
▸ wds-client-plugin-name
▸ WDS_Client_Class_Name
▸ https://github.com/WebDevStudios/generator-plugin-wp
18. BUILDING WORDPRESS FOR ENTERPRISE CLIENTS
REQUIREDPLUGINS
▸ WDS Required Plugins
▸ https://github.com/WebDevStudios/WDS-Required-
Plugins
21. BUILDING WORDPRESS FOR ENTERPRISE CLIENTS
SCALABLEDEVELOPMENTENVIRONMENT
▸ What does that mean?
▸ Vagrant/VVV/vv
▸ ServerPress
▸ Digital Ocean droplet/remote development
▸ MAMP Pro
25. BUILDING WORDPRESS FOR ENTERPRISE CLIENTS
TOOLS
▸ Required plugins
▸ https://github.com/WebDevStudios/WDS-Required-
Plugins
▸ xDebug
▸ Some kind of scalable local development environment
▸ MAMP (free), XAMPP, WAMP don’t count
26. BUILDING WORDPRESS FOR ENTERPRISE CLIENTS
IS_WDS_ADMIN
▸ https://github.com/WebDevStudios/is_wds_admin
▸ Debugging information
▸ Developer-only screens (hidden taxonomies/post types)
27.
28. BUILDING WORDPRESS FOR ENTERPRISE CLIENTSTEXT
STREAM
▸ https://wordpress.org/plugins/stream/
▸ Track who does what in WordPress admin
33. HOW I LEARNED TO STOP WORRYING AND DEAL WITH MY IMPOSTER
SYNDROME
STRATEGIESFORDEALINGWITHIMPOSTERSYNDROME
▸ Ask questions! Learn from your peers
▸ Everyone starts from the same place
▸ Recognize what you’re good at
▸ Know your weaknesses
▸ Never stop learning
▸ *cough* https://pluralsight.com *cough*
34. HOW I LEARNED TO STOP WORRYING AND DEAL WITH MY IMPOSTER
SYNDROME
HELPING OTHERSDEALWITHTHEIR IMPOSTERSYNDROME
▸ Acknowledge when your coworkers/peers are doing a
good job
▸ Thank them!
▸ Mentor
▸ Explain why
▸ Everyone has different strengths/weaknesses
▸ You’re only as smart as your team/peers (and Google Fu)
i’m chris reynolds
before I was WordPress developer lead at WDS
I made some online training videos for Pluralsight
I did support, and some amount of project management and development for Event Espresso
before that I freelanced for several years while also working at Whole Foods
before that I spent a number of years doing tech support…
So why is this guy talking to…
these folks…
being interviewed by this guy
who’s responsible for this podcast that I listen to
and these books that are sitting on my shelf
and this guy, who’s also written a book about WordPress, this one about building web apps — both of whom say that they think that I’d be a good fit at WDS…
and this smart lady…sorry…
THIS smart lady — who’s written the entire WordPress for dummies series?
I have no idea. At least, I have no idea when I’m first hired by WebDev and sent to work with…
this very small organization, the National Park Service.
At this point in the development, WDS had been working on this project for over a year
there was no acting developer lead — brian richards had left to start wp sessions the friday before i started
the project scope was vague
and the direction I got from my front-end lead — who’d been working on the project since it started was this:
I won’t go into the details of the project
suffice to say we finished it, & got a second project from NPS which is currently being used by park rangers and other national park employees
rather than creating a plugin for each new piece of functionality, bundle client functionality into a single main plugin
if done well, and carefully, can be easier to debug than a dozen disparate plugins
what does “scalable” mean in the context of local development?
it means i can create any number of unique WordPress installs quickly easily
<intro to stream>
this has never happened to you, right?
you’re working on a live environment that the client has access to
you are making changes in the WordPress admin, defining settings or content
you save your changes and hand it off to the client
the client says “it’s not there”
lo and behold! they’re right. your changes are gone. what happened?
blaming the client (even if it’s true) would be catastrophic
beanstalk handles deployments
development server hosted on linode
master branch pushes to dev server
automatic deployment
prod branch pushes to production server
manual deployment
release branch pushes to staging server (if we’re using one)
automatic deployment
beanstalk connects via sftp
all this stuff is great
it’s great to have standards, it’s great to have good tools that make developing on an enterprise scale easier
but how do i deal with felling like i don’t belong amongst these really smart people who are far cooler than i am?