Every project starts with a foundation. In software development it matters more than anywhere else — it is an extremely important stage which defines the subsequent faith of the project in more ways than one can imagine. Think about it in terms of constructing a building. You can’t do it without laying a foundation first. And if you do — expect things falling apart because of some minuscule issue jumping seemingly out of nowhere.
In software development said the foundation is laid by performing business analysis. While it may seem obvious to some, one can’t stress enough the importance of this discipline. If there is a thing to be called a “key to success” — then the business analysis is definitely that.
And yet, despite everything said — again and again, some question its role and try to downplay its importance in favor of more abstract and flashy fluff also known “vision”.
But we are getting too far too soon. Let’s start with the basics.
In this blog post, you'll learn:
- What is Business Analysis?
- Business Analytics or Business Analysis?
- Responsibilities of BA in Software Development
- Methods of Business Analysis
- So... what?
What is Business Analysis?
The general definition of Business Analysis (BA) is — set tasks and techniques aimed at determining and validating the needs, requirements, problems, and solutions of the project so that it would be possible to successfully realize it.
Long story short — BA does how’s, what’s and why’s of the project, i.e.:
- makes sense of an idea;
- fleshes it out;
- lays it down;
- maps it out;
In one form or another, the business analysis goes through every aspect of the project: from organizational nuance to system development to process improvement. It starts off with studying the structure of the organization in which the project will be implemented, goes through understanding the scope of work and determining sets of tasks for the team.
Because of intricate connection both to the client and development team — BA serves as a communication link between both. That helps to keep both parties on the same page and helps to avoid any misunderstandings that may occur in the process.
The purpose of performing the business analysis is relatively simple: it puts an idea into context and provides it with a background so that it is possible to evaluate its feasibility and potential on the market.
Otherwise, if an idea is not thought through and through, no matter how fresh and exciting it is — it will turn the ground beneath your feet into a quicksand and you will drown and suffocate shortly after.
The direct benefit of business analysis is that through a variety of techniques it provides a clear and distinct picture of the project that can be easily monitored and adjusted if needed.
In turn, this transparency ensures that the project will be developed according to the plan and will be completed and deployed within time and budget constraints without unreasonable going over budget or stretching out beyond schedule. Avoiding the latter is important because developing a piece of software is rather an expensive service.
Just to make things clear before we delve into deeper worlds of business analysis, let me say this: business analysis is not the same thing with the business analytics.
- Business Analysis is primarily concerned with processes and functions.
- Business Analytics, on the other hand, is focused on data and reporting.
Therefore, make sure you don't confuse these two (and if you forget which is which, come back to this post) because they are fundamentally different and if you're expecting a dashboard with data from your business, that's analytics, not analysis.
Anyway, let's continue deeper into Business Analysis now.
If being abstract — the business analyst in software development is always a middleman. His work can be described as filtering and facilitating the output from the stakeholders on the clients part on one side and translating the results of the team to the other side.
From the business standpoint, BA’s global task can be described as delivering a clear vision of the project with a strict set of priorities and concise plan for the realization of requirements.
From a technical standpoint, his task is to provide the development team with the precise and realistic sequence for execution of requirements and implementing functions from iteration to iteration up to the project completion.
In terms of direct responsibilities, the role of business analyst in software development depends on the stage of the project.
Let’s go through each of them.
During the initial stage, Business Analysis is aimed at laying down the groundwork for the project.
In practice, it means:
- understanding the initial business case and fleshing it out (if needed),
- assessing its feasibility, expectations and possible challenges,
- Preparing information for the estimation of the project.
On planning stage, the business analyst is tasked with defining and prioritizing the requirements. Another important element in consideration is an assessment of possible solutions. This helps to paint the big picture of the project out of which comes an understanding of the projects real scope, limitations, and risks. Basic merit for every element is a cost-benefit correlation.
All this is laid down in technical documentation. It should be noted that the document must be completely disambiguated before being put into execution. Documentation serves as a backbone of the project and it determines the way it will be subsequently managed and developed (more on that here).
All this helps to shape the basic vision of the user experience for the program. connect reality of the situation with the project's concept.
During the executing stage, BA takes a more backseat role of overseeing the project development in cooperation with Project Manager. In practice, it means that BA leers in the background checking if every element in development is going according to the plan and within the set deadlines. He only comes to the front in cases of clients suggestions and subsequent adjustments.
At this stage, there are three primary goals for the business analyst.
- To break down the requirements into sets of tasks for development team (i.e. backlog);
- To maintain a communication with the clients and soliciting feedback for them;
- Implement feedback and formulate tasks;
In addition to that BA can be involved in developing test scripts for initial rounds of testing.
- Improves the quality of design for the proposed IT system so that it meets the user requirements.
It is important to note that BA keeps refining and adjusting the descriptions of the functional requirements throughout the development stage. It is done so that by the time it will come to the development of the function it will be thoroughly described and adapted according to the current state of things.
On testing stage, BA is involved in developing and refining comprehensive acceptance criteria for test scripts of the various modules of the program.
It involves a combination of functional walkthroughs, user impersonations and also user acceptance tests.
His primary goal at this stage is to ensure that the project meets requirements and is fully operational and ready for deployment.
Monitoring stage usually runs concurrently with the testing stage. BA’s purpose at this point is to evaluate changes from initial plans.
On one hand, BA collects explanations for changes from the development team. On the other — he gets approval for implementing the changes.
During the closing stage, BA presents the project to the client and gains their approval. His next move is usually creating instructional guides for the program and final documentation for the project.
Another important thing is documenting the value of the project for the team in terms of “lessons learned”.
A toolkit of the business analyst may vary depending on the specifics of the project but the general techniques stay more or less the same.
The whole process of BA is divided into three fundamental types of business analysis:
- Strategic Analysis — relates to initial and planning stages of the project. Allows to identify the challenges, assess possible solutions, elucidate business requirements, help to determine global goals and local objectives of the projects. Attained information improves management process of the project.
- Tactical Analysis — goes through every stage of the project. Allows to choose most viable solutions and ensure that everything meets the expectations. Used to flesh out the requirements and break them down into tasks inside the backlog.
- Operational Analysis — relates to business aspects of the project. Focused on studying the ways of managing the project and looking for opportunities for its improvement. Allows adapting the working process to maximum effectiveness by finding weak points and waste elements. Directly affects iteration planning.
It is hard to overestimate the role of business analyst in software development. The very existence of the project is largely dependent on qualified business analysis.
Without a clear scope, established requirements, intricate planning, and adequate communication — chances are the project will crumble on its weight before gaining substance.
Business analysts are key members of the developing team. Basically, they are the torchbearers. They bring order to the project and lead it to fruition.