Nowadays, your average CRM Product generally will either be an open-source product or a proprietary application. This means that each type of CRM Product development process entails its own peculiar growing pains that distinguish the CRM Product development process from the other kind.
With the open-source type of product development, the aim is to lower costs by allowing members of the open source community (composed of Joe and Jane Public) to access the source code of the CRM Product itself and even make their own changes to it. This allows them to make a completely new version which is still based on the original code produced under an open-source license. The reason anyone would be trusting enough to do this is so that better engineering of products will result and the developer gains insights as to how he can make his original open-source CRM Product code much better in the future.
Such open access to the prized source code would be frightening to the proprietary type of developers, whose entire business is based on the fact that source code for their CRM Product is secret, and only open to authorized users. To be able to gain access to proprietary source code and not pay for it would mean that the proprietary developer does not gain any income or profit from your acquisition of the CRM Product and the developer will literally raise bloody hell because such developers believe they alone have the right over that source code and anyone who wants access to it should pay big money first.
Which is the correct approach to take? No one can say for sure actually because there are instances when open-source access does work and helps in the creation of better engineered CRM Products. But there are also cases when guarding over the copyright to the source code can pressure the developer to make any necessary changes himself. There is no hard and fast rule in CRM Product development hence the term growing pains is very appropriate.