I like the phrase “non-negotiable”. There is no quicker way to cut the crap and get down to business.
This isn’t a post about new and hip web development tools that everyone should be using. Don’t get me wrong, I like using Sass and Grunt while playing around with Vagrant but these aren’t non-negotiables. Non-negotiables are those tools and techniques that we have no excuse for not implementing in our development processes right now.
Disclaimer
This isn’t a condemnation of anyone not following these practices. I’m in a unique position of transition at the moment and am focusing these non-negotiables towards myself since I’ve had a bit of inconsistency in implementing them in the past.
Staging / Development Area
Do you like to code cowboy style?
A staging area is the final place to test new features and other changes to your site before taking them live. If you are working on personal sites, having a staging area will help save headaches that can arise when simple changes don’t quite work the way you expect them to. Your site will still be live and functional while issues within the staging area are being resolved.
This is especially crucial when working on client sites. When we recognize that many times our client’s websites are their livelihoods, not implementing a staging area means that we are playing games with our client’s livelihood.
Quick WP Resources
- WP Engine – Each site on WP Engine comes with a button to automatically create a staging site that is an exact replica of your current site. Once created, you can make your changes to the staging area and instantly sync those changes to your live site.
- WP Migrate DB Pro – Sync databases between multiple WordPress installs. Particularly useful if you’re using Git or SVN to keep files in sync between multiple installs.
Version Control
Speaking of Git or SVN, implementing version control should also be a non-negotiable for modern web development. This one is especially crucial if you work in an environment with other developers. I have lost countless hours of work over the years because of inconsistent implementation of version control practices (many times with absolutely no version control implemented). It’s a scary and frustrating feeling when code just disappears from a server and the only consolation is a coworker saying, “oops, sorry about that”. It’s not their fault, its a procedural issue.
It can seem daunting, particularly if you’re someone that is leery of the Terminal, but services like Github have definitely lowered the barrier of entry with GUI applications to make the process simpler to manage.
Quick Resources
See! that wasn’t as bad as you thought right? Any others you think should be added to this list?
Blake Imeson says
I’d add…
Automatic site backups, preferably that are easy to rollback.
WPengine has this covered handily but if you run a dedicated server you can set it up to take daily account backups.
Hand-in-hand with that would be a procedure you always follow when working on a site. It should always start with creating a rollback point. Some of your versioning and staging points would cover this but extra precautions can save from aggravation.
Matthew Farley says
Great post, Josh.
In an effort to streamline our project timelines and generate revenue ASAP, we may be tempted to skip these safety measures, but for those of us who can’t seem to get it right, every time, these truly are must-haves.