Business Analyst plays a very important role in the entire cross functional agile team. They are the more real truth about the requirement of the business to software developers. Since Business Analyst have seen much software being build and broken over the years they develop a strong skill on how the solution works. They are very much aware of the overall flow of the software or High Level Architecture. An experienced Business Analyst in a team with senior developer and junior developer. It is natural that they with experience start captaining the project. Also there can be a deliberation and debate over the logic of the requirement, thus putting out all possible input conditions. There is nothing wrong about it but when you are not a part of everyday coding. It doesn’t make any sense to decide on what will be the table names, will the logic reside on database or code level. It should be the job of developer. Definitely all suggestions are welcome, however you cannot dictate terms.
Here are my reasons why it should be a job of developer to do the detail decision:
- Developer has their own design challenges to deal with. All the decisions are taken based on the requirements provided by Business Analyst.
- There are underlying coding style or design choices which a developer is comfortable with. This will help them in long term maintenance of the project. Also there can be multiple solutions to a particular problem.
- The design of procedural programming will be difficult to adapt in object oriented programmer or functional programming.
- The performance issues of 1999 i.e. of memory and latency is no longer valid on today’s day and age.
- In memory functional programming helps parallelism easier than last decade.
This is just a rant and my humble way to put few points forward.
Happy Software Development!