Let’s face it, there is more than one way to bake a cake, If the cake is your product idea, and the baker is your development team, there are lots of ways to get the end result.
Imagine you’ve got 2 bakers:
- The assembler, they make high quality cakes using pre-bought bases & icing. They have a massive catalogue of components from which they can buy to decorate their cakes, and they put it all together. They can’t always find exactly what is required, but they can usually get close enough
- The artisan, although they reuse recipes, they create high quality and complex cakes by custom baking all the complex bits. The easy bits are reused from known recipes, and the custom decorations are hand made to perfection
Although software products are very different to cakes (and less delicious), consider the following:
- Hello baker, we’ve gotten feedback from our audience, people are more likely to buy orange cakes, can we change the blue icing to be orange?
- Hello baker, you know the chocolate buttons baked into the cake? Yea we need to remove those, we’ve got to keep the calorie count down because of this new regulation
- Hello baker, we want to try brownies, can we make that work?
- Hello baker, I know we are using eggs, but veganism is getting a lot of traction, how do we ditch the eggs?
Although some of these are extreme, if your cakes must evolve over time, they could be valid requests, right?
Sometimes you might have to change fundamental parts of your cake to cater for changes in customer requirements/behaviour, or regulation in your industry.
The artisan builds knowledge in their own recipes over time, and can move quickly to react to trends. Nothing stops them from making these changes.
If the assembler has invested everything into the catalogue approach, and customers start demanding cakes which can’t be assembled from the catalogue, they’re in trouble – they might even need to abandon the assembler approach all together.
What has this got to do with WordPress?
“WordPress is open source software you can use to create a beautiful website, blog, or app.”
WordPress has several advantages which allow someone to quickly set up a web platform:
- A community with over 55,000 plugins
- A powerful content management system for managing a website
- A massive library of prebuilt templates to theme the website
- It can be extended, a developer can add their own features
In theory, this sounds like a great springboard for a new web platform:
“I can get 80% of the way there with plugins & a theme, I just need someone to tie it all together!”
Whist this is a dream approach, let us consider how your product might change over time, and how the assembler and artisan bakers reacted to that.
You must consider:
- Are you 100% sure your long requirements will not grow beyond the scope you’ve set now?
- If it will be outgrown, are you confident WordPress (or a combination of plugins) will cater for these requirements, without issue? How doomed is your product if you hit a limitation?
- If you are not going to leverage WordPress’s plugin library, then why use WordPress at all?
When to be an assembler, and knowing if WordPress is a good solution
If you’re building something which is a solved problem, be an assembler:
- You are building something which has been done lots of times before, like a blog
- You are building a website which only needs to serve content, requirements are not that complex and there are no custom workflows/processes which WordPress doesn’t handle out the box
- The requirements are known from the start, and are unlikely to change very much
If you know you’re building a Throwaway Prototype, it’s also OK to be an assembler – it’s a cheap way to prototype. You know your requirements will likely change rapidly, but you’re able to get most of the way there by meshing together plugins.
You know this will not last long and will begin to fail eventually, but it doesn’t matter as you’ll be taking what you’ve learned and starting again as an artisan later.
When to be an artisan, and build a custom web platform
If there is no clear off the shelf solution, and if WordPress would require cobbling together plugins, this is your best route:
- What you want to build is not common, or has not been done before
- You have big ideas for the platform which go beyond simple content management
- There will be complex workflows
- There will many different types of user accessing the platform
- The requirements are likely to change frequently
- To accomplish your task in WordPress, you will have to mesh together lots of plugins, building a bit of a Frankenstein’s monster
What will happen if I use WordPress anyway?
Be ready to throw away this product and start again later. If you know you’re building a Throwaway Prototype, then it is probably OK.
Otherwise, if have complex requirements, and use the ‘assembler’ approach with WordPress plugins, it may start well, but it will likely cost you more in the long run.
It will likely devolve into a situation where you use more resource firefighting and keeping the platform held together, rather than investing in further development to improve the platform. You’ll probably see that changing one thing seems to impact a completely different feature, it’s like whack-a-mole with bugs.
What can seem like a simple change on the face of it, requires a lot of time and consideration given a number of outside factors.
This is usually caused by the following:
- Plugins are ‘duct taped’ together to make them all co-exist, and this can be quite flimsy. Simple changes take a long time, and complex changes are out of the question
- A plugin update causes havoc as it now no longer interacts well with your carefully duct taped solution. Updating the platform is a stressful and risky experience
- Although WordPress itself may be a secure platform (although it has had its share of issues), the plugins are plagued with security vulnerabilities. Typical situations involve your data being stolen, or your users redirected to an adult website
This causes the following:
- Slow performance
- Increased cost over time
- Increased frustration
- Increased chance of a security incident
Can I have my cake, and eat it?
Yes! WordPress is a strong content management system used by more than 60 million websites worldwide, including 33.6% of the top 10 million websites.
Problems occur with WordPress when you try to make it do things outside of that strength.
To fix this, consider how you can split the responsibilities:
- If you need a website, use WordPress purely as a marketing tool, it acts as a website/blog/CMS which you’re able to update, and only serves marketing content. If you build a custom platform, it’s kept totally separate. The job of the WordPress website is to refer users to your custom-built web platform.
- You have a custom-built platform which is your product idea. A development team contributes to this regularly with new features, without any other constraints
How do I be an artisan with my budget?
The assembler approach looks attractive due to the up-front cost differences between that and the artisan approach. But if you have to throw away the assembler approach later, and start again from scratch anyway, which one actually carries the higher cost in the long run?
There are three key considerations to make when understanding a software project:
- Is the value understood if this project is delivered successfully? If so, is that value a comfortable Return on Investment on the budget required?
- What does your Minimum Viable Product look like? How do we test your assumption with the least time and resource possible?
- If you need to work on a tight budget to secure more funding, would and MVP or a Throwaway Prototype allow you to achieve this?
The artisan and assembler have equally valid approaches, their strengths shine depending on the project requirements.
- WordPress is great as a Content Management System, when you try to use it to do more than this, it’s costly in the long run
- If your platform has even moderate complexity, do not use WordPress to Frankenstein together a bunch of plugins unless you are building a Throwaway Prototype, use software developers to build this platform from scratch to create long term value
Wubbleyou are artisans, we work with you to understand the problems you face, and if there is no viable off the shelf solution, we work with you to build this.
We are value driven, in that we work with you to understand the Return on Investment the project would generate using an evidence driven approach, so we all understand why this project is worth undertaking, and how we will work with you to be a better business.