sábado, 28 de abril de 2012

Cargos de TI: O Analista de Sistemas


Na postagem anterior passei um pouco da minha visão sobre as atribuições do Analista de Suporte, e agora chegou a vez de falar do cargo que é o mais utilizado de forma errônea no mercado: o Analista de Sistemas.

Muitos profissionais - que apesar de serem sim analistas – recebem essa nomenclatura mas executam tarefas que muitas vezes passam longe da atribuição real de um Analista de Sistemas.  E isso se dá pelo fato de não existir um curso de graduação em “Análise de Suporte” ou “Análise de Processos”, por exemplo, que são áreas de atuação específicas mas que recebem muitos profissionais do curso de Análise de Sistemas.

O Analista de Sistemas, teoricamente, é o profissional que estará envolvido em projetos de desenvolvimento ou manutenção de sistemas, mas não necessariamente irá programar, ou seja, manipular diretamente os códigos-fontes que fazem um sistema 'rodar'. Essa é a atribuição do Desenvolvedor (ou Analista Desenvolvedor), cargo que será abordado em outra postagem. O Analista de Sistemas, no entanto, talvez seja o profissional que tenha mais interação com o Desenvolvedor (programador), pois é ele quem projeta o sistema, ao mesmo tempo que tem uma visão mais próxima à do usuário. Antes de um sistema começar a ser codificado, ou seja, construído, muitas informações são levantadas, no intuito de garantir que as necessidades do cliente vão ser atendidas, e de que os riscos (de erros ou da construção de um sistema pouco aderente) durante o projeto sejam minimizados.

Cabe ao Analista de Sistemas analisar os requisitos funcionais e não funcionais, ou seja, requisitos de funções que o sistema deverá ter, e requisitos de qualidade: performance do sistema, facilidade em seu uso (usabilidade!), proteção das informações, etc. Com essa frente junto ao usuário – ou ao Analista de Negócios, outro cargo que veremos mais para frente – o Analista de Sistemas deve interpretar de forma correta a necessidade do usuário, e mais importante, deve ter a capacidade de entender se o que o usuário está solicitando é coerente: praticamente todos os usuários não conseguem expressar tudo o que desejam, e quase sempre descrevem suas necessidades de maneira “traiçoeira”, pois, por já terem uma visão voltada para o negócio, não conseguem ter uma visão mais sistêmica para explicar o que realmente precisam.
Esses requisitos são coletados de diversas maneiras: por meio de questionários, por meio de estórias de usuários (uma tarefa dentro do processo de trabalho do usuário do sistema a ser construído), ou mesmo acompanhando o dia a dia do usuário, vendo de perto como o processo de trabalho dele é conduzido, ou seja, levantando o que chamamos de “as is”.

Além dos requisitos, que é a língua do usuário, o Analista de Sistemas desenha (modela) diagramas que facilitam o entendimento de quem vai desenvolver o sistema e focar na parte técnica: códigos, configurações, testes e lógica de programação. Alguns desses diagramas são:

Caso de Uso - onde são definidos todos os perfis de usuários e o papel de cada um dentro do sistema. Exemplo: Num sistema de hospital podem existir dois perfis: secretária e médico, onde a secretária vai agendar os pacientes para os médicos e os médicos por sua vez registrar o diagnóstico de cada paciente.

Diagrama de Classes – onde são definidos os conceitos do negócio e a relação entre eles. Exemplo: O sistema deverá guardar dados de Usuários, que podem ser médicos ou secretárias; deverá guardar dados do paciente, que só será vinculado a um médico após a geração de uma Ficha de Atendimento, que deverá conter informações pré-definidas de diagnóstico e assim por diante.

Diagrama de Atividades – onde são definidos fluxos de atividades (interações) a serem realizadas no sistema. Exemplo: Secretária agenda paciente para Médico (a), que gera Ficha de Atendimento (b) com determinado diagnóstico (c) e finaliza consulta (d) com a opção de imprimir uma receita (e).

Entre outros como Diagrama de Implantação, Diagrama de Fluxo de Dados, Diagrama de Componentes, etc.

O padrão mais difundido para modelagem desses diagramas é a UML (Unified Modeling Language), que possui duas categorias mais genéricas de diagramas: Os comportamentais e os Estruturais. Uma das ferramentas freeware (grátis!) mais conhecidas para modelagem em UML é o Astah Community, que possui interface amigável e ótima usabilidade.
A UML é definida pela OMG, que oferece certificações na área em três níveis: fundamental, intermediate e advanced.

Bom pessoal, procurei descrever de forma mais ilustrativa e abrangente as reais atribuições de um Analista de Sistemas, com uma abordagem diferente do que estamos já acostumados a ler em Wikipedias da vida. Essa é uma visão que eu tenho da atualidade, que pode continuar sofrendo alterações afinal TI é um mercado que sofre constantes mudanças. Pelo que leio, muitas das atribuições acima são conduzidas em várias situações pelos próprios Desenvolvedores; consequência da difusão de novas práticas, padrões de projetos e metodologias adotadas no mercado.

Quem for da área deixe sua opinião, e quem não for aponte no caso de algo não ter ficado claro!

