In a typical IT Outsourcing scenario, people who will use software is different, people who give requirements are different, people who will develop the software are different, people who will test the software are different. So there are bunch of people from different background and skills working together to achieve a common goal – to deliver the software. So the most difficult task is how these people will be in sync. How the developer and tester will know what users want? “Business Analyst” are the ones who paint the application in a developer and tester mind.
Let’s quickly take a look into Business Analyst role. Generally people like developers and testers need not be an expert at every aspect of software development, but one skill they should definitely posses is the art of analyzing. One need not be an analyst but should possess some analysis skills. A software development team needs an “analyst” who can translate the stake holders requirement into something which a developer and tester can understand. They also need to understand technical aspect in order to present to stake holders and make them understand why some requirements are not feasible or to make them understand the technical complexity of any task. They also need to possess good negotiation skills and above average communication skills. BA’s should also be the one who should write user acceptance tests, and facilitate in showcase and UAT sign-offs.
So people playing the role of analyst in a project is a very crucial one. They are pretty much responsible right from gathering the requirements to effectively prioritizing them till the end. To the Software Development team they act as pseudo-customer and to the stake holders they represent the SD team.