The importance of a business analyst (BA) in a software development team is hard to overstate. A business analyst helps to shape the project from its very inception by facilitating communication between the development team, and executives. Effective communication is what makes managed teams work; it allows customers to save resources on management while allowing teams to deliver software on time, within budget, and according to requirements.
However, the world of software outsourcing has only recently caught up with the practice of providing business analysis services. And while the majority of larger outsourcing companies include business analysts as part of their managed teams, some clients still have certain misconceptions about the role and importance of a business analyst.
At Apriorit, a BA plays an essential role in every team we provide. We’ve decided to share our experience, discuss software business analyst roles and responsibilities, show that BAs are an essential part of the team, and dispel popular concerns about business analysis.
This article will cover typical roles and responsibilities of business analysts in software development and address the benefits of having a business analyst (not to be confused with a project manager) as part of your managed dedicated team.
Each project starts with an idea. But it takes a whole team to realize it. While some people think a development team is all you need to transform an idea into a working product, in reality, it’s not a developer’s job to collect all the necessary requirements from stakeholders. There are often a number of details and edge cases developers are simply not going to consider.
While handling both regular behavior and exceptions, developers don’t always have the foresight to focus on what’s important for the stakeholder. At the same time, most commercial products should adhere to industry standards that developers don’t always have a good grasp of.
In order to bring ideas from an executive to a development team that can turn them into a working solution, these ideas first need to be formalized by someone with extensive knowledge of the business domain. This person is a business analyst.
Before we start discussing the skills and responsibilities of a BA, let’s define who a business analyst is in the software industry.
The task of business analysis, at its core, is to review and analyze the business domain. Business intelligence analysts, business development analysts, and enterprise and technical business analysts are involved across the board in strategic planning, business model analysis, and process design.
The role of business analysts in an IT company, on the other hand, is sometimes intertwined with the role of technical writers. There are organizations where these two terms are used interchangeably, these positions have similar job descriptions, and technical writers and business analysts perform one another’s functions.
Both business analysts and technical writers produce technical documentation for a project. However, their actual deliverables have almost nothing in common, and their roles on the project are also very different. While a technical writer creates content aimed at end users, such as manuals and help documents, a business analyst produces documentation that’s mainly used by the development team and stakeholders.
Therefore, it’s best to separate the duties and responsibilities of business analysts from those of technical writers whenever possible. The role of an IT business analyst requires a very specific set of skills and expertise that you won’t always find in a technical writer.
There are three main components that distinguish the role of a business analyst from other roles on the project:
- Technical knowledge. Technical knowledge is required for communicating with developers and testers, determining a team’s strong and weak sides, and even for understanding technical specifics and project limitations.
- Problem-solving and analytical skills. Extensive analytical skills are necessary to properly interpret a customer’s business needs and translate them into functional specifications. Problem-solving and decision-making skills are also needed to consult both stakeholders and developers and to make swift decisions on issues and features as the situation requires.
- Communication skills. Business analysts should know how to effectively collect information from one person and present it to another. The role entails working with a variety of people in various positions across different organizations, including stakeholders, decision-makers, developers, testers, and project managers. Business analysts have to effectively communicate with these groups and make sure their concerns reach each other. Extensive listening, writing, and interpersonal skills are paramount for a successful business analyst.
These essential components, when combined, produce a professional that’s able to successfully fulfill the role of a business analyst.
The business analyst role in software development is usually a key role for any given project. Due to the ever-changing nature of modern markets, there’s always a need to adapt and seize opportunities as soon as they arise. For this purpose, it’s important to establish effective communication between all team members and make sure team members are on the same page and moving toward the same goal. This is the main role that business analysts perform.
The source of business and technical requirements is project stakeholders. A stakeholder is a person affected by the final product and therefore having a stake in how it turns out. Stakeholders include customers, sponsors, senior managers, and end users. With a research and development outsourcing project, requirements are usually gathered directly from outsourcers.
Usually, there’s more than one stakeholder on a project and several decision-makers. Given that, another essential thing business analysts do is keep the development team on the same page as stakeholders. This helps to ensure that requirements and needs don’t contradict each other and that everyone is happy with the outcome.
Business analysts help to speed up and organize the development process by working with stakeholders from the very beginning of the project, understanding their vision, and translating it to all other people involved with the project. It’s important that the business analyst makes sure every team member understands what they’re doing and why.
Sometimes, stakeholders may act as business analysts because they know their industry and what they want to accomplish better than anyone else. But stakeholders typically don’t have other skills that a good BA possesses. That’s why it often turns out that a business analyst can help design a project and make it go to the next level. BAs analyze businesses, standards, and trends and, together with the team, come up with diverse and elegant solutions.
Business analysts also should be able to effectively represent stakeholders, act as product owners, and facilitate successful communication, helping the team deliver exactly what the client wants.
Now that you know what the role of a business analyst is in software development, let’s find out what a BA is usually responsible for.
A business analyst is one of the key team members for any project. Typically, their responsibilities within a research and development project in an IT company include:
- Defining the project scope
- Conducting business research
- Gathering project requirements
- Creating requirements specifications
- Translating requirements to the team
- Performing acceptance testing
1. Defining the project scope
A business analyst should define the ultimate vision of what the project should look like early on, effectively limiting the scope of development. A precisely defined project scope will help the team prioritize features in order to deliver a minimum viable product as early as possible instead of spending time on secondary and nice-to-have features. A clearly defined scope also allows the development team to:
- assess the required resources and potential risks
- produce approximate estimates
- create and manage the project backlog
2. Conducting business research
In order to determine the scope of the project and gather all necessary requirements, a BA also needs to research information related to the project. This can include:
- competitor research
- document analysis
- other research methods
Elicitation allows an analyst to gain a clear understanding of business needs related to the project, thus facilitating requirements gathering.
HR SaaS Solution Development
3. Gathering project requirements
Requirements gathering takes a unique blend of communication skills and technical expertise that simply cannot be found in anyone other than a BA.
Some people believe verbal communication to be more effective for a project than formal requirements gathering. However, even in the Agile methodology, where verbal communication is king and the amount of written material is minimized in order to facilitate face-to-face discussions, the business analyst takes a prominent role in a development team.
In an ideal Agile world, the development team and stakeholders would be co-located, allowing them to study every requirement. In this case, the role of a BA is to bring them together for meetings and facilitate discussions.
However, this is never the case in software R&D outsourcing, where developers and stakeholders are geographically distributed. In this case, agile business analysts revert to a more traditional role of gathering and communicating requirements. But even in this case, they don’t simply document requirements. They’re the ones who help clients and developers be on the same page. The significance of this shouldn’t be underestimated, as projects are not just about specifications and results. They’re also about communication, expectations, and understanding each other.
A BA carefully evaluates the needs of stakeholders based on their objectives and concerns. This is where business analysts apply their facilitation skills. They need to ask the correct questions to find the root cause of the issue and an appropriate solution that will meet everybody’s needs. To do that, the BA has to understand how stakeholders expect the system to work and formulate requirements based on those expectations. By acting as a bridge between stakeholders and developers, the business analyst brings an understanding of not only how the work needs to be done but why it needs to be done in that particular way.
There are various ways to get this information, from analyzing documentation to interviews and surveys. At Apriorit, business analysts always try to communicate directly with clients in order to get the most complete picture.
4. Creating requirements specifications
After requirements have been gathered, the next step is to formalize them by creating a written specification. Software requirements specification plays an important role in software engineering. This document can be shared with stakeholders. Writing a specification demands a specific set of skills and technologies that will make the requirements clear to stakeholders and useful to developers.
There are projects where stakeholders communicate requirements directly to the development team, which may result in overtime. The reason is that requirements may come in different formats (emails, messages, verbal conversations, etc.) and no single person keeps track of them all. To handle this issue, a BA should:
- elicit requirements
- document them
- keep track of all changes
- maintain up-to-date specifications
Business analysts usually have several requirements specification templates, which means the format of specifications may vary depending on the project. A well-crafted requirements template is a great means to keep requirements visible and clear to the whole team.
Besides requirements specifications, a BA may provide mockups or wireframes of new features. This is a great benefit to the team because developers don’t have to think about the design themselves.
5. Translating requirements to the team
After a requirements specification is written and reviewed by stakeholders, it needs to be presented to the development team. The team has to understand all the requirements and get answers to any questions they might have. A BA’s success in communicating information largely depends on the way they understand the team, their strong and weak points, and their understanding of the business domain.
Agile projects often operate on the basis of user stories: small written representations of particular user needs or ways in which the user should be able to use the software, coupled with face-to-face discussions on a subject. The main value of user stories is addressing what should be done and why from the users’ perspective. That’s why writing user stories is another important skill of a business analyst.
In an outsourced project, it’s more efficient to couple user stories with a more standard full-fledged functional specification. This combined approach allows the team to get a better understanding of what is required through:
- user stories describing core features
- functional specifications covering all edge cases and outlining the client’s formal requirements
- assistance and clarifications from business analyst
6. Performing acceptance testing
When a feature is implemented, the BA needs to check whether it meets all requirements. In order to do this, acceptance testing is usually performed at the last stages of feature development. Passing acceptance testing signifies the product is complete and ready to be released.
In addition, it’s a common practice for business analysts on Agile projects to show a demo at the end of every sprint. The demo is presented to stakeholders to show them the workflow and progress within the sprint. There are several benefits of such an approach:
- Stakeholders see what the team has been working on.
- The demo is presented before the functionality goes live, affording a great opportunity for stakeholders to confirm whether this is what they wanted.
- If there are minor defects or something that stakeholders would like to change, it can be pointed out and corrected before the release.
While we’ve covered the gist of what business analysts do, there’s much more to the role. To get an idea of how many tasks are actually involved in a BA’s day-to-day job, check out this great infographic that provides a summary of a business analyst job description.
Business analysts often accompany specifications with diagrams that visualize complex requirements and ensure that the team and stakeholders are on the same page.
The diagrams often visualize processes and data flows. There are two standard sets of notations that BAs use for creating diagrams: Unified Modeling Language and Business Process Model and Notation. The former is great for developers, while the latter is useful for stakeholders and executives to envision business processes. Each of these sets of notations can be used to create diagrams that describe a product from different perspectives.
One of the most frequently used diagram types is process flow diagrams, also called swimlane diagrams. They split processes by actors, making it clear who participates in each process and what role they perform. Swimlane diagrams may be hard to read at first, but if all parties know how to read them, they can serve as very useful guides to the relationships between system components and how they interact with the user.
In some cases, a BA can also produce prototypes and mockups to envision how the user interface should look. These types of deliverables allow an analyst to confirm and elicit requirements and give the team a better understanding of what needs to be done.
Before writing down requirements, analysts create a use case diagram. This is another way to identify a system’s users, their roles, their connections with each other, and the actions they perform. Stakeholders can work on this diagram side-by-side with the business analyst. Such collaboration will make the diagram complete and profound.
Other means of describing end users and their interactions with the system are user personas and user journey maps. User personas are vital for understanding who the end user is. Business analysts give user personas names, hobbies, everyday routines, personalities, motivations, and frustrations. This technique helps the team create a portrait of a person who uses or will use the product. It gives a better understanding of how the product should be designed and what’s important for its users.
User journey maps serve the same purpose. The main idea of a user journey map is to depict the emotions users experience when they interact with the system. That’s why business analysts define the actions users perform and describe their pain points as well as ways to eliminate them.
Apart from this range of deliverables, a BA also should follow a number of standards and best practices. The International Institute of Business Analysis (IIBA) issues the Business Analysis Body of Knowledge (BABOK), which gathers the best techniques and practices the industry has to offer. Business analysts around the world, including our staff at Apriorit, follow these recommendations.
A deep understanding of a BA’s roles and responsibilities makes it obvious that a BA is an essential part of a managed development team. However, even if service providers include business analysts in their teams, the decision to use them still belongs to the client. And while many companies appreciate the value and convenience of outsourced business analysts, some decide to hire a new analyst for each project or work with a corporate in-house specialist.
In practice, this approach is fairly inefficient. There are several reasons to outsource business analysis, and companies of any size can benefit from it:
- Small and medium-sized companies often have limited budgets and limited capacity to hire and train their own staff. Outsourcing business analysis services is a great way to get experienced professionals on board and save money at the same time.
- Large companies can benefit from BA outsourcing as it simplifies management, provides stronger communication between the engineering team and stakeholders, and saves the time of valuable in-house specialists who can be assigned to other tasks.
By outsourcing business analysis, you’ll get a professional with the right set of skills and expertise, extensive experience from participating in many projects, and the ability to communicate directly with the development team and make sure your requirements are understood at each stage of the project. They will act as your representative in the development team, working on-site on a daily basis.
It’s also worth noting that talent acquisition on the domestic market is becoming more difficult due to a lack of supply and ever-growing competition. Therefore, it’s much easier and more efficient to use the services of a business analyst that’s a part of your managed outsourced team.
Business analysts are as important a part of an IT company as developers, testers, and project managers. They bring the following benefits to a team:
- Effective communication
- Well-established relationships between stakeholders
- Formalized and written requirements
- Defined (and common) project goals
- Managed development process
- Visualization of new features, requirements, and project progress
- And more
While acquiring a business analyst might seem excessive to some decision-makers, it actually helps to reduce the time and money spent on a project. Moreover, a BA can analyze your competitors and define growth opportunities.
At Apriorit, a BA is an essential part of a managed team. Our experienced business analysts have participated in hundreds of projects for customers representing various industries. Together with our developers, quality assurance specialists, architects, researchers, and project managers, business analysts ensure we deliver high-quality products to our clients right on time.