Thanks for sharing your perspective. And thanks for giving me some food for thought.
Tl;dw:
- I think you should do what has the highest value to the world divided by the time it will take you to do that (although, I chose to focus on my existing project (CodeAssist) with a different mindset). More or less, there are some other factors that might be taken into account as well.
- General problems take more time, but they also have more value. Investors can help to mitigate the risk related to do things that take more time or have low probability to succeed.
- I plan to start from something simple, and then incrementally improve it.
- I probably don’t have any idea that I could implement in 1 week and get significant income from that in 1 week. If I could get significant income in 1 week, then I would do that.
Let me write it in my own words so that I can process it. If I twisted your words below, then feel free to correct me.
"The projects that I have described solve problems that are too general. You should do a project that solve more narrow problem because:
- It will take you lots of time (months and months) to get to any income.
- Big companies solve general problems too, so you will have to compete with big companies for users.
You should do something where you can sell the idea before you even start programming.
You should do something that people need.
You should do something you can program in a week because:
- The hardest part is not programming, but getting people to know that the product exists and get the to pay for the product."
Ok, so I will analyse each part now. I don’t know if my answers make sense, I will maybe reconsider them later, when I have more time.
“The projects that I have described solve problems that are too general. You should do a project that solve more narrow problem because it will take you lots of time (months and months) to get to any income.”
With solving general problems comes greater value, but they also take more time. I choose to work on problems where the ratio of value to time is the highest, and when that the time doesn’t exceeds the amount of time that I have until I runaway of money (if the amount of money exceeds the time that I have, I can work on that too, but I need to create a proof of concept and then find an investor). That is because choosing the projects that you will work at is the Knapsack problem (where time is the cost, and the value of the project is the value). One of the solutions to the knapsack problem is the greedy solution (as you can read about it on Wikipedia) and I’m applying that solution. In my case, out of the ideas that I have those happened to be general problems.
So to sum it up, I agree that general problems require more time, but they also give more value, so that bigger value compensates that time. Although I still would prefer to work on something that doesn’t take lots of time because there is a higher probability that I will finish it because with a goal that takes lots of time, I might switch to something else (and sometimes its rational to switch to something else before you finish the previous thing).
“The projects that I have described solve problems that are too general. You should do a project that solve more narrow problem because big companies solve general problems too, so you will have to compete with big companies for users.”
The way I see it as follows. The more we go to the future, the more the reality is that there are few companies that solve a general problem. The more we go the past, the more the reality is that there are many companies solving narrow problems. I think the endgame is that there will be few companies solving general problems, and many companies that solve narrow problems will die because people will simply be able to use general tools (like ChatGPT) for solving those problems. So I think that the way to create a company that will survive for a long time is to create something that will be either integrated into a product of a general company (e.g. ChatGPT), or create a general problem company. I agree that it might be difficult to compete with a big company, but as long as what you create is based on a unique idea, then the big company has incentive to accept and integrate into their product in some way (either by creating API on which people can create plugins, acquiring the company or in some other way). And if none of the company is open for people’s contribution, then that company will simply lose the competition with someone who will attempt to create a general problem company that will be open to contributions.
So as long as you create something that is unique or works in a unique way that fits somehow into the endgame puzzle, I think you should be fine.
“You should do something where you can sell the idea before you even start programming.”
I agree, although not fully, because if you try to sell the idea before you start programming, then sometimes people simply don’t see how it can be useful. From my experience (I’m stating that based on my experience with CodeAssist ( https://codeassist.tech) ), whether or not I would use my product myself is a better estimation if people will actually use the product.
“You should do something that people need.”
I agree and I think that the ideas I suggested are things that people need a lot.
“You should do something you can program in a week because the hardest part is not programming, but getting people to know that the product exists and get them to pay for the product.”
I understand that the logic behind that statement is that if you create something for a long time, then after a long time of creating it, you might meet the reality and learn that people don’t need it, and then you’ve wasted your time.
But when you create something big, you can start with creating something simple (that takes a month to do), and meet the reality with that.
I also think it depends on a project what the hardest part is. For example, if you build a social media site, then the hardest part is getting users. If you build AI with capabilities that are clearly useful, but nobody has done that yet, then the hardest part is engineering/programming. So I also think in case of a project where the biggest difficulty is engineering that logic doesn’t make sense because the probability that people won’t want the solution is very low. And you don’t need to learn about what people want, in that case, but how to create it.
So with my projects, depending on the project, with some projects, where the hardest part is getting users, I’d start by looking for users, and then surrender if I fail. With other ideas, where the hardest part is getting things to work, I’d create a proof of concept, and then look for an investor. If I fail to find an investor, I’d either surrender or simply work on the project months and months, gradually iterating to make the thing more complex and work better.