Request for proposal documents for custom software development services could be written by a business analyst, product manager, product owner or project manager, the main thing being that it should be done in collaboration with a technical person who has the basic understanding of how things described in the request for proposal can be done.
In order to get an accurate quote for a fixed price custom software development product, the request for proposal needs to be as detailed as possible. The process always starts from the customer presenting what he needs to be implemented, and continues with a series of refining steps in which both the development company and the customer must participate. The number of steps until an accurate offer can be made, depends on how detailed is the first request for proposal document sent by the customer.
As time is a sensible subject for both the customer and the software development company involved, the initial request for proposal document in which the customer presents the details of the project should include as many of the following points as possible:
In this part the customer should not be concerned with describing a solution, but with describing as best as possible the problem the project should address. This point is required in any request for proposal.
The customer should explain what the project should accomplish or what outcome it should have. Knowing concrete goals will help the vendor analyzing the possibilities of implementation.
Here the customer should describe all the services needed in implementing the project, and more importantly he or she should specify the services that are not needed (for any reason, either because these services are already provided by some other development company, or because the project budget does not include them) in the development process.
If the customer has in mind any deliverables for needed services he or she can mention them. Anyway, for a fixed price project, the development company should provide in the final offer a list of deliverables for each service it will provide. Mentioning the deliverables is not a critical point in the initial request for proposal document.
In case the project has a specific date until it should be finished, the vendor should know it, so that the final offer can also include an accurate timeline of the development process.
If there is already a technology selected for the implementation of the project, it should be specified in the first request for proposal document sent by the customer.
Also, if there is any other limitation or requirement known in advance by the customer, it should be present in this document.
If the customer already has a skill set (and/or experience required for it) in mind for the project, it should be mentioned.
The customer should present all known requirements for his or her product. Additional documents can be used to create a detailed list of requirements, or they can be simply put in the initial request for proposal document as well. If possible, the customer should separate must-have requirements from nice-to-have requirements.
The customer should specify who will be the principal point of contact during the refining process. This person will answer to the vendors questions regarding the product to be implemented.
The customer should state the budget (or at least a range for it). This will allow the vendor to create a proposal with what they can implement in the specified price range. Also, many companies will work within the specified budget to address the most important items of the scope first, meaning that customers get some help in identifying the top priorities for their project.
If the customer has specific maintenance period in mind, it should be mentioned in the initial request for proposal document. The final offer created by the development company should include the maintenance and support conditions, even if they are not mentioned by the customer, but they should at least cover the requirements of the customer, if mentioned.
Covering as many points as possible from the previous list will save both the customer’s and the development company’s time. If there is a good fit between customer needs and vendor possibilities to help, then the process of refining should continue. This way the customer can filter only the vendors that can help implement the product he envisioned.