Saturday, July 11, 2009

The Role of an Analyst

I've been in the software industry for a long time now (seen punch cards too!) Started off as a coder, taking requirements from the business and diving directly into coding without knowing or caring to know what the 'business' intent of the requirements were.

Back then, atleast where I was working, the role of an analyst was bundled with the programmer role - you must have heard of the programmer/analyst job description. I agree, I was not working for a big enterprise and the requirements were simple and pretty staight forward.

Then came my transition to a big company with various divisions. Here the requirements were complex and I had to learn the working of the business. To complicate things, systems in different divisions needed to talk to each other.

This is when my way of working changed. I no longer could jump straight into coding. I started questioning the new and changed functionality. I had to weigh the impact of the changes not only from my division's view but it's impact on other divisions too. Our team produced heaps of analysis and design documents, detailing each and every change, in a lexicon that the programming, quality control, business teams and others could understand.

The analyst in me was born!

The role of an analsyt in the IT industry is one of a multi-dimensional role, atleast it has been for me.

In short the role of an analyst is to ensure that the needs and expectations of the client are represented correctly in the final solution. In general, the analyst is responsible for ensuring that the business requirements are captured and documented correctly before the solution is developed and implemented.

I have seen different companies define the roles and responsibilities that an analyst plays in their organization, slightly differently. In some companies, this person might be called a Systems Analyst , Business Analyst, Business Systems Analyst, or a Requirements Analyst. The title depends on where the analyst is more aligned - towards the business or towards the system architecture, but the main responsibility of each is the same - to capture and document the requirements needed to implement a solution that meets the clients' business needs.

The analyst plays a key role in making sure that the overall project successfully meets the client needs. This includes:

  • Analyzing and understanding the current processes to ensure that the impact to the existing system(s) is well understood by the clients and the project team
  • Developing an understanding of how present and future business needs will impact the solution
  • Identifying the sources of requirements and verifying the validity of requirements
  • Developing a Requirements Management Plan and disseminating the Plan to all stakeholders
  • Identifying and documenting all business, technical, product and process requirements
  • Working with the client to prioritize and rationalize the requirements

  • Helping to define acceptance criteria for completion of the solution

Again, this does not mean that the analyst physically does all of this work. There are other people that contribute, including the QA, Development and Project Management teams. Reviews with these teams and the stakeholders are essential to keep the analysis honest to the requirements.

Analyst Skills
Generally, analysts must have a good set of technical skills, must understand the business domain that (s)he is working in, project management skills, people skills and soft skills to be successful. These include:

  • Good written and verbal communication skills
  • Recognize patterns using past experience and formulating solutions accordingly
  • Thinking 'outside the box'
  • Building strong and effective relationships with clients to develop joint vision for the project
  • Assisting other teams like Dev, QA, PM and UAT
  • Negotiating skills to build a final consensus on a common set of requirements from all clients and stakeholders.

Depending on the size and complexity of the project, the analyst may take on other responsibilities in addition to capturing and documenting the requirements. For instance, the analyst may assist the development team in visioning the user interface, or assist the quality assurance and UAT teams to develop test startegies or be the beta tester, or assist the project manager in the creation of the work breakdown structure of the Analysis Phase.

In conclusion, the Business / Systems Analyst performs a very important role in the software development lifecycle. A project that undergoes thorough analysis is more likely to result in a final product that meets or exceeds the client's expectation.

No comments:

Post a Comment

What do you think about this post? Please do leave us a message...