Hi Rina,
You don’t need to become strong technically in particular area, or know all the intricacies of any programming language or tool. As Business Analyst you are supposed to be a “bridge” between the clients and the development team.
I try to involve tha engineering team as early as possible. After the list of requirements starts to take shape, I consult the engineering team to verify what is doable. I give them a short presentation of the requirements emphasizing the interfaces both GUI and with other systems, and anything that was rated as high priority by the client or is different than a similar project from the past. This is not an official visit, but gives them heads up about what is coming and before responding they seriously consider all facets of the situation.
When talking to developers I verify why they cannot implement a certain requirement.
Is it because of the hardware and architecture used, the database and languages chosen for the development, the tools used, the product being customized, etc.? (Of course these are implementation issues, but if this is a maintenance/upgrade project they have to be in the list of project constraints.)
Depending on the answer, and how well the requirements are detailed at the time, I may ask the developers to provide alternatives that will satisfy the business requirement and the project objective. Then I consult with the project manager about the impact on the project schedule. At the end I talk to the customer, explaining why, if any, of the requirements need to be reevaluated and ask them if there is an alternative set of functional requirements that will satisfy the same business requirement and objective.
Of course all is situational and depends on the particular circumstances.
Hope this helps,
Vessela