—— Important principles to understand
I used to work as a Business Analyst and do not feel that a person in that role knows enough about either side (programming or the needs of the user) to be effective.
A programmer working alone and just doing the requests he sees coming from a user is somewhat effective, but often misses key principles and ideas about how things could work, and cannot recommend the ideas that only a programmer would understand because he doesn’t know those user principles.
A user alone does not understand the full power of programming and thus does not know what can or cannot be done. Often their ideas are just automating what they do in a notepad rather than truly improving and upgrading.
The very best situation is one in which a true user who understands all the principles also is a programmer and can fully exploit the capabilities machines give us.
——- What we should do
If we have pressing tasks and items to get done, let’s do those first. If we start to have any time, we should have our most senior team members work directly with team members in a specific department using pair programming (screenshare all day each day for a week) and actually do the work and go through all the processes and understand and BECOME an actual user of the application area and understand the pros and cons and warts and what needs to be done. In the long run, this will lead to much better modules we build.