Imagine a client asks you to build them a website and a mobile application so that they can easily sell shoes online. If you’re like me, a nerdy web developer, you’d probably start planning how to get data on every single shoe that’s going to be on the site—there must be some JSON or XML APIs provided by manufacturers, or at least some regularly-updated CSV files, right?
This would prompt you think about how to properly import this data into eCommerce platforms that you might use to build the site. Then you’d probably start thinking about how to mass process, validate, and sanitize the data and categorize it by style, size, color, and manufacturer… These thoughts can quickly spiral out of control in a million different directions.
The reason for this somewhat obfuscated thought-process is simply because you haven’t built a site like this before. You don’t know what to expect. All you have are your assumptions.
Let me tell you a quick story.
When Nick Swinmurn started Zappos in 1999, he envisioned a site where could sell shoes—something similar to the goal of our imaginary client. He had to build an eCommerce site for shoes, in a time when web development was a novel industry.
He took pictures of the shoes he wanted to sell, posted them manually on his site—which at the time was called Shoesite—and then, when an order came in, he would go back to the store and ship the order to the customer.
The point of this anecdote is to show that even the founder of Zappos took on projects where all he had were assumptions guiding him. He still managed to be successful.
What Does This Have To Do With WordPress?
At this point, you may be wondering what this has to do with WordPress. I’m telling you this story because often times, when building a site, we start by thinking about what a site should do and how people will use it.
We write our requirements and then base our code around them. We evaluate our work based on whether or not what we built can do what we think it needs to do.
I planned to write about the difference between making an app and making a web site; but then I realized that I should first talk about the seemingly endless opportunities that WordPress powered-apps gives us as WordPress developers—opportunities where, in many instances, are unexplored and require the guidance of our own assumptions. They require us to think like an app.
Thinking like an app challenges us to think like an minimal viable product (MVP). This is what Swinmurn did in the early days of Zappos. He built what Eric Ries calls a “Wizard of OZ MVP” in his book “The Lean Startup.” Swinmurn had a vision for what Zappos would become, but he didn’t have any actual experience building the kind of eCommerce store he wanted.
The problem was that, without any prior experience building Zappos-like stores, he was left only with his assumptions of what it would require to build this site. So he started with the easiest, most attainable version of Zappos that he could create at that time.
The Zappos MVP wasn’t just about getting something out there as quickly as possible. It was about converting assumptions into data. It proved that the Zappos way of selling shoes worked and it helped define exactly what the Zappos way was. Swinmurn converted assumptions into actionable insights on selling shoes online.
How Can This Help Me As A WordPress Developer?
I have a bit of an internal conflict. Part of me is a developer—someone who wants to automate everything, and thinks that he can write an if/ elseif/ else or switch to handle almost any situation.
The other part of me is an entrepreneur who has programmed himself to follow up on every grand idea that starts with the question of “but what is the MVP?”
Since I’m not a terribly successful entrepreneur yet, I still do freelance work. I get to extend WordPress to accomplish client goals, often involving custom front-end UI for data input, purchasing, content creation, and more. This is fun for me.
The discussions around these types of sites can easily get bogged down by the edge cases. For example, what happens if someone wants something we didn’t account for?
Thinking in terms of an MVP allows me to send clients into the wp-admin where they can do it themselves. This may sound like a cop-out or like I’m unwilling to help my client reach their goal of a totally automated solution for their business, but I don’t think it is.
If it’s an edge case, it may only come up a few times. They can easily spend ten minutes resolving this issue manually. It may never happen, or it may happen all the time. If it happens all the time, then they gain valuable insight into their business that can help inform new features on their site.
The fact of the matter is that a simple “contact us for more information” form is the most cost-effective way of dealing with these types of issues. You can gather analytics on these requests and use it to inform future decisions on how to develop that respective feature in the future.
Needs More Data
Some sites that we build are for established businesses that want to create an online presence or revamp their existing website. Those projects come with data about how the business functions. These proven assumptions can inform your design process.
But when you’re working on creating something new, all you have are assumptions: What the client thinks their business is, what the developer thinks the client wants, and how your experience influences those assumptions.
It’s easy to build what you’re asked, but if your goal is to create an ongoing relationship with a client, then you need to do more than just build what you are told. You need to question your assumptions and your clients assumptions, and build tests into the design process for gathering data about the site and the business.
Whether it’s a membership site, an eCommerce site, or even a blog, you need to know how it’s being used and how it’s not being used if you expect to stay involved with the project long term and help it grow. This not only refers to the ability to bill for more work, but also to the ability to build things that are actually going to get used.
So, Start Thinking MVP
Thinking like an MVP provides a powerful perspective.
It challenges you to get things done. Writing cool code is fun and all, but until you actually ship the site or app that the code powers, you don’t actually know if it works.
In addition, this way of thinking also forces you to challenge your assumptions, try new things, and stop being afraid of not automating the edge cases. It also lets you gather data to inform new features.
Thinking in terms of an MVP allows you to better serve your clients and build a relationship based on trust and mutual success. This increases the chance that their project’s initial phase will go well, and that they will call you when it is time to reinvest some their financial rewards into new features.