I call myself a freelance IT consultant, in a brighter light I offer my service as “systems analyst”. But what exactly is the job of a systems analyst? I try to describe the tasks from a practical point of view:
The core challenges are
- Listen to the customer
- Translate for the technicans
- Design and pre-document the system on different detail levels
Do not mix up the analyst with the architect or the technical designer! Imagine there is an interface to a stock exchange involved: The analyst says what data the application needs from the interface, the architect says how the data is retrieved (i.e. MQ, http, triarch…) and the technical designer says how the data is stored in classes (or what ever data model you use).
The core qualifications for this are
- Communication skills: Ability to ask and listen, and to read between the lines
- Business knowledge: Deep knowledge about the business field of the application and the business processes of your customer
- Methodological skills: Have a good command of formal documentation methods like SA, OOA, UML
- IT skills: Good knowledge of IT possibilities, specially about the customers legacy systems
- Soft skills: Be friendly, courteously and of course have an analytical mind
The most difficult task in systems analysis is understanding what the customer expects. In practice I found, that the average customer has no in deep imagination of what the resulting system should do. It’s more of a general spec like “the system should support the purchase department”. Your task is it now to define the systems requirements exactly, you can not be fuzzy like the customer.
This is why you have to understand the business field of the application.
When you start examining the current business process of your customer you will have to talk to a lot of employees. Employees usually don’t like changes but your task is it to define a computer system to streamline their job. If the stuff that’s working on your business process is rejecting you, you can never design a useful system.
That is one aspect why you need good communication skills.
When you have your plan at least and start to write it down you have to adhere to the rules of the selected method. You can not invent your own kind of specification language, because if you do, you’d need a lot of your budget to explain your language. From my practice I can tell that computer staff usually doesn’t like business staff, that means you won’t find mercy here. When you draw application data models you are not free in your syntax, you have to use your customer’s standards. And if your customer is not a tiny company, he will use industry-standards like i.e. UML.
That is why you need excellent methodological skills
The job of a systems analyst is it to define the capabilities and behavior of an IT system, considering environmental constraints, considering business processes, considering methodological guidelines, considering the users capabilities. Design the system and communicate it on different detail levels to the customer’s executives, to customer’s staff and to the staff thats doing the implementation.
So far?