It's easy to make 50% of an app
I have seen a lot of people lately enthusiastically posting about how they made a software application in less than a day using AI.
The problem with this is that while they might have made a proof of concept, this is far from a finished app.
This is a misconception that actually predates AI, and the following logic applies, AI or not.
You might think that when you have developed 50% of the functionality of an app, you are 50% done.
Let's say that it took you 1 week to make a proof of concept with 50% of the full functionality. You might be tempted to think that it will take you 1 more week to finish the app.
However, in reality you will often find that developing the last 50% will take not one week, but 3, or 5, or even 8 weeks.
Why is this?
1. You didn't actually finish 50% of the app
People have a tendency to think about the "doneness" of a software project in terms of how much value to the user is implemented. So, while you might have implemented 50% of the value, that does not mean that you have implemented 50% of the functionality.
In any software there are lots of edge cases and behind-the-scenes logic that do not provide much direct value but nonetheless are necessary for the app to work.
2. Complexity grows with the size of the codebase
This has been talked about extensively, so I'll keep it short. In software, the more logic is implemented, the more difficult it's going to be to add more. This means that even if you really have implemented 50% of the logic, implementing the last 50% is going to take longer than the first 50%.
3. Forgetting about dev-ops, legal, etc.
Going from having an app that works on your machine, to an app that other people can use is a lot of work. Can you say that you "built a website" if it's running on localhost?