Without business analysts, an enterprise software project can still be delivered by a group of software developers alone.

But why do companies still hire BAs? Why can't developers do our job instead?

It's not an issue of capability, but focus.

  1. Writing clean and efficient code requires time and focus.
  2. Gathering, understanding and communicating business requirements also require time and focus.

Software engineering, or any technical profession, relies on focused thinking. Developers spend a lot of time solving problems, debugging and optimizing their code by reading StackOverflow posts and technical documentation. They need focus in assuring the technical capacity of whatever we're building for the paying client.

Some thoughts of a software developer:

"Which JavaScript framework is more appropriate for this project: Angular 2 or React.js?" "How do I make this bug go away?"

(The following concerns are more for technical lead/architect)

"Will my code be able handle millions of records in less than 8 hours? If not, what algorithm should I use in order to optimize my code?"

"How many servers does this system need in order to meet the performance requirements?"

Given these tons of work, the development team would need to offload non-technical work simply because technical requirements in enterprise projects are more complex and comprehensive.

And so are business requirements.

Image: Developers will need business analysts to contextualize this verbose Business Requirements Document (BRD). In other words, they need us to translate these BRD items to software features.

Business analysts spend time meeting clients, polishing documentation, and communicating agreements to the project team.

If developers spend time reading StackOverflow and Spring documentation, we also spend time analyzing client artifacts (statements of work, documentation, slides, actual reports) and writing functional specifications comprehensible to the development team.

Some questions of a business analyst:

"Which users approve the decision of the court hearings?"

"How to calculate the reserve cost recovery amount of all energy consumers?"

"What are the expected contents of the invoice?"

To conclude:

  • Software developers need to focus on the technical solution.
  • Business analysts do the things that software developers don't have time for: gathering requirements, meeting process owners, comprehending complex business rules, writing functional specs, and so on and so forth.

[Reposted; originally written last July 2017]