In most cases the original specifications are nonexistent, as are their authors. Where the original specifications are available, they will almost always be out of date, with the successive changes over the years. If the analyst is unable to extract information from the old system code (and this is usually the case), there is nothing left but to try understand the business processes from esoteric code, low-level users and ill-informed managers.
To develop a software package, the analyst must identify the needs of the company. This is difficult as the analyst is unlikely to understand fully the company's work practices, or the terminology of the company. There is also the likelihood that management and the users do not know exactly what is required.