Being a smaller company is good in one way; you can make decisions faster and move faster. Big companies have a lot of resistance to change. That is why you see most innovative ideas and products come from smaller companies. If you want to challenge this, try to list out the great innovations that came out of biggies like IBM, Yahoo, HP, Microsoft, Oracle, Google etc. in the last 5 years.
But smaller software companies have their own issues. Let us leave the financial pains they go thru. Let us list out the technical pains alone.
Lack of tools
Every software product need to go thru a variety of validations - mobile device compatibility, high performance, total application security etc. Being a small team, there is a lot of pressure in identifying the right tool for these and then to procure them. But without these tools, your product cannot be tested 100% on the above said areas. Finally the small company compromises to do all these stuff manually or postpone the activity itself.
Lack of expertise
The startup and small company founders will be technical. Unfortunately how good is the next level when it comes to technical competency, is a big question. Unless the company is able to raise fund and attract good talent, it is very tough for them to have the internal expertise. Also when the best member is stuck with a technical issue, it stalls the whole team and all of a sudden everything comes to a stand still state.
Unexpected developer loading factor
Many to most of the times, product companies try some features, get feedback, change or pivot. So the developers in the company may not be 100% loaded all the times effectively. This creates another problem - should we have them full time or not. In this dilemma, many make the mistake of outsourcing the development of the product itself or engage free lancers. This is the costliest mistake many do, even today.
Top management is busy in fund raising
Founders get so tied up with fund raising activities and this creates larger gap between them and the product engineering team. At some point, the founders look at the product as something that is done by others and not feel it as their own. When this happens, the founding team needs a very close mentorship from the advisory committee.
Improper release management & documentation
Teams focus more on developing and testing, but miss the very important part of release management. Especially when you are on cloud, if the team is not trained properly on continuous deployment methodologies, you will start getting furious complaints from customers on downtime and regression issues. If this is not done properly, all the good work done by developers go to the drain.
Your product must be accompanied by good textual documentation as well as video recordings. The more you enable your users and customers to read your content, the less will be the unwanted support calls. If documentation is not good, most users try your product, but leave very soon.
Problems do exist and you will get newer problems. But it is your spirit and passion that can overcome every single problem. The management must be extremely fast to fix these problems. Else it will be very tough to scale.