The role of the BA is key in software development projects. They serve as the mediator or the bridge between the Technical and Business end of stakeholders. Typically, in organizations where no formal structure or processes exist, the Business Owners and Developers communicate directly. Assuming that Developers have no organizational skills, this can present a problem: the goal of the Business Owner is to get what they want very quickly, and the goal of the Developer is to give the Business Owner what they want as quickly as he/she can give it to him/her. This can lead to creating changes in a vacuum, not necessarily taking the needs of all users of the system into account, depending on the organizational skills of the involved Developers.
There is rarely any detailed definition of the requirements, and many times, the real reason for the request may not make good business sense. There tends to be no emphasis on long term, strategic goals that the business wants to achieve via Information Technology. The Business Analyst can bring structure and formalization of requirements into this process, which may lead to increased foresight among Business Owners. It is very helpful in business development. 
Drawbacks include situations where the Business Analyst just works as 'man in the middle', without helping Business Owner and Developers to streamline the long term goals results in a loss of time as well as information. 
In recent years, there has been an upsurge of using analysts of all sorts: business analysts, business process analysts, risk analysts, system analysts. Ultimately, an effective project manager will include Business Analysts who break down communication barriers between stakeholders and developers.