The commonly accepted practice is for the sales team to have their own CRM system, used to maintain contact information and manage the sales pipeline process. However, at an organizational level, this disconnection is suboptimal.
The role of the sales team is to bring in new business and, depending on how you work, also to sell extensions to existing agreements (change orders). However, often the latter is managed directly by the delivery/project managers using a separate process without access to the CRM platform, rendering the business pipeline view inaccurate. If your CRM system is non-transactional (as the vast majority are) the generation of a contract related to an opportunity record will entail some degree of manual processing, spreadsheet pricing models and word-documented contracts. The relationship between the actual contract being negotiated and the values shown in the CRM system can easily drift apart and create inaccuracy at exactly the time when the data should become firm.
This dissonance between the sales team reports and actual contracts executed is common if not the norm. It is accepted because constructing a CRM system that actually executes a contract has previously proven too difficult given the functional model limitations of stand-alone CRM platforms.