danganiev.meNavigate back to the homepage

So, you finished your MVP? Congratulations, you made it through the tutorial

Dan Ganiev
April 23rd, 2021 · 3 min read

Finishing an MVP of your project feels a lot like beating what looks like the final boss of a videogame, only to find out that it was just the tutorial. And you have 10 more bosses to beat.

This post is the transcribed essence of disillusionment I’ve felt after finishing my first SaaS MVP as a solo developer. However, it was a taking-off-your-pink-sunglasses kind of disillusionment that allows you to see how the real world works and where you belong in it. So, you know, good stuff. A tale for fellow developers about what to expect if they choose to tread a similar path.

To look at where I am now, we need a bit of backstage history. I never brought my last two projects as a solo developer even to MVP stage, both due to sheer complexity for one person. From then on I decided to spend no more than two months per MVP.

I chose a very simple idea, definitely doable for a single developer in two months, and started tinkering. I made the mistake of not choosing boring technology, so I spent first two months R&D’ing with a new technology (it was Postgraphile). Then I finally started building the MVP. After four months it worked. Kind of. On my machine.

I was proud of myself that:

  1. After two failed attempts I finished something;
  2. I only blew the time budget twice the estimated, which in software world is like being five minutes late on a date—not a big deal. (I treated Postgraphile R&D basically as another project)

Technically the MVP was done, but can you consider a SaaS done if no user on the internet can use it? I didn’t. And so I met my first non-MVP boss—Deployment.

It is only now, after reading an immensely informative book Release It, that I distinguish Deployment as a separate boss. At the time I just thought about deployment as part of development process. Which is a correct way of thinking about it, if only you know about massive differences between development and deployment. And I didn’t.

I never touched deployment before on any project, but it can’t be that much different from programming, I thought. I was wrong. It was like learning to survive in a desert for your whole life just to be suddenly teleported to taiga. Surely you might need the shovel in both environments, but you will need so much more knowledge and other tools. Also why is this bear keeps climbing the tree after me?

Two more months have passed, while struggle after struggle I learned Ansible. I chose Ansible-managed bunch of VPS’es as a good middle ground between doing everything deployment-related by hand and a new fancy way of rolling in clouds with Kubernetes/Terraform/etc. Also, I was starting to getting burnt out by the project that at this point took too long, and the perspective of wasting months learning new hyped ways of deployment just was not appealing.

Now, after being able to bring my service online in just five consequent commands (which can further be distilled into one, but I just didn’t bother), I can say that I’ve beaten this boss. Well at least until the Scaling boss shows up, he is known to resurrect all of his infrastructure buddies. But that guy comes with some 💰 💰 💰, so not that I would mind.

Somewhere along learning deployment I had to incorporate a company, otherwise no payment processing company in my country was willing to provide services. And that brought another boss, Accounting. If Deployment was like taiga, Accounting is more like being teleported straight to Mars. Well, at least it has numbers. This soulless being comes around in intervals ranging from monthly to yearly, and you better be ready. Strategies for beating it are way out of scope of this post, but one universal advice is: if you have the budget, you will be much safer summoning some payed help.

Finally, after nine months the MVP was online, ready and working.
Th‏‏‎e 🎉‏‏‎‎ LAUNCH DAY🎉 has come, only for me to find out that it meant nothing for me, because I did zero prelaunch marketing. In fact, I did no marketing at all, ever.

And this is where it striked me, my MVP was meaningless without users. I was just a naive developer that thought that MVP was everything, that I could just bunny hop from building one MVP to the next, and the users will just magically pile up from one post in a relevant telegram channel.

So this is where I am now, facing the gargantuan beast of Marketing before me. This is not taiga, I am not in Solar system anymore. Marketing realm for me is like Narnia. Well, at least it has numbers. I’m optimistic, though, this will be a fun battle.

Now I know that MVP is just a starting point. I don’t know how many bosses are ahead of me and if I’ll be able to beat them all. But at least my game is fun and worth playing. And if you want your game to be fun too, be sure that you want to stick to your project for years, even if you can build your MVP in a day.

More articles from Dan Ganiev

GraphQL is becoming more than just a query language for the web

GraphQL might have started as a convenient way of delivering exactly the right amount of data from server to the client. But...

September 1st, 2021 · 2 min read

I tried to improve Cliff Stoll's Klein Bottle website with CSS. Here is the result.

Earlier today I read about the unfortunate hijacking of Cliff Stoll's seller account on the Amazon. So naturally, I started to lurk around…

June 30th, 2021 · 1 min read
© 2021 - ∞ Dan Ganiev
Link to $https://twitter.com/GanievDanLink to $https://github.com/danganiev