When a patent can take up to four years to be granted, and two years in most cases, then the current model is not sufficient.
Instead it ought to be a number of years from the day the patent is granted.
For software that should be around 5 years, if we really need software patents.