The definition of a BA will vary by organization. I think ideally a BA would be a person that is familiar with the business as well as the software being developed. They are the people that can understand and extract all of the wants of the business and fit them in to a new or existing piece of software by writing detailed specifications and documentation.<p>My experience has been that BAs are often unfamiliar with both the business and the software, which is far from ideal.