If you are into tech, then you must have heard this debate between product based companies and project based companies.
Even though on surface both are software companies but they have a completely different DNA. They have a different culture and they encourage different type of habits. Members of a product company think DIFFERENTLY than members of a service based company.
Here are the biggest differences between them
All the thinking is outsourced / done by the client
In a service company, Client is expected to come up with the feature set. The client is expected to understand the users. The client is expected to think about the UX. The development starts after the specifications are finalized. This is a passive way of developing software. The developers are not required to think or understand the product. They are simply expected to follow the specs. It is very difficult to get a sense of ownership
Insulation from technical debt
In the service industry, the cost of technical debt is borne by the client and in case the company is very skilled in negotiation, you can even get paid to fix the bugs which you introduced. Since there is no risk of crushing under technical debt, there is no real incentive to leaning proper engineering practice.
While in product company the cost of technical debt is very real( we have faced it ourselves) . Since the cost of technical debt is borne by the company, here is a real incentive to learn and follow best engineering practices.
Insulation from the Project Failure risk
Projects fail, Products fail. This is the reality. But if you are a project company, then majority of the risk is borne by the client. Project company will get paid no matter the client succeeds or not. The worst that will happen is that company might have to write off the last installment.
While in product company, failure of a product can often result in shutting down of the company.
Focus on Sign-Offs
In service company the money is made when there is a sign off. The product is secondary. If you manage to get a sign-off while delivering a shitty product, it will count as a win.
In product company whole system is geared towards making something which user will use or pay for. There is no authority to do a sign-off. Usage and engagement is the only metric which matters.
There a lot of other differences, but in my opinion, these are the most significant.
I have observed that developers coming from project company background have a hard time in a product company. And it is not because they lack talent or knowledge, but it is because they have a different set of habits which they develop while in service based company. So If you are a developer then understanding these difference can be essential in deciding about which path to follow.