Managing any project that involves a CMS like WordPress can be tricky if you don’t have the right process or tools. Having managed over a hundred projects that involved WordPress I’ve seen every possible situation and learned some important tricks along the way. One of the most important distinctions is that how you manage a WordPress project will change based on context of the project. You won’t manage a custom theme build the same way you do a WordPress powered web application.
To that end, let’s look at the different types of WordPress projects you might encounter and tips on how to manage them.
Custom Web Application Development
WordPress no longer just a CMS, it has evolved into an application framework. This means you could manage a project where WordPress is being used for it’s application like capabilities. Some of the more notable capabilities include:
- The ability to manage structured, relational data
- User and permission management
- Templating capabilities
- Robust API
- Availability of caching solutions
In fact, WordPress might only exist on the backend. Meaning the application and associated data is managed and stored through the WordPress admin, but the user facing side is a separate front-end application.
Over the years I’ve managed WordPress web application projects like:
- Branch locator that fed a iOS app
- Custom client portals
- Custom construction bidding systems
- Process management system
- Custom membership management
- Custom social networks
These days there’s little that WordPress can’t do from a custom functionality standpoint. But let’s talk about what you need to know to manage a custom WordPress application project.
Managing Custom WordPress Web Applications
You need to understand you’re managing a software project. This isn’t building a website and it’s not like most other types of straight forward projects. Software projects are hard to manage. It’s difficult to define a good scope or set of requirements, it’s hard to estimate time (both in hours and estimated completion), bugs will occur so you’ll need someone who’s good a testing… and if you don’t understand the technology expect a learning curve so you can understand and communicate effectively with the developers.
My advice for these projects are as follows:
- Start small, define the smallest set of features possible where you still end up with something valuable — you can always build more later
- Clearly define the scope in painstaking detail. It’s critical you and the developers are on the same page.
- Consider taking an “Agile” approach to the project, this approach typically is more successful than “Waterfall”
- Find someone to test the software (Job title “QA Analysis” or “Quality Assurance Analysis”)
- Plan on having several iterations on the software after launch to address issues found once people start using it
When it comes to WordPress applications specifically, there are some important considerations:
- Hosting – where will this application live and how will you manage updates and back-ups?
- Tools and workflow – Use version control, consider package managers, lean on existing frameworks to speed up the process and reduce custom development
This is probably one of the most difficult types of project to manage. Expect the first few projects to be hard, but it will get easier!
Custom Theme/Website Development
As a robust CMS, WordPress is a great platform for custom websites. With a custom website, you’re starting with a default install of WordPress and building a custom theme specifically tailored to your needs. In this situation, the project is going to have more reliance on custom development both front and backend and will face different project management challenges compared to an “assembled” WordPress website. More on this later.
Managing Custom WordPress Theme Development
Building a custom theme is going to have different phases compared to using an existing theme. Specifically, someone needs to design the layouts. In both situations you’ll need to help the team identify site structure, required features, visual tone and branding… however with a custom theme you’ll need a designer to establish what the pages look like at various screen sizes.
Additionally, like the custom web application you’ll need to manage software development as well. Managing the design process can be tricky, people tend to be opinionated about what they like or don’t like and often times ones personal preferences are not that valuable. Here are some recommendations I’d have:
- Establish up front that design concepts should be reviewed from your user personas perspective and that personal preferences are not relevant
- Limited feedback to two rounds of revisions, this means all feedback needs to be collected in entirety before revisions are made
From a development standpoint, expect the following:
- Front end developers don’t always have a good design eye. Make sure you plan on having frequent check-ins between design and development.
- Browser and device testing takes a long time, plan for it and find good tools to make it easier
Assembled Web Applications
With a vast array of existing plugins, you can often build custom tailored web applications simply by interconnecting existing plugins. There are plugin solutions for forms, eLearning, forums, social networks, donations, eCommerce, memberships, opt-ins, client portals, project management tools, etc… etc..
Many popular plugins have integrations for other popular plugins, allowing you to interconnect them without having to do any custom development. For example, Project Panorama has a WooCommerce integration that allows users to “purchase” a project. Similarly, you can integration LearnDash with GamiPress to create rich learning experiences with badges, points, and awards.
If most of the custom functionality is going to be done through assembling existing plugin solutions, you’ll manage the project significantly different compared to the full custom which will be more development heavy.
Managing Assembled Web Applications
Planning and compromise are the two important factors when managing projects where you leverage existing solutions. Taking the time to really understand what each plugin does and doesn’t do will go a long way. Also keep in mind that because you’re using existing solutions and not building something custom you’re going to have to make compromises along the way. It’s impossible to build a mass market plugin that fits every situation, inevitably you’ll have to work with what you have and work around the limitations or forgo certain features until your budget supports the required custom development.
Some tips to consider include:
- Consider premium plugins over free ones. There is more incentive to improve the plugins over time and if something goes wrong you have a team who will help you.
- Budget for the premium plugins and realize there is typically a yearly fee
- Don’t forget about SAAS solutions like Zapier, they could help you build the system you need without needing custom development
- Find someone who’s super savvy – ideally not a developer (they will be more creative in finding a solution without code!)
Similar to custom functional assembly, you might manage a WordPress project where an existing theme is installed, configured and built out to create a website. In this situation, you’re more limited to the capabilities of the theme and will have little to no custom development to manage.
Managing Theme Customizations
Like assembled web applications this project will heavily rely on planning and compromise. While there are lots of themes available that are extremely customizable, it typically comes at a cost. The more customizable the theme is, the more effort required to customize it and often the more bloated the theme is as well. Immediately you should identify your budget and talk to theme customizers to see if you should find a theme that’s a close match out of the box (like something from StudioPress) or use a more “blank canvas” theme like Divi.
Some tips to help you manage the process:
- It’s still worth hiring a designer, many themes demo well but fall apart when you put in your own content. A designer can better identify how to make your content look best.
- Still plan on testing the theme. It’s common for themes to need tweaks, especially at mobile sizes, to display well across all devices.
- If you have stakeholders who are opinionated about the design, set expectations about what can and can’t be changed within the confines of your selected theme.
- Similar to a custom theme, limit design revisions to two rounds. This will keep everyone focused and prevent endless iterations, blown budgets, and missed deadlines.
Since WordPress is a content management system there might be times where you’re managing projects that simply involve managing and publishing content. In these cases, you’re unlikely to be adding or changing features on the website and it’s more about editorial workflow.
For example some users might be able to author content, but need approval before publishing. Some users won’t be authoring any content, just reviewing. In these cases you can lean on the built in user capabilities that natively exist in WordPress. The immediately relevant and pre-existing user roles are as follows:
- Administrator – somebody who has access to all the administration features within a single site.
- Editor – somebody who can publish and manage posts including the posts of other users.
- Author – somebody who can publish and manage their own posts.
- Contributor – somebody who can write and manage their own posts but cannot publish them.
Depending on your situation, you might want to assemble a custom workflow for post submissions, review and approvals using tools like GravityFlow and Gravity Forms. We’ve built systems like this where contributors would submit ideas for articles, management would review and provide feedback, contributors would then revise and ultimately get approval. Much of this was done without custom development simply by using the two plugins mentioned above.
On-going Updates and Iterations
WordPress websites and applications are not static entities. They’re living, breathing and evolving organisms. Like all living beings, if you don’t care for your WordPress installation it will decay over time. You’ll need to manage WordPress on-going regardless of project type.
At a minimum you’ll need to ensure software updates are regularly tested and installed. This will ensure your WordPress installation is free from known security vulnerabilities and will prevent costly clean-up after a website hack. Beyond basic maintenance it’s important to evolve and improve on your project over time.
If you’re managing a content based website, each day that passes the website design will feel older and the content will become less relevant. Rather than manage the project like a book, where every few years you release a new edition, manage the project like a periodical. Plan out regular iterations and improvements, releasing new features, content or updates to the design on a weekly, bi-weekly, or monthly basis.
The same is true when it comes to a web application. While the visual design and content will be less of a factor, it’s important to continually iterate on the web application based on user feedback and performance data to extend the lifespan of your investment. Similarly you should plan on managing regular iterations (or sprints) where new features are launched on a consistent schedule.
Before you start planning updates or even maintenance it’s important you have the proper website “environments.” An environment is essentially a duplication of your WordPress install hosted in a location. Right now if nothing else you have what’s called a “production environment.” This is your WordPress website that you’re actively using and sending traffic to. Ideally you’d have at least one additional environment specifically used for testing. In this situation you duplicate your website or web application so when it’s time to test changes or software updates you can confirm everything works as intended prior to rolling it out to all users.
Most managed WordPress hosting companies like Flywheel, WP Engine, LiquidWeb, all make setting up staging environments extremely easy. Flywheel for example has a one click install and one click reset. If you’re not using managed WordPress hosting you might have to jump through some hoops to create a new user account, duplicate your WordPress install and upload it to the new account. This will be worth the effort as you’ll be able to ensure continued performance and safe changes as you iterate and improve your website.