Why Business Analysis Is Important in Software Development
In this article, we would like to describe how the business analyst role in software development life cycle increases the value of the engineering team. After reading it, you will know how BAs help projects at different stages, how they collaborate with other project roles, and how we do business analysis at Waverley.
The Importance of BA in Software Development
In software development, every business idea travels from the head of the product owner through the engineering team to the release to production. In software development companies, a business analyst is a person who supports the business idea on this journey: a BA works with the stakeholders to analyze, scope, document, and communicate the requirements that are needed to be implemented to see this idea in production.
It is essential to involve business analysts as early as possible in the project as they use tools and techniques to discover gaps in logic before a line of code is written. Fixing issues before coding costs way less money than when the feature is coded, deployed, and UAT is passed.
What is a business analyst in software development? The added value of having a business analyst at the project lays in:
- Better feature prioritization.
- Reducing development time as more issues can be clarified prior to taking a feature into development.
- Decreasing the cost of development as issues and logic gaps are discovered before writing the code.
- Better requirements eliciting as a BA uses a set of techniques valid for different products, stakeholders, and contexts.
Let me show you a quick example supporting the need for business analysis in software development. One of the services we developed at Waverley required user registration. What could possibly go wrong if we’d implemented such a feature a thousand times?
However, after the BA checked the regulations applicable to that type of user, we learned that the service could not store the user’s personal data, such as email or phone number.
That is why the product owner and business analyst revised the user registration process to enable the solution identify a user. Still, no personal information was gathered at the same time. Imagine if the regulatory requirements were discovered after the solution was implemented. A bunch of the change requests would be needed to solve the problem.
What Does a Business Analyst Do in Software Development
A popular question is: what is the role of business analyst in a software company? To clarify the BA’s role in software development, let’s take a closer look at how business analysis is performed at each project stage and what value it brings.
The crucial role of business analyst for the software development team lies in bringing together the prototype of the future product during the discovery phase. Here is how a BA contributes to the building of the very first MVP solution:
- Together with the product owner, a business analyst puts together the business objectives to ensure the solution aligns with them.
- Business analyst analyzes the types of product users, their goals, and their limitations. It will become a valuable input for the UI/UX design team, allowing them to build quality user journeys and product maps.
- The BA scopes the product use cases and creates a use case diagram.
- The BA investigates the non-functional requirements, such as regulations, performance, or security.
- Together with the product owner, the business analyst prioritizes use cases to ensure the MVP brings the most value for minimum effort.
- The business analyst creates the backlog and supports the team when the MVP is being implemented.
For example: at Waverley, we run 3-5 weeks discovery phases for the future software where business analyst with engineers and designers work intensively to deliver a prototype of the solution, documentation, and design assets.
The importance of business analysis in software development comes from the need to start a project on a solid foundation. Avoiding mistakes in the beginning of the project increases the probability of building the right product in the end and, therefore, allows to maximize benefits and minimize costs in the future. The tasks of the business analyst on this stage are to:
- Identify and articulate the business goals of the project
- Clarify what is in scope and what is out of scope. Knowing what we are NOT building is as important as knowing the feature backlog.
- Set up the process for the development team to work effectively with the requirements.
The task of BA for software development at this stage is to make sure that no gaps will emerge at later stages. Thus, at Waverley, we rely a lot on several project initiation processes:
- Transferring knowledge from the pre-sales or discovery team properly. Based on our experience, we created a process where the BA who gathered initial product information puts it together according to the template and discusses it with the delivery BA.
- The business analyst identifies project stakeholders and chooses the communication plan with the project manager. Even when it’s a small startup that needs to create something valuable really quick, properly organized communication allows to discover valuable information and share it within the team.
- When setting up BA processes, we follow the agile practices so that the business analyst does not invest too much time into creating comprehensive documentation but instead makes sure the development team has good enough knowledge to start a project:
- Product scope and the business goals it should meet
- High-level roadmap
- Prioritized backlog
- Agreement on how and when the backlog items are created and clarified.
At this stage, business analyst in software development serves as the product and business advocate. The goal of the business analyst is both to track requirements and to regularly remind the team why the product is being built and what objectives the business is supposed to achieve. Otherwise, without a clear vision articulated to the engineering team, the project plan risks transforming into a feature factory where new functionality is built on time and on budget, but they bring little value to the product owner and end-users.
Thus, at Waverley, we encourage business analysts to act as the proxy product owners and proactively participate in all scrum ceremonies:
- Sprint planning: the business analyst supports the team in figuring out what to include into the sprint backlog and how to estimate and decompose the features.
- Backlog refinement: the session is totally owned by the BA. The business analyst goes through the product backlog together with the team, clarifies the items, discovers dependencies and improves the team’s overall knowledge about the product.
- Daily meetings: as a team member, the BA shares their plans for the day and resolves any blockers related to understanding the requirements, user flows, and product logic in general.
All in all, we follow the Scrum guide recommendations and encourage BAs to get certified as product owners.
Finally, everything is developed and delivered. The product is shipped, and the customer is happy. The responsibilities of the BA when project is closing are:
- To prepare the documentation of what has been developed. It could be done in a variety of forms depending on the type of project: from a simple checklist to the comprehensive 70+ page document. The goal is to provide customer with documentation to make sure the new team can figure out the features of the product and how they work when the project is renewed.
- To go through the unimplemented features in the backlog and make sure there is enough information about them in case the client decides to continue product development.
This overview of project development stages gives us an idea of the many roles of business analyst in the software development process. Such intense participation also means that the person with the role of a BA requires having some special skills and qualifications. Let’s talk about them next.
Which Skills Does a Business Analyst Need
The most important skill that a good business analyst must possess is having a flexible mindset. As International Institution of Business Analysis says in its Business Analysis Standard: “Every situation is unique, and there is no single analysis approach. There are a variety of techniques, processes, and tools that can be used in different combinations, depending on the context.”
This means that a professional business analyst must confidently deal with the projects when it is not clear what approach should be chosen. To develop such a mindset, a BA needs to have such skills:
- Research skills: a good business analyst knows how to learn new information quickly and efficiently.
- System thinking: it allows a BA to see the product in its entirety, its connection with the customer’s business.
- Communication skills: a business analyst constantly needs to talk to people, both technical and non-technical. To effectively gain knowledge from subject matter experts, gain trust from the top managers, work together with the engineers, a BA needs to choose an appropriate communication style for each group of stakeholders.
- Knowledge of the BA methodologies and frameworks: to be able to choose a suitable approach, a BA must be aware of the existing best practices, use them, know their pros and cons, participate in global communities, and exchange knowledge with colleagues.
As modern software development operates in the agile environment, a business analyst in the software development life cycle should also:
- Think as a customer: analyze the product both from the technical perspective and from the business and end-user point of view.
- Stimulate collaboration and continuous improvement: the facilitation and leadership skills are very important.
- Analyze potential value: to prioritize what should be built next and to reflect whether a release was successful for the business, a BA must be able to think about what value could be brought to the product with this or that feature.
Business Analysis and Project Roles
We’ve discussed the role and skillset of a BA in terms of the project flow and customer view. Now let’s review the role of business analyst in the software company as a part of the team and their collaboration with other members.
Business Analyst and Product Owner
Business analysts collaborate with the product owner very closely. When good relationship with a PO is established, business analyst contributes to maximizing the value of the product and backlog management. According to the Scrum Guide, product owner can delegate their responsibilities to someone in the team. Very often it’s the business analyst who gets most of the PO responsibilities and works as a Proxy Product Owner.
Such a combination of PO and PPO is a win-win situation both for the business and engineers:
- Product owner delegates most of the operational work to the business analyst and frees their time for strategic activities such as roadmap planning, customer research, and product development.
- Business analyst is able to deal with questions from the team when the PO is not available. This is particularly valuable when the PO and engineers are in different time zones. Of course, most important questions still require the PO involvement, especially those relating to business and user requirements. However, a BA with a deep knowledge of both business needs and product value can resolve most of the functional requirements and unblock the team.
Business Analyst and Technical Lead
A good business analyst knows a lot about business and something about technology. Likewise, a good technical leader knows a lot about technology and takes care of the business part of the product. Together, the BA and the tech lead can significantly increase the quality and speed of product development: they discuss which business goals are to be achieved and how to do it with the project tech stack. This way, the participation of business analyst in software development life cycle leads to more accurate estimations and more predictable delivery timeline.
Business Analyst and Quality Assurance
Usually, BAs are the first point of contact for quality assurance people when it comes to clarifying how the product should work in different test cases. BA helps testers to understand which issues are critical and which issues are important but may be postponed as they don’t bring as much value. BAs educate quality assurance about different user and business requirements allowing QAs to look at the project from different angles. Together they investigate the edge cases which QAs discover and decide how they affect the product.
Business Analyst and Project Manager
Remember the project management triangle – scope, cost, and time? First of all, a business analyst is the best friend of the PM when it comes to scope management. Here, the task of the BA is to ensure that the product features to be delivered align with the overall project requirements. Business analyst uses a myriad of tools and methods to elicit and explicate the product requirements and make sure they fit the client’s business needs and objectives. They also serve as those members of the team who can identify and advocate scope changes. In turn, the PM receives the BA’s input, integrates it into the project processes and planning, and communicates with the project’s decision makers to get their approvals.
Speaking of communication, business analyst and project manager need to collaborate in order to provide accurate and timely information about the project requirements to both business owner and the team. Thus, the BA creates the business analysis communication plan, including the format and frequency of interactions among the stakeholders, which the PM is expected to incorporate into the overall project activities planning.
Also, the PM serves as a communication intermediate between the client and the BA and between the BA and the team – in terms of bringing up issues to be resolved, meetings arranged, processes organized, etc.
Business Analysis at Waverley
At Waverley, we are certain about the critical input of a business analyst in the software development life cycle. Thus, we follow the industry standards of business analysis:
- Our competency matrix is aligned with the BABOK v.3 – business analysis body of knowledge created by International Institute of Business Analysis. We evaluate the skills of our business analysts according to the international competency standards on a regular basis and define the points of development so that a BA grows professionally.
- We use the best practices of agile product management in setting up and maintaining BA processes on the projects.
- We encourage the continuous professional growth of business analysts both in hard and soft skills such as certifications as product owners, deepening knowledge in various domains, improving the negotiation and presentation skills, etc.
- We maintain the internal knowledge base that includes tons of materials on different domains, techniques, tools, and approaches.
Here are some techniques used by the Waverley BAs in the software development life cycle:
- Use case diagram: it is a convenient tool that demonstrates solution actors and their needs. Use case diagram is used very often at the discovery phase, but also we use it when working on epics for the ongoing projects:
- Designers use it to estimate the amount of UI/UX work.
- Architects use it as a foundation for the product architecture.
- Other engineers use it to see the boundaries of the solution and to decompose ii into smaller chunks.
- Context diagram: we use it for demonstrating how a system interacts with external systems. It is a great instrument for viewing the solution from the high-level perspective and to estimate the efforts for integration and communication with external solutions.
- ERD diagrams: we use it for describing the domain or for describing how the objects are related to each other in a possible solution. Often, it is a part of the bigger data modeling exercise when a BA creates the conceptual and logical data models. It helps the team to build the correct data structure for a solution.
- BPMN: business analyst often needs to capture the business processes, so we use the BPMN for this, following the best practices of our profession.
- Sequence diagrams: to display what is the order of the complicated interrelations between several systems, we use the sequence diagrams. It is a helpful tool for discussing how the data should be transferred.
- User story mapping: one of the most helpful ways to both outline the entire scope of a solution, slice it to versions, and to communicate it with the stakeholders.
As for the tools, we use the industry standard solutions:
- Jira for the management of user stories and capturing acceptance criteria.
- Confluence or Notion for product documentation.
- Miro for all kinds of visualizations.
- Figma for collaborating with the designers.
A good business analyst in the software industry is a person who is a type of a polyglot: they speak business, technical, design, management, QA, and customer languages. They know how to create documentation that will tell a product story, how to learn a domain quickly and effectively, and how to find a communication style for every stakeholder they are working with.
They are curious and always want to know more: about the market, project tech stack, psychology of the end-users, cognitive biases effecting the UX. At Waverley, we are doing our best to build this type of culture of creating software through business analysis and product ownership.
What is the role of a business analyst in a software development life cycle?
The role of the BA in the software development process is based on several key tasks:
- Investigate and analyse the future product and provide recommendations to the business owner, solution architect, and the pre-sales team as to the formulation of the final solution proposal and project estimation;
- Ensure the product requirements are consistent with the client’s business needs and goals;
- Communicate with the client as to change requests, accept and process them, initiate changes, when needed;
- Transform product requirements and change requests into actionable tasks for the engineering team, make sure each team member understands how the product is expected to function and the value each of them adds to the product;
- Help the PM and tech lead prioritize tasks for the engineering team in the course of development.
Which phases of the SDLC the BA would typically be involved in?
Business analyst is the most important member of the development team at the product discovery, planning, and design stages. However, in the course of development, testing, and deployment, the participation of BA also plays a significant role in terms of change requests and tasks prioritization handling.
How many hours do business analysts work on one software project?
It depends on the project type and its methodology:
- For a discovery phase it is usually enough for BA to work for 2 weeks full time (160 hours) or 3-4 weeks part-time (80 hours)
- If a project uses waterfall methodology, BA usually works full time at the requirements analysis and active development phases and gradually decrease the hours when project is moved to the testing phase.
- For scrum-based projects, the best solution for BA is to work full time as in Scrum team collaboration brings the most value. However, if all the processes are set up, it is possible for BA to split activities and work on other initiatives.
Is business analysis a part of software engineering?
Business analysis is an integral part of the creation of any software product. Business analyst is not involved in the coding process directly. But they tightly communicate with software engineers before and during the coding process in order to make sure the tech team understands their tasks and client’s requirements the right way. BAs also resolve questions and issues that may arise in the course of coding, for example, as a result of requirement inconsistency which couldn’t be captured until the start of implementation.