Mais pra frente falarei um pouco dos seguintes cargos: Desenvolvedor, Analista de Teste, Analista de Implantação, Analista de Banco de Dados (DBA), Analista de Negócios, Analista de Projetos, Analista de Processos, Analista de Arquitetura de TI e Auditor de Sistemas.

Um abraço!

domingo, 15 de abril de 2012

Cargos de TI: O Analista de Suporte

Dando continuidade aos tópicos sobre informática/TI – onde inicialmente foi passada uma visão sobre os cursos da área – para quem ainda está querendo se encontrar nesse mundo, inicio aqui uma coletânea de postagens com uma visão geral sobre os principais cargos da área de tecnologia e certificações para as suas diversas áreas de conhecimento. 
Cada cargo possui suas atribuições e peculiaridades, no entanto qualquer curso de tecnologia abre portas para todas as áreas de atuação, basta você se interessar e manter o foco nos estudos direcionados. 

Inicialmente, são abordados nessa coletânea os seguintes cargos: Analista de Suporte, Analista de Sistemas, Desenvolvedor, Analista de Teste, Analista de Implantação, Analista de Banco de Dados (DBA), Analista de Negócios, Analista de Projetos, Analista de Processos, Analista de Arquitetura de TI e Auditor de Sistemas.

Comecemos com o Analista de Suporte!

Esse profissional é o que vai estar sempre em contato com os problemas e dúvidas dos usuários ou com as mudanças realizadas no ambiente de TI. Conforme a idéia já passada no tópico sobre help-desk, ele geralmente começa atuando no primeiro nível, ou seja, atendendo todos os relatos dos usuários, resolvendo problemas mais conhecidos por telefone, ou registrando e direcionando os mais complexos para um profissional do próximo nível.

O analista de segundo nível é o que vai até o local, caso haja necessidade, para resolver problemas de complexidade intermediária ou problemas físicos, ou seja, relacionados ao hardware.

Quando o analista de segundo nível não consegue resolver o problema, ele encaminha todas as informações já levantadas para alguém da equipe de terceiro nível, compostas por profissionais especializados em diferentes competências: redes, sistemas operacionais, softwares ou hardware. O analista de suporte de terceiro nível pode atuar também em áreas mais voltadas para infraestrutura de redes, servidores, etc.

Problema do usuário resolvido, o primeiro nível é acionado para dar um retorno ao usuário e registrar um feedback sobre o atendimento. Perceba que o terceiro nível geralmente não faz contato direto com o usuário. Ele se concentra majoritariamente nos problemas já levantados pelos níveis anteriores. No caso de o problema ainda assim não ser resolvido, o mesmo já e enviado para outra esfera: os desenvolvedores do produto/serviço em questão (cargo que falaremos em outra postagem).

Apesar de ser um instrumento que pode ser utilizado em qualquer tipo de trabalho, o analista de suporte trabalha a todo o momento atualizando e consultando uma base de conhecimento (knowledge base), onde registra causas-raíz, ações, prevenções, investigações e soluções para problemas de diversas classes (rede, hardware, software, por exemplo), fazendo com que essa informação seja disseminada entre toda a equipe, independente do nível. Isso evita reincidências e agiliza o atendimento de um problema que, por mais complexo que seja, já possui sua solução conhecida.

Existem diversas certificações para o profissional que deseja ganhar visibilidade no mercado de suporte. O ITIL (Information Technology Infrastructure Library), por exemplo, é uma das principais certificações do mercado de tecnologia, e define as melhores práticas e processos para gestão, operação, manutenção e infraestrutura no ambiente de TI. A certificação possui 3 níveis: Foundation, Intermediate, Expert e Master.
As certificações costumam se adaptar às mudanças do mercado, e o ITIL por exemplo, está na sua 3ª versão. Portanto o profissional que consegue um certificado v3, é considerado mais atualizado que um profissional v2.

Outras certificações para a área de suporte são as da Microsoft, como a MCTS, MCITP e MCDST, detalhadas nesta página da empresa.

A área de Redes também possui boas certificações como CCNA, CCNP e CCIE (Cisco Certified Network Associate, Professional e InternetWork Expert, respectivamente) da gigante Cisco.

Estas certificações são muito valiosas e por outro lado são boas estratégias de empresas que já dominam o mercado, para fidelizar ainda mais seus profissionais. Assim eles se especializam e ganham status em cima da própria empresa. No final das contas, além de pagar para obter a certificação, ele vai promovê-la ainda mais, afinal foi a especialidade dela que o profissional desenvolveu.

É isso. Recordo que quando entrei na faculdade alguns professores menosprezavam a profissão de analista de suporte, infelizmente. Pois o que eu tenho visto é que é um profissional que, se especializando na área, pode sim ganhar excelentes salários, principalmente se trabalhar com infraestrutura.

Na próxima postagem será mostrado um pouco sobre o Analista de Sistemas, que apesar de ser o termo mais utilizado pelo mercado - muitas vezes de maneira errônea - possui atribuições específicas e que o diferenciam muito dos outros profissionais de tecnologia que muitas vezes são classificados como do mesmo cargo.

Comentem e acrescentem mais informações!