Note from Barrett: Today’s post is a guest post from Pat Flynn of SmartPassiveIncome.com. Pat is one of the most well known names in independent, online business. In today’s post, Pat shares a full behind the scenes look at the process that led him to build his most successful software project to date, Smart Podcast Player. Here’s Pat …
Back in 2010, one of my Internet buddies spent a few thousand dollars to develop a WordPress plugin that he later sold online. During one of our usual Skype calls, I asked him how sales were going.
It was only three weeks into his launch and I was completely blown away. “We just passed $150k in total gross revenue,” he said. I had to pick up my jaw off the floor.
A couple of months later, I found out that another friend of mine had built a completely different WordPress plugin, and within the first month he almost cracked 6-figures too.
That was all of the motivation I needed to want to get involved, and I committed to building a premium WordPress plugin of my own. In fact, I was so committed, I decided to build two simultaneously.
That was my first of many mistakes.
Two?! Two plugins, Pat? In retrospect, it was because I had two great ideas and I couldn’t part with either of them, so I decided to give both a try instead.
Come on Pat, you know better than that.
Like my two friends, I was not a developer and couldn’t code these plugins on my own, so I decided to follow their lead and hire someone else to do the development for me.
Within a day, I found a company that I was excited to work with. I reached out to them via their contact form and they quickly got back to me looking for more information about the plugins that I wanted developed.
In a hurry, I wrote down everything I could think of about my two plugins in that reply. The email took about 2 hours to finish, but everything in my brain was there to help them understand the concepts.
That was mistake number two. It seems silly to me now that I didn’t already have it all written down. Not silly really – just plain stupid. I was clearly rushing into this, and I didn’t even stop to think about exactly how I wanted the plugins to function, I only knew what I wanted these plugins to accomplish. In my rush to reply, I left a lot of necessary details out, which proved to be hazardous later in this journey – but we’ll get to that later.
Within a day, I received a reply from the company and they were more than interested in working with me. After a few more back and forth emails, I was invoiced $7,500 – half of the overall cost upfront to begin the development phase of my plugins.
I immediately went into my paypal account and processed the invoice.
And…another beautiful mistake by Pat. [Sarcasm] Well done Pat. [/Sarcasm].
Rushing into this and taking the first offer? Not even negotiating the costs or even shopping around to compare development costs and/or timeline? What were you thinking?
I’ll tell you what I was thinking. I was thinking about the tens of thousands of people who were going to download my plugin and install it on their websites, and how I was going to get back the development cost in no time.
Every day, at least 50 emails went back and forth between myself and two different developers from this company (one developer for each plugin), each of them trying to help me figure out exactly how I wanted the plugins to work.
The trouble is, I didn’t actually know. I just knew what I wanted the outcome to be and I had to make up stuff all along the way during my correspondence, from all of the different settings and options I wanted, the design on the front end of the website, to the design of the backend of WordPress.
There was so much stuff to think about that I never realized went into the process, and I could tell the developers were losing their patience with me.
It finally got to the point where I told them both to use their best judgment and deliver a working alpha version of the plugins for me in the next 2 weeks.
This was another mistake that led to a hard lesson learned, as you’ll see in the next section. Never tell a developer “use your best judgment.” When it comes to things like design, a developer’s judgment is usually off, which is typically why you’d hire a graphic designer or UI/UX (user interface / user experience) designer.
And when it comes to trying to crawl into your brain to figure out exactly what you want… developers (or anyone for that matter) usually suck at that too – especially if you have no idea what you really want at the outset of a project.
There was one advantage to turning over creative control to the developers: at least the emails stopped.
No plugins yet. There was over a month of development time in the books for both plugins, but I figured the devs were hard at work figuring things out for me (just like I had asked). A few days later I finally heard back, but not from either of the developers. It was the person who I had originally contacted at the company.
He told me the devs needed another week but assured me I’d have a working alpha version of both plugins by then. He also told me that they needed the next fee installment.
25% more of the overall $15,000 fee was due. So, I went into my paypal account and processed the next $3,750 invoice. The final installment was reserved for the final versions of the plugins.
Woohoo! I finally got the emails from both developers on the same day a week later, each with a .zip file of their respective plugins attached.
I had imagined both of them sitting side by side in their office trying to see who could deliver their plugin to me first. I later found out they were both working remotely, which sort of crushed my fantasy – but that’s no big deal – I had plugins!
While waiting for the plugins to be finished, I was also smart enough to create two separate sales pages to sell the plugins when they were ready. I worked on the graphic design and the copy on those sales pages, and all they needed were proper .zip files and bit of promotion to fuel sales.
I had also created a couple of dummy sites to test the plugins, and I was super eager to install them.
I login to a dummy site…
Plugins > Add New
Are you sure you want to install this plugin?
Me: “Hell yes, let’s go!”
I found the plugin in the settings menu, clicked on it, and the first thing that came to mind was…nope.
Nope. Nope. Nope. This was not the plugin I had asked for. It had the right name so it wasn’t the wrong .zip file, but I didn’t even know what I was looking at. I played around with it a bit, clicked around, and came to the conclusion that I was in a bad dream and I was going to wake up soon.
All along I had the sinking feeling in the pit of my stomach that only got worse after I reviewed what I told the developer during the planning phase. Everything I told him to build was there. But then there were all of those gaps he was trying to get me to fill in during our email conversations…
Well, apparently he was asking for a reason.
After emailing the developer a few times, I found out that he used his best judgment for about 75% of the overall plugin functionality and design.
Holy crap. That’s a lot.
Several changes needed to be made to get it to where I wanted it, but at least we had a starting point to work from. I started a document to keep track of all the necessary updates. From start to finish, it was 4 pages of bullet points.
After a long conversation a long series of “Oh, I see what you mean now” comments by the developer, he told me it would take an additional 3–4 weeks to get it right and an additional $5k, which I didn’t want to spend. That’s when I decided to scrap plugin #1 and focus completely on plugin #2.
At least I had plugin #2!
Plugins > Add New
Are you sure you want to install this plugin?
Me: “Plugin 2 baby!”
Alright, now we’re in business! Well, not yet – but at least we were making progress.
Plugin #2, which was a lot simpler than Plugin #1, did what it needed to do and worked exactly like I wanted it to. There were a few design changes here and there, but for the most part, it worked. After a few days, I had a working final version and I happily paid out the remaining $3,750 of the balance, even though plugin #1 was a flop.
I kept my plugin journey in secret throughout the process, waiting for the right time for the big reveal. The first people I wanted to share it with were my friends who inspired all of this to get their feedback.
I reached out to one of them on Skype, and the conversation went a little like this. Actually, it went exactly like this, because I saved it to remind me what not to do…
Me: “Dude, I have something SWEET to share with you!”
Friend: “Candy!? What kind?”
Me: “Hah! Better. I developed a WordPress plugin! Thanks for the inspiration man, any quick pointers on promotion?”
Friend: “No way! Are you serious? Why didn’t you tell me you were doing this, I could’ve helped you. What does it do?”
Me: “It’s a resource page plugin. You know how my resource page is my most visited, most profitable page on my site?”
Friend: “Ok…yeah. Go on.”
Me: “Well, in the backend of WordPress, you can create and manage your resource page directly from WordPress, with all of the images and links/descriptions and tracking for affiliate offers all in one place – super easy to manage and swap out offers. It’s like what I do manually now but it’ll make it so much easier and cleaner for people.”
Me: “Just interesting?”
Friend: “I mean, that’s pretty cool, maybe I need to see it but I’m trying to figure out what problem this solves. When people install this, what’s the immediate result they get? What’s the big pain you’re relieving?”
Me: “Well, you know – a resource page, like mine, it’s not all that easy to create, and especially from a tracking perspective, it can be hard to see what’s working and what’s not. With the plugin you can optimize so you only have the products that are performing there for you.”
Friend: “Did you validate this and talk about this plugin with others?”
Me: “Well, no – but I’m sure this is something people would want.”
Friend: “Are you? I mean, dude… with my plugin we put about 6 months of time into just the research behind it. We talked about it with as many people as we could, from other developers to our prospective customers, and those conversations were SO important because we knew exactly what we were supposed to create, and exactly what would sell. No guessing. That’s why I wish you told me what you were doing so I could have walked through some of what we did with you. Please don’t tell me you spent a ton of money on this?”
Me: “You don’t even want to know.”
Friend: “Ahh man. What about customer service? Let’s say the plugin does sell, and then you have all of the WordPress updates in the future, not to mention the various themes and compatibility issues. There WILL be compatibility issues bro, no doubt about it, and you need someone with some dev skill on your team to help you through all of those tickets when the plugin starts to break on people. You’ll probably need at least another person on your customer service team to deal with the non-dev issues like dealing with payments and backend settings and stuff like that. We had to hire 3 more people last month just for the customer service side of things.
Friend: “Don’t worry man…”
And now you can see why I didn’t talk to my other friend. It was a complete disaster. And he was right on so many points. I was too embarrassed to share this plugin with anyone else, but I spent so much money I needed to hear it from the customer’s mouth.
I reached out to a sample of 10 people in my audience who I knew were big supporters of my brand who would give me honest opinions on the new plugin. I got feedback from all of them. About half actually installed the plugin to test it out, while the others just gave me feedback on the concept.
And of course, they were all similar to my friend’s comment:
“It’s pretty cool, but I’d probably use it only once in a while.”
“It’s a great idea but I don’t think I’d pay for something like this.”
“It’s not that exciting.”
That last one hurt more than any of them. My brand is known for incredibly in-depth, over-the-top delivery on everything, and here I was getting comments like “it’s not that exciting”.
That was all I needed to understand that my first venture into the world of WordPress plugins was a complete and utter failure. None of the plugins ever saw the light of day. The sales pages I built were full of virtual cobwebs and I let them expire a year later.
And me… well, I had a $15,000 lesson that I’m always more than happy to share, because if I have to take this loss so you don’t, that makes it all worth it (although it still hurts to think about sometimes).
I want to use the rest of this post to share my big takeaways from this entire experience. Most of these will apply to anyone starting any kind of business, but they will especially apply if you are thinking of building any kind of software or plugin:
If you have an idea for a piece of software – be it a WordPress plugin, SaaS (software as a service), mobile or web application, or whatever else you can think of, talk to other people about it.
If you keep it all to yourself (like I did), you’re losing out on the opportunity to get direct feedback from others, which could help you shape the product to what it should be, and also help you validate whether or not it’s a good idea in the first place.
If only I did this first, I would have saved a ton of time and money.
And yes, I know what you’re thinking…
“What if someone I talk to steals my idea?”
This isn’t anything to worry about. First of all, no one is going to steal your idea. And even if they did, you’re the one putting in the action to make it all work. Ideas mean nothing – execution on those ideas is everything.
Plus, the gains from talking about your idea far outweigh the loss you’d encounter when keeping it all to yourself.
Here’s what I’d say to my younger self if I had pushed back on this idea of sharing:
“Great job keeping it a secret, Pat! Now no one can steal your crappy idea!” – Love, the older, smarter Pat
Don’t build something that you think matters – build something that actually matters – the kind of product that gets results that matter for your customers.
Here are some helpful questions you can ask yourself:
What are the big pain points and top struggles that your target audience encounters?
What’s the one thing they do all of the time that they wish could be done in a better, more convenient way?
How will what you build give your customers results they can be stoked about?
Clearly, I didn’t think through these questions when I was coming up with my plugin ideas.
When you come up with your concept, and you’ve hopefully validated it a bit with your target audience, wireframe it. All of it.
By wireframe, I mean actually draw it out as best as you can, and make sure you cover each and every part of it – from what all the buttons do, where those buttons lead when clicked and how it all functions. Walk yourself through the plugin as if you were a brand new user, all the way through the result they get in the end, and draw out the entire process yourself (if you don’t have a UX/UI designer to do it all for you).
You don’t have to be an artist to do this. Rectangles and boxes and symbols can all do the trick – just something so you can see what the heck is going on, so you don’t make the same mistake as me and give your developer any room for artistic interpretation. When you have it all on paper, it’s there, it’s clear, and you know there will be much less room for ambiguity with your developer. That means you’ll be far closer to finished on the first iteration.
And if for some reason your rectangles always look like squished trapezoids, then I recommend checking out Basalmiq Mockups for creating wireframes of your software products with a library of common (and not so common) software related graphics with a sketchy/first-drafty style.
In order for this to work, you’re going to need a dedicated developer – one who will not only work with you to create your software product, but be there afterwards to be able to support it.
I’m actually pretty lucky that the first two plugins I did didn’t work out, because I wouldn’t have had anyone to support them for me moving forward – at least not right away.
Beyond the support, you’re going to want the same person who created the plugin to be able to help you with new versions and feature updates as well. As you grow, you can add more developers on your team.
How you end up deciding to work with this person is up to you. Some people partner up and split the share of the revenue, while some developers prefer getting paid on an hourly basis.
It was hard to narrow down the big lessons learned here in this post for you as I could literally write a whole book on this topic now that I’ve experienced both complete failure and radical success in the world of software development.
With my most recent software venture, The Smart Podcast Player, I’ve definitely taken the longer but smarter approach to this software product, built specifically for podcasters.
This tool is one that I actually custom built for myself when I started my second show, Ask Pat, in early 2014. It was a huge pain trying to figure out how to release this daily show on my blog without having to write new blog posts for each episode. There was no elegant way to do this, so I decided to have the developer on my team custom build it for me.
With the help of my UX/UI guy, we came up with something beautiful and we launched it the first day the show went live. Almost immediately, podcasters started to email me asking where they could get this player, and I knew I had a business opportunity on my hands.
Remembering what had happened the last time I tried to do anything software related, I decided to move forward, but at a smart pace to avoid the same mistakes I did last time.
First, I spoke directly to over 150 podcasters to find out what their biggest issues were with podcast players on their site. Many said they were boring, and provided the same ol’ traditional functionality – play, pause and stop – and that’s it.
I also found out through those conversations that they didn’t realize how many people were actually listening to their show directly from their website, as opposed to iTunes or Stitcher. 40% of my listeners are actually listening on my own website, for example (many of them first time listeners who discover my blog through Google or another link, and then happen upon my podcast), and so I learned that in the promotion of this player, I’d have to educate my target customer a little, and just what kind of opportunity we’re losing by using traditional podcast players – especially with those first time visitors.
With a base-code already live on the website, we launched an MVP (minimum viable product) WordPress plugin for distribution in mid–2014. We limited the release to 250 beta licenses, which sold out within 24 hours.
We could have sold 4–5x as many plugins, but again – I wanted to take the smart approach this time. I limited it to 250 for a few reasons …
Because this was a beta version, we knew there would be bugs and it would break for some people. We did a month of testing before we launched, but like my friend said before – there will always be bugs to fix, and none more than after a launch or an update.
We used the opportunity with the limited 250 people to discover what the most common bugs were, squash them, and have a better product before our next launch.
Additionally, the 250 people were there to work closely with to help us understand the most important features to build next for the plugin.
One strategy that a lot of software companies use is the idea of The Feedback Launch Loop.
Here’s how it works:
You launch an MVP (minimum viable product – the product with the fewest number of feature that still solves the problem and gives the customer results). Then, you get feedback, you add the most requested feature and you launch again. You get new feedback, add another top requested feature, and then launch again.
Each new feature set becomes another excuse to market your product to potential customers. At the same time, you create an ever better experience for the customers who already have the software (the ones who requested that feature in the first place).
Instead of one giant update with 10 new things, smart software companies launch one new feature at a time, which makes everyone happy. It also gives those companies an excuse to send another email to their list to promote again, but with something new and different to share.
We’ve done this successfully over time, and currently The Smart Podcast Player is thousands of users strong with a feature set that was determined by those very users.
The coolest part about this software thing, is that unlike information products, people get immediate value from their purchase. With information, people have to take the time to consume the information, and then put it into action, and even then the results may vary. With software, you can literally give people instant results from what you’ve created, and it’s such an awesome feeling.
After the first beta launch last year, I remember seeing people using the player on their website that very evening. Many people sent me emails about increased download numbers the next day, which was awesome!
Here’s a tweet from Fizzler Brendan Hufford who shared what happened after he installed his Smart Podcast Player:
The Smart Podcast Player wouldn’t be what it is today if I hadn’t had the experience of two failed plugins in 2010. For that, I consider the two failed plugins to be one of the most expensive lessons I’ve ever learned, but one I’m happy to share with you for free today. I hope you’ll use it to your advantage. 🙂
Have you ever built or launched a plugin or software product? What did you learn from the process? Share with us in the comments.
At Fizzle, we’ve worked with thousands of creative entrepreneurs, helping them find customers and get paid.
We’ve helped bloggers, podcasters, YouTubers, musicians, designers, consultants, photographers, foodies, teachers, and everything in between.
Our acclaimed training and coaching program is now offering a free 14-day trial. See if Fizzle membership is right for you »