@Groaner said in The Ten-Year-Old Tech Support/Developer/Project Manager:
This particular CEO had a mantra he repeated ad nauseam: "The best programmers are business analysts first." While this might seem like an inspired sentiment on the surface, the problem is that those are two different skillsets, each of which takes years to master. Speaking of years, after one or two of them at this company, it becomes obvious that what was really meant by "business analysts" was "mind readers."
The statement, as such, doesn't make very much sense, but if you consider what things a business analyst must know, specifically that magic stuff known as "problem domain expertise", it might make more sense, or at least less non-sense.
Problem domain expertise means knowing about the things the end-users are going to do. If the system is an order management system for stock brokers, then it means knowing what it is that stock brokers do, what stocks are, how they are traded, and so on. You don't need to know it in enough detail to be a stock broker, but it helps to know what the words mean, so that you can ...
Well, an anecdote is upon me...
I was tasked with building (ok, finishing the building of) a specific type of trading report generator for a particular client. It was, to a certain extent, the "project from Hell", but I made life easier for myself. We arranged for the client to send some of their senior traders into our offices to talk to me about what they needed. They arrived and I told them that I would go through on this whiteboard here what I saw from the requirements and what it meant about what they did each day, and then throw it open to them to tell me what was right and what was wrong about what I had just said. They agreed that this sounded like a good plan, so off I went.
They listened carefully, then explained a few things that they did not quite like what I had said, and a few that I had described as possibilities that in fact would never happen (and why they would never happen), and everyone was happy because:
- I knew more about what I needed to do and to not do.
- They knew that I had a good understanding of the task.
- The sales guys who had helped arrange it knew that the client and I were both happy.
I was able to do this because (and only because) I understood something of their work, of what it is that stock brokers do. So I say, as I have in the past said, that problem domain expertise and/or knowledge is the most valuable thing you, as a programmer, can acquire.