DEV Community

Cover image for Why you should ship your app, even if it sucks

Why you should ship your app, even if it sucks

vincanger on July 30, 2024

Hey, I'm Vince I’m a self-taught developer that changed careers during the Covid pandemic. The reason I was able to switch from educat...
Collapse
 
annavi11arrea1 profile image
Anna Villarreal • Edited

I started learning coding last September, as a beginner I was digging for every possible resource I could get my hands on. I have since stopped buying books and stopped taking online classes (for the most part) I met a great coding club on discord and have since started a massive project with my friend building a shopping cart app, and I can tell you, the learning is REAL. 80% researching a fix on Google, 15% coding, and 5% thinking about what's next.

Problem solving > spoon feeding

Not only that, but you focus on the problems that are relevant for you, saving time.

Collapse
 
vincanger profile image
vincanger

wow that's great to hear!

Collapse
 
faizan711 profile image
Faizan

Hey can you share that discord club, would love to connect with fellow devs.

Collapse
 
annavi11arrea1 profile image
Anna Villarreal

We just switched to a new server and we are currently getting things set up. You are welcome to join and poke around in the mean time!
discord.com/invite/gMJ2afQa

Collapse
 
steve-oh profile image
Steve Schafer

I'm in general agreement with your philosophy, but there's one area where you shouldn't ship your app if it sucks: security, especially your users' data security. Familiarize yourself with the concepts (XSRF, XSS, SQL injection, etc.), and use proven, off-the-shelf solutions to implement security in your app. Most importantly, don't think that you're smart enough to roll your own security. Even the experts get it wrong sometimes, and they've probably been doing it for longer than you've been alive.

Collapse
 
vincanger profile image
vincanger

You could always use a full-stack framework like Wasp, or a third-party solution that takes care of this for you (although more expensive), which is what I mentioned in the COPY OTHERS section

Collapse
 
whattheportal profile image
WTP | WhatThePortal.com

Solid advice - the paralysis that comes with perfection is real.

Small, steady, frequent - who knows how far you'll end up going! Thanks for sharing this like-minded approach. It embodies what we like to call "Profit Engineering" - not going for perfection but going for impact.

Collapse
 
vincanger profile image
vincanger

yep. that's the way!

Collapse
 
jakepage91 profile image
Jake Page

Totally agree, marginal gains is the name of the game.

Collapse
 
obistanlee profile image
obidiagha stanley

a step at a time.
and you will be surprised how far you have gone while enjoying the process.

Nice one.

Collapse
 
vincanger profile image
vincanger

yep. one step at a time sounds too easy though. there are so many psychological battles you have to win along the way, which is why I wrote this.

Collapse
 
obistanlee profile image
obidiagha stanley

i agree

Collapse
 
rita profile image
Rita

I completely agree with what's been said above. I was working on a small project one weekend, something simple like "create celebration text using AI." I launched it and then forgot about it. Later, I checked the metrics and saw it ranked high in search results and was getting organic traffic. This motivated me to add monetization, and now this simple project pays for the servers for all my projects.

Regarding perfectionism, when it's time to launch, people usually go to Product Hunt, right? From what I understand, it brings a major traffic boost. But what if the project isn't perfect at that time (not terrible, but could be better)? This could mean losing a huge opportunity because it's hard to get the same level of interest with a second launch. What would you suggest: launching as is or waiting until it's in the best possible state?

Collapse
 
cbolanos79 profile image
cbolanos79

I have read your article and I can say I find this very interesting, specially about the topics of avoiding overthinking. Nevertheless, I would like to highlight some ideas, from the perspective of my experience and point of view. I hope you don't take as a critic but a personal point of view which can lead to a constructive debate and enrichment.

  • Consider delivering your apps just when they are ready to be used, in other words, a mature enough MVP ready to be used. Why? Because if it's in a very early stage of development, or just the UI isn't polished enough, the app will be rejected by potential users, instead getting feedback. As you said, use the available boilerplate and avoid to reinvent the wheel using available resources: libraries for your language, UI libraries and tools (bootstrap, etc). Once you master them, try a new one.
  • Don't be close minded: consider you'll never master all the available tools or frameworks, ever if you are a seasoned developer. Try to learn new technologies, play with new frameworks: you never know when something will be added to your toolset. Be creative and explore your options, try different approaches.
  • When you build a new app, try to get a general view, set a work plan, not a detailed one but enough to have an idea of what are you going to do, and then, start working. This way you will avoid frustration, and be more organized.
  • Finish it: I totally agree with you. Be consistent and finish what you started, don't get excited by starting a new project. It's better to go with lite steps rather walking a long, hard path.
  • Invest in learning: look for resources surrounding your skillset, try to add new skills and improve your existing ones.
  • Last but not least: enjoy. Just enjoy learning, writing apps, trying to do your best on each project. There can not be doubt your first project will be ugly, the second one a bit less, the third one will shine a bit, and so on. Continue practicing, although you don't get the expected perfect result.

I wish you the best and hope to continue reading your articles :)

Collapse
 
l4ur4oliveira profile image
Laura de Oliveira

Overthinking (and overplanning) is hell! 😑 Lots of started work, but none completed. I will definitely share this post with my team! Thanks!

Collapse
 
martinbaun profile image
Martin Baun

Simplify, and fine-tune, boom, won't suck any more :) Great read I really enjoyed this!

Collapse
 
vincanger profile image
vincanger

Thanks

Collapse
 
valvonvorn profile image
val von vorn

So you should care less.

So you advice to ship shitty code so to say IIUYC.
This is fine! This is fine for your junior side project.
This is not fine for production code!

Collapse
 
vincanger profile image
vincanger

I never said ship shitty code to production codebases. That's a different topic. Here I'm talking about building your own apps.

Collapse
 
mayasingh39 profile image
Maya Singh

Great Article.

Collapse
 
vincanger profile image
vincanger

Thank you, Maya

Collapse
 
letsbsocial1 profile image
Maria Campbell

Great post Vince!

Collapse
 
vincanger profile image
vincanger

Thanks, Maria!

Collapse
 
zvone187 profile image
zvone187

Just ship 💪💪

Collapse
 
vincanger profile image
vincanger

That’s right :)

Collapse
 
efraim9 profile image
František Kočí • Edited

Motivating, thanks a lot! I think we need more articles like these!

Collapse
 
vincanger profile image
vincanger

glad you liked it :)

Collapse
 
cyberninja profile image
Cyber Ninja

No wonder software looks the way it does today. Allow me, among the enthusiastic comments, the freedom to express one grossly disagreeable one.

I simply find this approach irresponsible and unfair to the client/customer/end user.

Collapse
 
abhirup2003 profile image
Abhirup Kumar Bhowmick

Great share, man! I am a solo developer, and I just released my SaaS app PrepiQ a few days ago. Being a final-year student as well as a solo developer, it took it 2 weeks to build the SaaS app. But what you said is absolutely correct: "Detach yourself from the outcomes." I love to build web apps and have built 2-3 SaaS apps till now, which have been absolutely unsuccessful, but this never stopped me from trying further.

prepiq.vercel.app

Collapse
 
matijasos profile image
Matija Sosic

Wow, I think this is my favorite article here so far. All you say is actually pretty deep and can be applied to any area of life, so cool stuff :). Gimme that chisel!