The patent system is essentially designed to encourage advancement in science and technology. The patent office expects the applicant of a patent to disclose information about the invention for which patent protection is sought, to an extent that a person with ordinary skill in the technology, to which the proposed invention relates, can use the provided information to make and use the proposed invention. This disclosure of information to the public would ideally enable others to explore improvements over existing technology, and thereby lead to advancement in science and technology.
One of the requirements of a patent to be granted is 'sufficiency of disclosure' or 'enablement'.
One of the important questions that inventors should ask themselves is whether they have sufficient information about the invention to enable a person skilled in the technology to which the invention relates, to make and use the proposed invention. If sufficient information is available, then the time might be right to apply for a patent. One the other hand, if sufficient information is not available, then the inventor should ideally work towards gathering/generating such information, so that the same can be provided in the patent application.
For further details please check the link below
http://www.invntree.com/blogs/which-stage-should-i-apply-patent
http://www.invntree.com/blogs/disclosure-requirements-for-software-patents
Regards,
Vinay