A Systems Analyst is a professional who is familiar with computer systems, programming, technical architectures & platforms and with his expertise in Information Technology (IT) along with his knowledge in business, he helps Organizations analyze and implement IT solutions.
A system analyst pertains the understanding of programming languages, operating systems and information systems
Before heading any further, let’s clarify the difference between a Business Analyst and a Systems Analyst (I’ve often seen a great deal of confusion amongst both of them). In the simplest of terms, a Systems (SA) Analyst is a Business Analyst (BA) who has extensive knowledge, hands-on experience and expertise in Information Technology and its applications. A BA might not have an understanding of software coding but a SA does, a BA might not know about Information systems (like Data warehouse, ERP, enterprise and web content management) but a SA does, a BA might not be exposed to software architecture but a SA is. You got the drift, right?
Although it’s a rare possibility for a SA to actually sit and code but an understating of the underlying concepts will help them take better decisions when they are planning and designing Information systems that will help organizations be more effective and efficient in their operations.
A system analyst pertains the understanding of programming languages, operating systems and information systems. Additionally, he helps identify and plan the technical solutions, write documents from technical aspects, create application models and keep himself up to date with technical and industry developments. Occasionally, a systems analyst may be a specialist for a specific set of technology and gives his services by providing the expert suggestions/recommendations against the application of technology in the betterment of the solution being developed.
To get a broader sense of understanding of all the activities that are performed by a SA, let’s see all the responsibilities and duties performed by him in each phase of a typical project life-cycle:
- Examine and study the existing IT systems, process and business model of the Organization or the division you are working for
- Understand the expectations and high level requirements of the IT solution/system to be developed
- Learn about the hardware, software and technical requirements and configurations from every perspective (infrastructure, location, availability, ease of use)
- Recommend whether you need to replace the old/legacy systems or modify the existing system
- Conduct a cost-benefit analysis/feasibility study to understand if its economically viable for the organization to develop the system
- Define the problem, how it intends to be resolved, what all will be required, high level risks/concerns and limitations
- Validate that the suggested solution fits in the business goals and objectives of the organization
- Liaise with internal/external users to understand the exact business requirements
- Conduct facilitated workshops/interviews/sessions/questionnaire aimed at interacting with specialized audiences of the product being developed and understanding the complete requirements details
- Document detailed technical requirements, hardware requirements and logic implementations
- Technical Documentation – Prepare System Requirement Specification (SRS), Functional Requirement Specification (FRS), system/application architecture
- Requirement Documentation – Create use cases, user stories, Business Requirement Document (BRD), class diagram, Entity-Relationship (ER) diagram and sequence diagrams. Related Article – 9 Important documents created by every business analyst
- Application Modelling – Create models, flow charts, wireframes, Data Flow Diagram (DFD and Process Flow Diagrams (PFD) by using modelling techniques and notations i.e. UML, BPMN, etc.
- System Design – Design the complete system by working with the technical team
- Plan how the system in expected to behave in different situations/environments and document exceptions
- Obtain approval of the complete requirement set and get a written sign-off on all the documents prepared for the project
- Help programmers understand the complete requirements and all the associated aspects (technical, functional and operational)
- Oversee development, assign tasks and supervise the progress of the activities assigned to the development team
- Mentor the team by providing expert advice, suggestion, clarifying doubts and solving technical/functional issues
- Create test cases and assist the testing team in identifying testing scenarios
- Test the application by doing unit testing, functional testing and application testing – ensuring the functional and technical compatibility of the product with the requirements
- Assist in change management and in developing/recommending workarounds.
- Measure whether the development of the project is in sync with the documented and approved technical and functional requirements and planned deadlines (Very Important!)
- Control any deviations from the plan by having proper preventive actions in place and correct any defects by implementing corrective actions
- Present the interim and final solution/application to the business owners and seek their approval and feedback
- Assist in the deployment of the system in the UAT and Production environments
- Inspect the installed and configured systems, validate their functioning and look out for any flaws and errors
- Aid in the maintenance of the deployed system along with operational support
- Prepare user manuals, technical handouts and operational manuals for the deployed application/system
- Train end users and system users and make them comfortable with the new system
The following tasks, although not a part of the formal job description of a Systems Analyst, but are expected to be conducted by them:
- Stay updated with the latest developments and emerging technologies in the technical sphere
- Analyze whether the existing systems are outdated and needs to be replaced with latest, easy to use, efficient or more optimal technology
- Research existing systems/process and prepare technical proposals for implementing new systems
- Author case studies, research papers, publications and continuously enhance the technical skills to be on top of the technology
- Compare different recommendations and proposals for system modifications and replacement on criteria like organizational feasibility, infrastructure, usability, technology used, technical challenges, etc… and present a comparative report
Some of the more common and domain-independent skills that the Systems Analyst must have are:
- Understanding of software development lifecycle (SDLC).
- Knowledge of software designing concepts.
- Working know how of data modelling.
- Awareness of database concepts like DBMS, ETL and SQL.
- Analysis and elicitation skills.
- Good command over spoken and written communication
- Testing skills and eye for detail.
For individuals who are having a bachelor’s degree in computers science, Information technology, business information systems or information science and an analytical aptitude, Systems Analyst is a lucrative career option both professionally and financially. Apart from the usual benefits of being an analyst, systems analyst gets the opportunity to work with the latest technology, tackle challenging techno-business issues and draw a handsome salary in the process (median pay of around $80,000 per year).
Are you an analyst who is currently working as a Systems analyst? Share your experiences, opportunities and challenges faced in the role by commenting in the section below (The fellow analysts are waiting 🙂 )