"just ship it" is just as dumb as "never ship it". Why are people so prone to these oversimplified polarazations?
Also, if I learned anything over the last few decades it is that the market supports many solutions to the same problem. Why do software developers believe that if someone gets there first that's it it's done? Someone invented and sells a toaster? Done. Someone started selling bikes? Better ditch my step design. Cars? Just one brand, obviously.
People release apps into oversaturated markets every day. Most fail, some do well, and not because they were better in every way than the competition, just because they were different, they were tried, and some people found them to be 'Good Enough'.
Why do software developers believe that if someone gets there first that's it it's done?
Something about software development attracts people who are underconfident and anxious (or perhaps writing software makes people like that). There's very little support or mentoring, soft skills like kindness, helpfulness and giving constructive feedback are looked down on, and people's first introduction to software (games) is all about competitiveness and winning. The 'heroes' of software are people who have made incredible things and rarely talk about their mistakes. Consequently a lot of developers look for reasons to give up as early as possible because everything they've learned tells them failure is something to avoid at all costs.
Very sadly, in my opinion, the industry doesn't celebrate the effort. It's only about the results. Not having the first mover advantage is seen as a reason why you'll probably fail.
What's slightly odd is that this attitude isn't so common in actual software. Developers are falling over themselves to work on new libraries and frameworks regardless of how many exist already.
Doing a project that’s already been done before is such a learning experience. The person in the article learned a whole new framework to try and optimize their project. What a great bonus skill to have in your back pocket.
I have been trying to develop my own soft skills. I used to think things like small talk were a waste of time. I didn’t realize they were a way to open the lines of communication which you can then build up to something substantial. I don’t feel soft skills in this industry are frowned upon so much as people (like myself) are just a little ignorant about them. I’ve noticed devs can give some really blunt feedback and genuinely think they’re being helpful, and they are! But a person receiving the feedback who already isn’t confident can feel like they’re being criticized. The two people need to almost meet half way. Be confident enough to take the feedback, and be a little more careful with your words when you give it.
In my opinion this sentiment can be affected by your intention behind the project.
If your intention is to be "the" product or project that people use for their unmet desires, then when that goal is fulfilled by another project/product already, and considerably better, you end up wondering what all your time and energy is contributing to the task of solving the problem. It's solved already, and other people have put in all that time and effort refining the solution already, so you'll just feel like you're playing catch up.
The vast majority of the time I program because there is this thing I need to do but none of the software available allows me to do it at all. I don't mean buggily or with shareware popups or as a paid product, I mean at all. The only way for me to do the specific thing I want is to program a solution to do it for me.
So suppose someone else comes along and has the exact same problem and comes up with a solution. Usually I'll just use it instead of spending more time. The solution is all I needed.
In this case the programming is only a thing I have to get out of the way in order to accomplish what I want. I don't care about maintenance or if anyone else has the same problem or if anyone else even comes up with the same solution. All I care about is doing the thing.
In these cases I will accept any solution, whether or not it's mine. Some people are just better at programming given the same time constraints. It does wound my ego a little, but using their solution immediately instead of putting all the effort into an inferior solution means I do what I wanted to do and move on to more important things.
What actually wounds my ego is when the project is intended to be used by other people. This means those people might not choose the same solution as me collectively between multiple different options. So now I do have to care about maintenance and having something to offer above everyone else's solution, because otherwise nobody is going to care about all the effort I'm putting into this solution.
The author appears to be a mixture of both, if I'm understanding correctly. When another competitor came along that did everything he envisioned his product would do he grudgingly signed up for it - because the product allowed him to do the thing he wanted to do all along. And he also wanted to be understood, to be a somebody with specific domain knowledge about this specific problem he encountered, and not being able to be that person since someone else already filled that gap was devastating.
I mean, we can celebrate effort, but there's almost nothing more demotivating to me than spending years on a problem only to find that someone else did it and simply did it better than you, so you start thinking, "if only I could have learned about all these other things instead of spending years fumbling around with programming specifics in order to satisfy this one need, which would have been satisfied anyways if I was just patient enough."
And it's also so, so easy to just state "just use X" and make it so much worse for the formerly motivated person. This is why social media will never fundamentally nourish people like me. Nobody can understand the context of two years of hard work when you just ask a simple question about what you feel about problem X or Y. At the same time, you can't argue with measurable improvements in correctness or efficiency, so in those cases some people like me find no other option except to get depressed. Then you would ask: "can anyone blame me for feeling like this?" Well, they would. "Pay more attention next time," "git gud," etc, etc...
I think it might be impossible to avoid comparisons on a time or money basis when you have multiple solutions to the same problem that average people can choose from. They rarely just say "they're both good in different ways." At some point all I've learned is you just have to either deny reality or somehow get over the fact that some people are just better than you for inexplicable reasons. One mindset allows me to have a chance at accomplishing anything at all, the other leads to depression and never so much as attempting anything. I wish I knew better.
> "just ship it" is just as dumb as "never ship it". Why are people so prone to these oversimplified polarizations?
Because this mantra is being applied to a group of people who almost universally wait longer than they should. It is never going to get interpreted as "ship when all you have is hello world". It is going to act as a push to ship earlier, when it's uncomfortable, before you feel ready.
Basically it's relative rather than absolute "ship earlier than you think you should". And there is nothing wrong with a succinct formulation of that concept.
> "just ship it" is just as dumb as "never ship it". Why are people so prone to these oversimplified polarazations?
Honestly? I think people (in the general sense) are constrained to the amount of complexity they can handle and the world is a complex place so they fall back on picking a choice/hill to die on as a way of reducing the complexity.
Not a new thing, I work with a guy who is an excellent programmer but will argue for ever that OOP is the right way to build software and that he doesn't see the point in functional programming while writing code with map and reduce inside class methods..
The benefit of a dogmatic approach is you never have to question it (otherwise it wouldn't be dogmatic), small government good, efficiency of the market, nuclear bad, nuclear good, emacs better than vim, vim better than emacs, chrome better than firefox, linux better than windows, mac better than PC, religion good, religion bad - pick a side and never think again(TM).
In reality nearly all of life is some variant of "it depends" and there should be no shame in saying "I don't know enough to have an opinion" and if its important then you go look into it.
The fundamental problem is "reasonably informed opinion held until presented evidence one way or the other" is more work than "strong opinions, loosely held".
That is off-topic, but it is an interesting explanation. It’s a useful example for thinking about a lot of design situations where two different approaches both seem equally feasible yet are very different and incompatible.
I know you kid but the killer features for nano are that
one it is very simple and intuitive
And two, it has the (two? It has been a few years) row footer that literally tells you what buttons to push to save or exit. I didn't know how to exit vim when I first started with git, as is tradition.
I agree about there being no good reason for Vim being so difficult to terminate.
I've introduced a few people to Vim and I have to start out with an apology for how annoying it is to close. If the user hammers the Esc key, it should at least flash up with a hint of how to quit.
It does this if you press ctrl-c, so it's not as if it can't be done.
That's a great idea. I can take it even a bit further though. The defaults matter. Maybe show a persistent thing at the bottom on how to exit and maybe even throw in what to do if you pressed Ctrl + s and now vim is "not responding". But this involves changing the defaults so it will likely never happen, same way as we will probably never see curl automatically enter a new line at the end of a response.
Personally I wouldn't want that cluttering my Vim sessions, but it would make sense for some sort of 'introductory mode' of Vim.
(gVim Easy seems to just be gVim restricted to insert mode. Not sure I see the sense in that - isn't that just Notepad++ but worse?)
If I could change one thing about curl, it would be for -L to be the default behaviour, so that it would just do the right thing regarding redirects. Instead, wget does the right thing by default, but curl always needs the flag.
>Why do software developers believe that if someone gets there first that's it it's done?
It doesn't help that when you come to HN or Reddit releasing something, the comments are quick to point out other competing products in a seemingly snarky way.
"I use X. It has that feature plus these other ones. Why would I switch to yours?" I get the spirit of why someone would say that, but it's really hard to read tone in a forum post.
> "I use X. It has that feature plus these other ones. Why would I switch to yours?" I get the spirit of why someone would say that, but it's really hard to read tone in a forum post.
Maybe I'm naïve but don't see it as snark most of the time. I see those posts as "here is some springboard for you to share the product or your vision and goals.
Sometimes it is genuine snark but I like to believe it is usually curiosity even if it isn't true.
I mean look at Dropbox. The basic idea is so simple. If you've used rsync/robocopy you might think it is ridiculous this product even exists. Doubly so if you're aware of how cloud providers charge so much for network traffic. Even Google Drive unlimited has to cap the amount of data transfer in a day. But there are always ways. For example, I think Dropbox has now limited free users to three syncing devices.
Or gitlab. Like huh? But GitHub exists. And surely git-web or gitea is better suited for a web interface for git? But then gitlab has almost nothing to do with git. As far as I understand, the goal of gitlab has always been to be a complete product.
I bring up these two examples because maybe the comments were snark but the founders seemed to handle it pretty well in both cases (at least publicly). I think their self-confidence shows in the product.
Yes! Or a terse, “this has already been done,” with a link to the project. Some poor soul just said they spent the last 2 years of their life learning to make their project, and you’re gonna hit them with the “been done” punch?
An undercurrent that runs through a lot of Software Developers is that they have to be “clever”. We’re not making shitty toasters, we’re writing products that shake industries and build powerful competitive advantages.
Therefore, if you copy something that already exists, you’re not clever, you’re an imposter, a copycat, shame on you.
It is not enough to be successful, you must be successful and unique, otherwise you might as well go build chairs or something.
The flaw in thinking that once an app exists there is no point in recreating it, is assuming that everyone who would every use that app is already using it. Obviously that is false. Taken to the extreme, think about how many people are getting their very first mobile phone today?
Almost immediately after getting motivated by the parent comment I see this. Reminds me of the few times I released something to HN and other platforms (using another account) and got frustrated because everyone using the existing products wouldn't switch to mine.
I guess programmers usually avoid pitching. That's why they choose the "easy" path - develop something that's never been done before. But it's actually the hardest thing to do.
I've never understood 'just ship it'. You usually only get one shot for people to look at your app. If it's buggy or ugly that's it. They won't try you a second time.
How many times has someone mentioned an app and you say I've already looked at it and it's a piece of junk? Or gotten an email saying we just shipped version 2 and you're really going to like it and you just hit delete?
That's why I personally think you're better off starting slow and getting a small base of customers. Save the press announcements or Product Hunt posting until you've got product market fit and have at least a bit of polish on your project.
The first-mover advantage [0] is very present in popular success stories like the iPhone(1) and it's an easier (less effort and risk) strategy. The strategy having a better product like Facebook and Google Search is not that appealing.
To further elaborate, if you're first you can have an unpolished product which grants you gratification sooner and with less effort. If you want to enter an existing market you have to gain customers with much effort and risk (the competition can react).
Side note: the better toaster was sold first in the 50s and doesn't stop anyone of selling worse toasters :D [2]
Except that facebook wasn't the first social network by a long way, and Google certainly wasn't the first search engine. The phone industry laughed at the iPhone precisely because it was competing with existing phone manufacturers.
There are plenty of ways to compete with existing products, especially if they haven't achieved market dominance. The key thing is can you offer anything they don't. Quality, cost, features, ease of use, etc. What part of the market does their product not address, preferably in a way it's hard for their product to be adapted for.
I had to learn this as well and realized this in my last company that you can build something which already exists.
Mentally speaking: I have optimized my thinking on not doing things twice, not being wasteful, lean, reusing components etc.
If it is solved, there is little reason why i would/should solve it again and yes from a pure thinking perspective, it would make sense to pool all resources together to have one car brand.
The same with a Toaster. Make one good Toaster, make it slightly configurable so you have choices in color and thats it.
This type of efficient thinking is why i get paid.
I'm in this same boat, but 8... EIGHT YEARS LATER! that competitor went out of business, and I bought them, their customers, and everything because I know the way I had more efficiently solved some of the same problems will let me run that business profitably.
I'm in the process of rebuilding the entire system from scratch again with the knowledge I have.
The code I had written before would have been impossible to maintain, their code was written in a language I hadn't used before, and our databases were different enough that trying to merge things would have been insane.
I just saw, after over 18 months of off and on development, that some other company has exactly implemented my idea, minus one key feature. They did a really great comprehensive job.
After wailing and licking my wounds for a day I decided that just because they’ve done that doesn’t mean the game is over. I actually decided it was an advantage because I could just copy their approach to solving certain thorny UI challenges.
Also, it’s validation for my idea. Until I saw that I thought maybe the idea was just a pipe dream.
It’s dumb to drop a project just cause someone else did it.
Maybe programmers tend to give up when they see someone else did it because programmers think the code is the business or the code is the win or the code is the success or something, when in fact success is much more than the code.
This. I'm in exactly the same boat. I had an idea, that I thought would be cool if it existed and that I knew I'd make a lot of use of, but wasn't sure if there was a real market for it. Recently another company launched something similar (a few key differences, but otherwise mostly feature compatible), and it got rave reviews.
So I'm looking at that as market validation, and have now actually started building my own project. I think it is quite helpful that I no longer have the uncertainty of whether the project can successfully sustain itself, since the market validation has already been done, and it looks quite obvious that the demand is there.
When I looked into starting a coding school, I realized something similar. Getting a curriculum is easy, getting a teacher is easy (I can do both and know how to outsource this as well). However, marketing the damn thing? That's hard.
In all fairness, it might be that a marketeer has the opposite view of this. This is how I came to realize that you need each other.
You need teams, eventually, maybe not in all cases, but definitely in a lot of them.
And do it early, marketing shouldn't be something you just sprinkle on at the end - there some things that make marketing easier that can be baked into building whatever it is you're building.
For the coding school idea, I imagine some level of referrals would be one of the first tools at your disposal - something that should be native to the product itself.
As in, you should build your User model with the knowledge you'll have referrers and referees, making the experience seamless from user touchpoints.
Often you see some marketing gimmicks overlaid onto the structure of the site with clunky integrations, you need to make it so that your product by design supports referring as a strategy for it to win out.
For example, Dropbox had their referral tech built in (refer someone, get free storage etc...). They set their product up to utilise their chosen marketing strategy effectively at the base level of the product. At least, it felt like it was ingrained.
Experience taught me the opposite:
If nobody have implemented your product idea, most likely it is because there is no need for your idea. If you don't find any competition - quit.
The way you are going to be executing on an "idea" is what counts. Seldom is the case that the first one implementing the idea is the one that ends up taking over most of the market.
Being too much behind a product idea is doubly bad, because an idea isn't a business. You need some plan for how that'll progress over time, or how does any delivery, licensing, or potential investment get managed?
I'm about 1.5y into a startup that's picking up steam, and I've stopped feeling worried about similar "ideas". We have a plan for who wants our product, what they care about, and how much they'll pay for it. We have an platform that can be used to support a plethora of unique marketable products. We have a sales team in place. There's so much more going on than the original "what if we used version control thinking with contracts and legal knowledge?"
You're probably right, if the main goal is to earn money. Still, it's also like telling Edison that he should quit looking for a commercially feasible design for an electric light bulb. We need both types of entrepreneurs and people, both the types who persevere in seeing an idea through, even if they're alone in thinking it's a good idea, and the types who "merely" improve on existing ideas and products.
Sometimes it's not just about shipping but also about knowing how to approach it and having the vision. Case in point - many many years ago, around 2004 or 2005, I built this stupid app with a couple of friends - it was a text message based gossip app where you can share updates on celeb spotting and subscribe to get notifications by tags or locations. Whatever. It didn't pick up understandably (it had like 200 users in our city), but we thought maybe we'll pivot it:
We aggregated the reports into a website with a nice feed, and then we thought, what if instead of one feed about celebs, people could just post whatever they want via text messages and others could follow them and get the texts or view the feed of these short (140 characters or so?) posts on a website? It would be kinda cool.
But mobile providers would not allow us to send media messages, and we thought the idea just kinda sucked and is not worth a start-up, especially since now we have group text messaging in newer phones! And MMS support that we don't have.
So yeah, I've basically written a proto-Twitter a bit before Twitter existed (the gossip version also predated Gawker Stalker by a year), but the harsh reality is that it didn't take off because of me and the people I worked on this with weren't made of the stuff of people who start billion dollar companies.
That "stuff" is utter lack of scruple and astronomic amount of luck, don't feel too bad. If there was someone like that among you, you'd probably end up like Noah Glass anyway.
Maybe. One other funny anecdote about this project was that I attended this big tech unconference around that time, and I wrote a version of this app that allowed people to post updates from sessions, notify about upcoming sessions, follow hashtags, etc.
So there I stood in front of 200-300 entrepreneurs and investors and internet pioneers (there were even a couple of billionaires or people who later became billionaires in that crowd), and I pitched it to them so they'd register and use it.
The response was pretty lukewarm and only few people used it.
And not a single one saw anything special about the idea. Which again, is probably how I presented it more than anything.
But anyway the moral of the story is that contrary to popular belief, being in the right place at the right time, AND coming up with a "how come on one thought of that before" idea before anyone else, AND actually delivering a nice MVP - all those are not enough. Eventually it comes down to things like tenacity and charisma and boldness and obviously luck.
This happened to me in 2010. I love hiking, and when you get to the top of a mountain one of the things you do is look at all the other mountains and figure out which ones they are. It’s called name-that-peak. Sometimes at scenic overlooks there’s a nice hand-drawn placard with all the peaks labeled, so I wanted to make an app to do that.
When I started, there was kind of a website to do this already, but it was absolutely awful and I knew I could do way better.
So I did. I spent 100-150 hours working out all the math and coding up the program to reproduce that placard from terrain data. I still have all my notes. It was kinda slow — one panorama took 4-6 minutes to draw — but it worked.
And then I didn’t ship. Life got in the way, and it was always harder for me to do the second 50% than the first, even though in this case the first 50% was way harder.
Three years later, one of my friends shared an app with me, just released. It did the same thing. The author did a good job describing how I felt then too, how the app was good but I hated it anyway. I never used it, probably because I ended up moving overseas anyway to a place without free high-res terrain data.
That was my best chance to date to do something I’ve always dreamed about: make something cool that a lot of people love to use. Novel, good ideas like that don’t come along very often.
> After 2 years of development, juggling between the fucking horror that's the web platform, React Native, Expo, GraphQL, bitching about how there's no ideal tech stack, the good old jQuery and Filezilla days, switching to other projects, releasing other apps, losing passion, finding passion, coming back to the app, etc. etc. etc...
> I just dropped it.
This sounds like a great project and a really good outcome. OP learned a lot and the project provided motivation for him to explore interesting tech and gain real insights about the drawbacks of each. If I had gotten that much of all my side projects that would be great!
If your expectation is that each side project will turn into an Instagram style success story, you’ll most likely never be happy.
One thing I find useful to remember is that every new feature is a new blog post, a new social media post, and more opportunities to promote yourself. Shipping with all the features is basically taking away a lot of those opportunities. Whereas if you ship small, you can keep creating buzz about yourself for the next two years and bring a lot of users on the journey.
I ship. But I fall flat on my face when it comes to YouTube explainer videos and blog posts. I published 4 videos when I launched my app over a year ago and have been coasting on those ever since. I have so much new (and relatively) exciting content queued up. Why don’t I write and film? Because the editing experience is EXHAUSTING. I can’t “fix a bug in a video” like I can with a new feature. Every day, when I’ve got a few hours to work on my project the last thing I want to do is film a screencast. Honestly, my problem is my standards are too high (script, quality, music, flow, etc) and I’m just not good at it.
I understand when you say creating screencasts is hard. It took me sometime to get to a point where it takes me just an hour to record a 5min video (can also be read as sarcasm, because I find it hard too).
I know where you're coming from. I'm far more comfortable working on my library's codebase - fixing, improving, etc - than I am with planning/writing/creating "promotional" stuff about the stuff I've fixed and improved in the latest release.
Promotion work is Hard Work. It's also depressing work when nobody notices the post ... or maybe I'm just too needy.
Loved the video, btw. I'm guessing the canvas part is Fabric.js based?
Yep, Label LIVE uses fabric. It’s all wrapped in a React app that syncs state with redux, and app state elsewhere (e.g. user design files saved to disk).
Blimey, a competitor app. I should have shipped 2 years ago.
Joking aside, great app ! I haven't actually started writing such app, but I did consider it; This definitely fills a void. I wish you the best getting more users !
To me this sounds like the 1-in-a-thousand project that was commercially right on the money, that was an exception to the general rule.
I've released projects, but no one gave a damn. If someone could figure out how to monetize on parallel tracks, some idea that I had... well, cool. I couldn't.
This ain't 2000, when you could be just name any service, google to see if it was on the Internet, and just throw it on there to start raking in the big bucks.
Most projects die of disinterest. So, it doesn't matter if you release, or not: it'll die anyway.
To do better, you have to either have marketing, or a product that solves a real market problem.
But that process isn't that easy, and if you weren't intentional from the beginning about this, you're probably not losing much, talking your time to learn something well.
Yes. Nice story but I feel like the complaints about the slow UI and the rest of it should have been fuel to go back and finish the app. Plenty of companies have made their name doing old ideas, but better.
Though, I can definitely understand that looking at a finished app and thinking "there's still so much to do on mine..." can be so overwhelming.
I think this is an issue with software developers. They think "if I just build it" but I look at that story and think "they weren't really serious. The other developer probably gathered a team of 5+ people and together they did all of the things the lone software dev didn't want to do. Sales, Marketing, Docs, Websites, sign up, customer service, etc etc etc.
I can ship a library or a demo or a small stand alone thing but it can be 10x commitment to actually ship a real service. Deciding to actually do the other 90% of the work is a pretty big hurdle for many, me included.
I work with people and keep pushing to ship it but all the non-engineer members are pushing for more features. I don't think it's just a software developer issue.
My point was many software engineers see the product in their mind and think "I can build that!" and think that building it is 99% of the work and if they just built it the money will flow. But it turns out building it is only 10% of the work and when the other 90% of the work presents itself the drive to ship disappears.
In the OP's case the people that shipped found a way to get all the parts needed to ship read. The person didn't ship probably just wrote some code and never even considered the other 9 of 10 things that would need to be done to actually ship.
I'm probably thinking of myself to some degree. I made a product. Maybe I didn't have enough confidence to find partners or investors. I piddled with it for about 18 months, had a few public displays, and then at a trade show I saw someone who was serious with basically the same product but unlike me they found investors, hired people, and had a real company. They didn't just make some tech and a demo (what I did).
Shipping is important. It's a nice feeling to get it out there. But to imagine that if you'd just shipped it then everyone would be using your app instead of someone else's is nonsense. You're in full control of shipping. Getting distribution for your software - getting it to really take off - is super super hard. Being an engineer, I think we tend to gloss over this part.
I'm working on a product in a very crowded space (issue tracking [0]). Shipping is the easy part. The day to day grind to find distribution and drive more and more users to your product, that's the tough bit.
Is there a pricing page on your site? (also, does it sync issues to GitHub issues? I'm trying to find something that does for very non-technical clients where we don't want to give them full access to GitHub)
At one point we did have syncing to GitHub issues (e.g. an issue created in Kitemaker was automatically created in GitHub and vice versa, labels and comments were kept in sync, etc.). However, we ended up dropping this feature because it wasn't very popular with our users and it was a tough one to get working perfectly.
I'd be curious to know if there's interest in such a feature though. We could always resurrect some dead code ;-)
We would _definitely_ be interested in that. We have a few very non-technical clients who would just be a bit overwhelmed by GitHub. Add into this that GitHub's permission levels don't allow you to have an issues only user (their official recommended way to do this is to have an entirely separate repo, just for your issues!), AND that we would like to set 2FA as mandatory for organisation users, but then we're back to the non technical users for whom the whole concept of 2FA is alien.
Thanks for the pricing info too. Sounds promising.
Regarding pricing, we'll be rolling that out soon (I believe next week). Will be a free tier for up to 6 users or so and then after that something around $10/user/month.
This guy is hilarious. I actually laughed reading this line: "Every time I'll get a payment notification it's gonna feel like stepping on a lego"
Anyway FWIW it's good and not bad that you found a successful competitor doing what you wanted to do. It is not the end of the line rather somebody else has validated the idea for you. The only time you should actually worry is when you can't find one single competing product to what you're building.
BTW as you put it that their app is slow buggy, there seems to be a lot of room for improvement and so it's still not too late and maybe time to outshine your competition and eat/share their lunch.
A few years ago I came up with this orders portal idea at work,which nothing special on its own,but was unique to the industry. My manager blocks it on the basis that it isn't easy enough to use and our clients would definitely need a,b,c features. Eventually we drop it all together. After some time, my manager quits and I took over his position. After a few months I have a meeting with sales,who are asking how long would it take to create an orders portal. I explain a bit about my previous attempt in a vague manner and they tell me that anything woul be better than nothing and should work on it. We launch after few weeks.I tell the rest of the management about my new ingenious solution. Clients love it. It's basic but it's zillion times better than anything they had before. The thing is now part of the offering to large corporates and it did help to win some nice contracts. The portal is still buggy,a bit hard to use, have very few features and so on.
If I was him I'd be shipping it immediately after seeing that. If anything it's encouraging and you should be highly motivated to make your product better knowing that there is competition out there that are actually converting customers. There's very few ideas on the internet that can only sustain one party tackling them. When this guy notices in another 2 years that there's now 3 other people who have launched a similar service while he sat idly by he's going to feel even more silly.
To remove pressure from yourself as an indie dev look at shipping as a starting point, not a critical event that needs to be perfect. It will be messy, it always is, BUT there's a lot of value in real feedback and will give you ideas you would have not had otherwise.
A quote from Kevin Ashton: "Nothing begins good, but everything good begins. Everything can be revised, erased, or rearranged later. The courage of creation is making bad beginnings.
I've been in the same boat for 12 years now. I have a litany of half-complete revolutionary ideas. Believe it or not, I was working on a HelloFresh type product in 2008, before HelloFresh even existed. The exact same premise, except my idea required no pantry staples: every ingredient in the box from oil to sauce. People told me I was crazy, but look at services like that now...
It is hard to get out of the mindset of just shipping something, because I was raised and taught that first impressions matter.
I didn't think of any revolutionary ideas, or come close to a successful business like lots of people, but...
My first job was answering the phone for an early dial-up ISP, and since I claimed to be able to program, one of the two founders (I forget if it was the tech guy or the business guy) suggested that a good project would be some sort of electronic auction/want ad system. I was like, hm, ok, I have no idea how to do that, maybe I will read about electronic auction systems at the university library. Where I got overwhelmed and didn't do anything further.
But in retrospect many years later, they asked me to invent eBay the same year eBay was founded and the internet as we know it was taking off. It's hard to shake the sense that at that moment in history I could conceivably have done it if I simply had no sense of my limits and infinite energy like many successful people. Instead I proved I wasn't cut out for customer service and they laid me off before the company was acquired.
That's why there are many products with a test client at inception. You localize the initial issues (which would cause those bad first impressions) to a single client who you can spend the extra time to build up good faith with. Once you've built up steam you can expand to more clientele with bolstered confidence.
Though, one problem is that you risk over prioritizing client-specific edge cases.
It was 2003 and I was playing with idea of Linux in a notebook without a keyboard - touch interface, minimum amount of ports - not for long. And than iPhone and iPad were announced and I was like "it's obvious, why I never shipped?".
Execution matters, people were working on this idea at least since Dynabook (1972). It is that hard.
A few years back I released an app that was almost a direct copy of another app. It’s made enough to buy a Tesla S. Never let people say “How is your idea different from X?” Honestly, sometimes it doesn’t have to be... much or at all.
It was a plugin, so I relied on the plugin directory to do the marketing for me. Other than that, it was priced competitively. Enough people matriculated through. The app itself sucked (was new to programming), but it did made money.
Since then, I've actually tried to do a lot of what's considered "best practices". Ironically, none of these techniques (which many thought leaders promote) actually worked for me. It may have worked for them (eg. prelaunch list building, getting influencers to use their app and promote it) but as a relative nobody, I think the rules are different for folks like me. I like to think I need to be scrappier and to simply do things that are counter-trend.
I suspect there's a large contingent of developers making a decent side living who aren't really talking much about things (too busy, family, other hobbies) and what they did to get there. Sometimes it's luck, sometimes it's just doing really dumb (but obvious in hindsight) type of things.
Over the years, I've grown skeptical about a lot of existing indie start up dogma that's been built up over the years.
My favorite just ship it story is the software to control the first SpaceX droneship landing attempt. The developers told Elon that there'd be no way the code could be ready in two weeks. He asked if they could give a 50% shot, they said yes so they shipped the code:
This holds true for many startups. If you ship, you learn. You may think you know what your customer wants, but until you get it in the hands of users you won't know what features really matter.
Hm, if the statements in https://www.youtube.com/watch?v=bvim4rsNHkQ are correct that failure was because they ran out of hydraulic fluid, not software (but maybe/probably that's not the complete story)
I think this story is less about shipping the product and more about treating a product as a product and treating a hobby as a hobby. If you're working on a new project that you think should be a business, you need to atleast have an idea going in what you want to achieve and how you want to achieve success. I feel like you could read the next blog post in this series and it will say
>"I learned to "Just Ship it" but I thought "If I build it they will come"
And then it'll be about how putting some code out the door isn't the same thing as launching a product.
Or you find a customer base you didn't expect. Which has happened on products I've worked on a couple of times.
Not to mention a lot of markets look like this. Takes a year before they notice you. A year for them to realize you aren't going away. Another year before this buy anything. Another year before they buy in quantity.
Consider those first two years. None of those guys would know your current product is a POS because have haven't bought any yet. And they won't really mind finding rough edges as long as they are convinced they'll fixed.
I've never shipped anything commercially on my own. But my gut feeling is that there's a fear of, "I'm going to ship something that's not great, and so people will look at it, decide against it, walk away, and my chance is gone forever."
I have a feeling that in reality there is always a constant stream of new potential customers who will consider your product, and eventually the number of people who reject it and walk away will start to go down.
This happened to me a long time ago - i was making a "social" type product that was location based and a competitor launched theirs too but their founders were famous and they got loads of users straight away. In social, network effects matter so launching first does have a large benefit especially if the idea is new.
I gave up on the idea a few months later but kept an eye on the project. It didn't take off the way it was supposed to, and I have a feeling that if I was still working on my version I could have pivoted and taken advantage of what I was learning by watching them faster than they could have (they had so many users etc to support)!
And that was in social - in most other products network effects are nowhere near as powerful e.g. I tried linear.app for a side project even though i actually enjoy using lira at work. Since i have many projects it's easy to try new things on some and drop / change what doesn't work.
I think the "just ship it" oversimplification comes from the fact that getting user feedback is vital for most products. It doesn't mean that launching first is the goal though. The product I'm working on now is in a super crowded space (landing page creation) but it has an edge over others for a particular type of market (developers who don't want to mess around with UI, drag and drop etc but still want beauty and control) and even though the product is "ready" im not "just ship it"-ing because I'm busy "talking to users".
For me, "just ship it" is a totally wrong advice to give, in the same way as "we will ship is when is ready"(and never is ready).
You have to plan ahead, know your limitations and say NO to adding things you can not complete on time. And you have to plan for things that look simple being much harder to implement in practice.
You need discipline for saying no, and it is not as funny as just trying new things all the time(new languages, new platforms, new methodologies, new projects). But you are an adult, not a kid, you should be able to control yourself(and most people can't BTW, they drink coffee and smoke because they need external controls instead of internal).
You should try new things, but not too much. It takes time for being efficient and master something. There are diminishing returns too but productivity while learning something new is almost zero compared with the master.
How much is too much? It depends on your specific job.
I recommend people to write down and document the actual real work that something takes on calendars and their expectations.
Over a period of time, you will be able to compare your expectations to your actual work in detail. You will surprise yourself where you spend most of your time.
Then you will be able to take decisions and say NO to those areas that take most of your time and give you back little on future projects.
Something that makes me a bit reluctant to "just ship it" is that you can post things on HN and producthunt only once, so often I'm motivated until I do that, so that my launch is more succesful, but then later I think: Only a few users, is it even worth it to keep working on this? I wish it was possible to keep people who upvoted/liked your product updated. Or maybe poll them on things like: Would this feature be valuable to you?
If they like it enough to sign up/give you their email, what’s preventing you from sending them an update? Or sending them a simple questionnaire?
I would be careful when considering an upvote a positive signal. At the best, it’s someone showing they are just on the line of being interested enough to sign up. At worst, it’s just empty validation for an idea that won’t work.
Being first to market is overrated, once the market is established you have much better information on how you can carve out your slice, whether that be on pricing or some other point of difference.
Even the established players in a field get complacent or too large to move quickly to address an emerging need and leave themselves open to disruption.
It might be overrated, but clearly it STILL MATTERS. I mean the entire article is about a developer who stopped working on an idea because he was beaten to market.
That is more about him and how he reacted than how it actually works in the market. If you have a better vision and a better execution, you can worry less about being the first, especially in an industry with a low barrier of entry.
You did not lose time, you learned. You could have built and shipped, it still would have needed a lot of effort (and luck) to be successfull. Next time you have a project you already have that knowledge and you can capitalize on it. Don't the say that "The doing is often more important than the outcome".
> Don't the say that "The doing is often more important than the outcome".
If you're burning through your own money to bootstrap something, wrong/bad decisions made early can cost so much time and money it makes it unfeasible to continue. If you're burning investors money, it's less devastating personally and you can afford that expensive learning.
Yes, I was going to post something similar. The author leveled up personally and professionally over the course of this experience, so it wasn’t wasted effort, just an unexpected outcome.
An important part of being a founder is learning from experiences that don’t go as planned. It seems like the author has a really good attitude about this.
I was a part of a project like this. A LOT of money was dumped into development, we built stuff from scratch, took months and months of hard work - and it felt revolutionary.
Then HUGE COMPANY X released the exact same product but 50x further along and we could never compete.
We all walked away feeling like shit, with a lot of money and time down the drain, and our tail between our legs. Most of us on the team haven't spoken since and it's been about 12 years.
Now-days I work on projects where competition doesn't really matter. There's a lot of other people doing the same thing, but we're all a little different, and just different enough that everyone who likes these types of products buys them all if they're good.
I recently found Responsively [1], which looks a lot like OP's Sizzy [2], but I doubt it's about those apps, because Sizzy has been shipped for a while now, and Responsively is free (Kitze mentions paying in the article).
Developing without shipping is saying "I know what my (potential) customers want better than they do". People with big egos may actually believe this; but I think most people pretend they believe it so no-one ever gets to criticise their precious.
Either way, it's a monumetally stupid position - just about everything ever sold has been massively improved by customer feedback.
The exact thing has happened to me over the years about twice now, even though some of my more recent apps I have actually shipped... It frustrated me so much that I decided to not take anymore contracts for a few months and just put my head down and pump out a few mac / iOS apps I've always wanted to make...
I try to release early because it's a lot easier to prioritise issues on something that's live. I find the motivation to update a live product a lot easier to find.
It's also a lot easier to improve a product I use than one I'm just running locally. It also gives the website some time to rank in the search engines.
It's particularly pertinent I've had this tab open for 4 days meaning to read it. wow.
In that time, I had plans and started an app and decided to leave it for too long thinking now one would like it. Then that sailing game was on the front page of HN, that's almost exactly what I was working on.
I also have a pet project in development about making a google sheet more presentable for users, does that sound familiar to anyone else? Yeh also on the front page recently, not mine though.
I just keep telling myself, ideas are cheap and don't get bummed out by it. Good job everyone else executing. I'll still make some of them anyway.
I'm building a business facing SaaS for a market with about 10 current incumbents of varying scale (millions to billions of revenue). The technology is about 40, maybe 50 years old, my stack will be a bit more modern but still based on ancient specifications.
Once my product is close to parity with the basic competitor offerings (i.e. copying 1-2 features and ignoring the rest), I'll market it and I'm hoping that my automation level will give me a massive margin that allows me to operate at a lower scale and still churn out a decent amount of net profit each month.
That's why when I hear stories about "being perfectionists" or "you have to use X technology, because X is perfect/everybody uses it/it's 'best practice' and the rest are second-class" I get skeptical
Facebook still uses PHP. PHP! Can you imagine if Mark had stopped to rewrite the thing in, I don't know, Scala because PHP sucks (well, it does, but it works)?
This was a funny read. I think a good way of thinking about this problem is: it's not a matter of shipping the product. That is, putting the product into market but, a matter of getting your product into customers hands. The market and shipping is really just a means to that ends. Also, knowing what features customers need and what features customers can do without helps a lot.
If this is a habit, then I agree you need to just ship more. On the other hand, a lot of people ship half-baked stuff and then move on, leaving a trail of disappointed users and never learning how to actually polish a product. I guess the latter is marginally better than the former, but I prefer a goldilocks approach to shipping.
I spent a few years on a (semi) clone of a game only to have one of the original creators essentially show up and announce an official remaster. I did eventually ship, but man if only I'd shipped earlier...
I’ve been writing ship software almost my entire adult life. Not everything I’ve written has been good, or successful, but most of it has shipped. Some of it has been quite successful; usually in ways I didn’t plan.
I remember a manager I worked with, once wrote on a whiteboard at our first project meeting:
”The #1 Feature is SHIP.”
That project was a difficult and ambitious one, with a huge amount of tension between over-structuring and over-featuring, but it did result in a shipping product that was quite good, and lasted for a number of years. It’s been decommissioned for years, but still runs today. My wife still uses it, and dreads when it will finally die.
The first version wasn’t what we wanted, but it grew into something a lot better.
I also worked on a project that was killed just before it was to ship, because it couldn’t meet spec, with all that “between done and ship” stuff.
To this day, I don’t know if we made the right decision, by doing that. I have never encountered any software that does what it did, anywhere near as well as it did.
Wasn’t my decision. I would have shipped it. I think it would have revolutionized the workflow, and set a high bar for everyone else.
In my experience, there’s a huge amount of work that has to happen, between when we declare it “done,” and when it’s ready to ship. It’s important to plan for it.
It’s quite possible to overplan, but, in my experience, it’s a lot more common to underplan.
Here’s a metaphor that I use[0]:
Shipping is boring.
Ever watch a building go up? A good prefab looks complete after three months, but doesn’t open for another nine months. It looks awesome and shiny, but is still behind a rent-a-fence. What gives?
That’s because all that interior work; the finish carpentry, the drywall, the painting, etc., take _forever_, and these are the parts of the building that see everyday use, so they need to be absolutely spot-on. The outside is mostly a pigeon toilet. It doesn’t need to be as complete; a solid frame and watertight is sufficient. They just needed it to keep the rain out, while the really skilled craftspeople got their jobs done.
I like to make stuff polished, tested and complete. I don’t like making pigeon toilets.
If that were me, I’d have sent them an email, I’m sure they’d be happy to talk to you, just have to be a bit tight lipped about details of what you did until money changed hands.
Also, if I learned anything over the last few decades it is that the market supports many solutions to the same problem. Why do software developers believe that if someone gets there first that's it it's done? Someone invented and sells a toaster? Done. Someone started selling bikes? Better ditch my step design. Cars? Just one brand, obviously.
People release apps into oversaturated markets every day. Most fail, some do well, and not because they were better in every way than the competition, just because they were different, they were tried, and some people found them to be 'Good Enough'.