Who is a business analyst?
A business analyst is a person with strong analytical skills, who is well-versed in understanding business problems and finding solutions. He should be well-versed at describing them verbally, in writing and using various forms of illustration (process diagrams, UML charts, etc).
A business analyst in a software development project helps to initiate the project by interviewing key stakeholders and creating a scope document with the functional requirements of the software that needs to be built. Once the project starts, BA constantly works on the details of the features. He also supports the implementation by answering questions, refining the documentation and making sure that there are no gaps in understanding of how software should work.
Why you need a business analyst?
Often there’s no business analyst on a team, and developers do all his work. It's is very common in agile projects where developers are doing everything, including managing themselves. It might work in certain teams where developers know what they are doing very well and are used to work with each other.
The situation is different when the team is newly built, and developers were just hired, or when the project’s scope is unknown for developers. In that case, a business analyst can help developers to start working and get up to speed by providing a clear scope.
A level of uncertainty is high at the beginning of development, so scope has to be constantly refined an updated. Developers and analysts can work together to make sure that scope is always up to date and that features are described in a way that everyone understands. An analyst helps developers to answer questions and implement features in the right way.
One of the additional benefits of the analyst is that he treats scope as a whole document, while developers often work with a specific part of it and can easily miss problems, inconsistency, and redundancy that are visible from a big-picture perspective. Stakeholders who review the scope often don’t see issues too because it’s hard to grasp the scope and read through even 20-page long document that describes a typical application.
All team members use the scope that analyst creates and maintains as a source of truth during the work on the project. Designers use it to understand the vision and how the feature they are working on relates to other parts of the application. QA engineers use scope document to create test cases and acceptance tests. Project managers work with the scope when performing final acceptance and common-sense tests.
How to hire a business analyst?
Create a job description
Before you get started, you need to define who you are looking for and create the job description. What will be the responsibility of the BA in your team? Describe the industry you are working in and the project briefly, as you would want to find someone who has at least some domain knowledge.
What seniority level are you looking for? If your team is big and you have a complex project then looking for Senior-level BA will be a good idea. Junior BA’s can work on specific problems, but they need guidance from their more experienced colleagues so it won’t be a good choice unless you need more than one analyst.
You can use common hiring process that your company is using — just like with any other hire you need to post the job to relevant job sites or ask your recruiting partner to help you find the right candidate. If you are a small business, then you may look for a remote contractor on sites like Upwork.com
Filter out resumes
Once you get the resumes flowing in you can start filtering the candidates. The resume stage will allow you to filter out about 90% of them.
You would typically want to work with someone who has at least a few years of experience working in a reputable company. It will ensure that they know best practices and were not exposed to bad decisions and poor management.
You might want to make sure that their English skill is very good by asking to send an example of the requirements they created as an example or ask them to do a test task later. After all, they will be responsible for making sure that everyone is on the same page in their understanding of documentation, so strong command of English is a must.
An ideal candidate has to have at least some software development background and be able to talk the same language with the developers. He also needs to be versed in SQL to work with the data. You’d also expect knowledge of Python and/or R from a senior analyst.
What if you can’t find the right person?
Sometimes you look for weeks or even months but can’t find the right person. You need to evaluate your expectations and your offer in that case because there are a lot of analysts out there looking for work. Consider hiring an analyst to work remotely. This will significantly increase your odds. Just make sure that he can work on your schedule and will be available for a video call any time during the work hours. It’s essential that developers and stakeholders have access to the analyst because he needs to resolve a lot of day-to-day issues.
An example from my practice
We were working on creating a suite of applications for a client in the music industry. The scope document was initially created by the client and was updated continuously by developers, but we were constantly asking the same questions and defining terms because the scope lacked the details.
After BA joined the project team, he created a glossary of terms used throughout the project. He worked with a client for a month to add required level of detail to the scope document (something that developers weren’t able to do because they also have their coding work) and then spent about a week each month to analyze and describe each feature the team was working on.
Since then, every feature delivered for that project was implemented exactly as described in the scope document. Since we’re using an agile process, most of the times scope must be updated afterward as a result of learning new requirements, but the process was very organized because stakeholders knew that it’s an iterative process, not a result of developers being unprofessional.