Evolução na profissão


Graduação em engenharia da computação na Universidade Federal de Uberlândia (UFU), curso no ramo da engenharia que lida com a realização de projeto e construção de computadores e de sistemas que integram hardware e software, viabilizando a produção de novas máquinas e de equipamentos computacionais para serem utilizados em diversos setores.

Participou no total de 5 maratonas entre os anos de 2014 a 2015. Iniciou sua carreira na Algar como estagiário realizando pequenas funções. No início do ano de 2016 encerrou seu contrato como estagiário na Algar e iniciou estagio na Martins como analista, onde teve seu primeiro contato com a profissão. No final do ano foi contratado como Analista de Sistemas na mesma empresa onde exerce a função até hoje.

Descrição da atividade atual


Especificação de sistemas com o objetivo em compreender o que deve ser feito e o que se espera receber como resultado.

Homologação de sistemas, comprovação pelo cliente e demais partes interessadas, de que o produto resultante do projeto de software atende aos critérios de aceite previamente estabelecidos com o cliente.

Mapear processos, garantir a funcionalidade dos sistemas utilizados, planejar e realizar atualizações de softwares, desenvolver e implantar sistemas, atuar como facilitador entre usuários e desenvolvedores, analisar o impacto e custo das mudanças em TI, sugerir soluções que tragam inovação, aperfeiçoar a capacidade de gerar produtos e serviços, elaborar documentos referentes aos sistemas e participar de reuniões, entre outras tarefas.

Requisitos mínimos para exercer a profissão


Graduação na área de tecnologia, principalmente nos cursos Sistema de informação, Ciência da computação ou Análise e Desenvolvimento de Sistemas.

Deve ter grande capacidade de resolução de problemas, capacidade analítica, raciocínio lógico, conhecimento do comportamento do usuário e comprometimento para lidar com projetos. Organização e responsabilidade são essenciais para saber gerar relatórios e produzir documentação de sistemas existentes ou implantados, para controle interno da empresa e de futuros usuários. Conhecimento avançado em banco de dados, inglês e lógica de programação também são requisitos comuns. Outras características desejáveis são o bom relacionamento interpessoal, para poder se comunicar de forma a entender as necessidades dos usuários, e liderança, para poder gerenciar outros desenvolvedores e analistas em projetos.

Ferramentas usadas no dia-a-dia


Pesquisas de papel ou complexos, software de coleta de dados, Microsoft Word ou o Microsoft Power Point, Microsoft NET, Web API, padrão de arquitetura de software MVC, API RESTful, API Manager, Progressive Web App, Oracle, MongoDB, etc.

Tecnologias envolvidas


Durante seu estágio na Martins – empresa atacadista de Uberlândia, usou algumas linguagens de programação sendo elas; Visual Basic e .NET. Teve contato também com banco de dados usando assim a linguagem apropriada para a construção de bancos na ferramenta Oracle, uma vez que algumas funções não são aceitas em outros instrumentos de construção de banco. Por fim usou o bootstrap que é uma ferramenta gratuita para desenvolvimento HTML, CSS e JS e também um framework chamado API Restful que tem a capacidade de determinado sistema aplicar os princípios de REST.

Ética profissional


Compromisso e responsabilidade com a empresa onde se trabalha sobre os aspectos de segurança, privacidade e interesses econômicos.

Exemplo de resultado tangível


Um resultado de sua pequena experiência profissional pode ser notado com a criação da Wiki Martins. A Wiki Martins é uma plataforma de compartilhamento de conhecimento, onde quem é mais experiente pode ajudar os mais novos na empresa fazendo assim com que aquele conhecimento nunca se perca. E também é uma forma simples e inteligente de fazer com que os funcionários novatos entendam o sistema com mais facilidade, logo o tempo que demandaria para entender todo o funcionamento do sistema poderá ser usado para realizar novas tarefas na empresa, aumentando assim sua produção.

Upload da apresentação

Arquivo:AnalistadeSistemas.pdf

Dúvidas


  • 01. O que é MVC? Por que é interessante usar esse padrão?
    • O MVC é um padrão de arquitetura de software, separando sua aplicação em 3 camadas. A camada de interação do usuário(view), a camada de manipulação dos dados(model) e a camada de controle(controller).

Model Sempre que você pensar em manipulação de dados, pense em model. Ele é responsável pela leitura e escrita de dados, e também de suas validações.

View É a camada de interação com o usuário. Ela apenas faz a exibição dos dados.

Controller O responsável por receber todas as requisições do usuário. Seus métodos chamados actions são responsáveis por uma página, controlando qual model usar e qual view será mostrado ao usuário.

Com o aumento da complexidade das aplicações desenvolvidas, sempre visando a programação orientada a objeto, torna-se relevante a separação entre os dados e a apresentação das aplicações. Desta forma, alterações feitas no layout não afetam a manipulação de dados, e estes poderão ser reorganizados sem alterar o layout.

Esse padrão resolve este problema através da separação das tarefas de acesso aos dados e lógica de negócio, lógica de apresentação e de interação com o utilizador, introduzindo um componente entre os dois: o controlador.

  • 02. O que são Regras de Negócio? Dê um exemplo?
    • Regras de Negócio são declarações sobre a forma da empresa fazer negócio. Elas refletem políticas do negócio. As organizações com isto têm políticas para satisfazer os objetivos do negócio, satisfazer clientes, fazer bom uso dos recursos, e obedecer às leis ou convenções gerais do negócio.

Exemplos: O valor total de um pedido é igual à soma dos totais dos itens do pedido acrescido de 10% de taxa de entrega. Um professor só pode lecionar disciplinas para as quais esteja habilitado. Um cliente do banco não pode sacar mais de R$ 500,00 por dia de sua conta. Senhas devem ter, no mínimo, seis caracteres, entre números, letras e símbolos. Para alugar um carro, o proponente deve estar com a carteira de motorista válida. O número máximo de alunos por turma é igual a 30. Particularidades que o sistema possa executar e o mais importante

  • 03. O Kanban e o Trello tratam de gestão de atividades. Qual a serventia de cada um ou a diferença entre eles?
    • Ambos são ferramentas de gerenciamento de atividades que são muito úteis para o desenvolvimento de um projeto. Nós, como time de desenvolvimento e, na maioria das vezes líderes deste time, somos responsáveis garantir que a entrega do projeto seja feita em tempo hábil e da maneira mais correta possível, a fim de não termos que realizar correções profundas em regras definidas anteriormente. Abaixo detalho um pouco sobre a utilização das ferramentas e, no meu ponto de vista, qual a melhor utilização de cada uma.

Trello → É dividido em seções que definem o status das atividades da equipe deve realizar, atribuindo a cada membro do time apenas uma atividade a ser realizada. Esta ferramenta é muito utilizada em times de desenvolvimento auto-gerenciáveis que formam um squad agile que deve cumprir determinada quantidade de atividades em um timeboxing pré-definido.

Kanban → Permite controlar de forma detalhada o desenvolvimento de um projeto com informações sobre quando, quanto e o que desenvolver. Este é um modelo um pouco mais completo que o Trello, porém com objetivo um pouco diferente, uma vez que a metodologia de desenvolvimento já traz um escopo de projeto bem definido.

  • 04. Obrigatoriamente, o Analista de Sistemas precisa ser um exímio desenvolvedor? Explique.
    • Um Analista de Sistemas é o responsável por definir, com o seu cliente final, as regras de negócio de um sistema e repassar o trabalho de desenvolvimento à uma empresa especializada no desenvolvimento pois esta possuirá desenvolvedores com skills pertinentes à necessidade do projeto. No meu ponto de vista, um Analista de Sistemas não precisa ser um exímio desenvolvedor, MAS deve ser um bom desenvolvedor. Ser um bom desenvolvedor não te torna refém de outras pessoas para realizar pequenos projetos e pequenas demandas, além de melhorar o raciocínio lógico-matemático que abre portas e outras oportunidades no mercado de trabalho. Não gostar de programação não te faz menos Analista de Sistemas, mas com certeza é uma habilidade que pode te deixar fora de uma vaga de emprego quando concorrida com outras pessoas que sabem programar.


  • 05. É interessante que o Analista de Sistemas faça parte da equipe de desenvolvimento?
    • Sim, é importante. O Analista de Sistemas que faz parte da equipe de desenvolvimento consegue reduzir as perdas entre os membros do time. Seja essa perde no tempo de desenvolvimento quanto nas dúvidas que surgem referentes ao escopo do projeto. O analista que faz parte da equipe consegue reduzir o retrabalho na etapa de homologação e implantação.


  • 06. Dentre as áreas da Ciência da Computação, (http://www.portal.facom.ufu.br/node/172) qual a que mais se aproxima da responsabilidade do Analista de Sistemas? Quais os itens mais praticados?
    • • Banco de Dados: Sem dúvida alguma, a utilização do banco de dados pelo analista de sistemas é fundamental. O analista é responsável por definir as regras de negócio do sistema, as quais, após implementadas, refletem diretamente no banco de dados que foi modelado anteriormente pelo analista de sistemas juntamente com sua equipe e seu DBA.

• Engenharia de Software: Este tópico é muito importante para a carreira do analista de sistemas, pois ele fará, na maioria das vezes papel de arquiteto de sistemas, analista de requisitos e analista de qualidade. Muitas vezes, nos deparamos com projetos definidos e desenvolvidos por outros analistas e, portanto, é necessário fazermos a Engenharia reversa para compreender a implementação do sistema.

• Redes de Computadores: Pode parecer que não, mas o analista de sistemas deve conhecer sobre Redes de Computadores. Muitas vezes, durante o desenvolvimento, necessitamos utilizar protocolos de redes para que nossa aplicação atinja o objetivo esperado. A utilização de middlewares se faz MUITO presente no nosso dia a dia quando falamos sobre APIs. Portanto, é necessário que conheçamos e tenhamos noção sobre RC para desenvolvermos bem nossos sistemas.

  • 07. Um Analista de Sistemas se preocupa em criar o escopo para um novo projeto. Além destes, que outros dois itens podem ser definidos por ele? Ele pode definir o preço final do projeto e o tempo gasto para que ele seja concluído.
    • O analista é capaz de prever, juntamente com o Gerente de Projetos (GP), o tempo e valor do projeto, mas não é responsabilidade dele esta tarefa. Cabe ao GP gerenciar custos e tempo de um projeto.


  • 08. Um ERP é um sistema de sub-sistemas. Exemplifique, ao menos, 6 aplicações que podem fazer parte de um ERP em uma empresa convencional.
    • Em uma empresa matricial convencional, temos os seguintes sistemas que podem estar dentro de um ERP:

• Faturamento

• Transporte

• Vendas

• Compras

• Recursos Humanos

• Fiscal

  • 09. O que é uma API? Dê 3 exemplos de APIs que podem ser usadas em sistemas na Web.
    • API é um conjunto de rotinas e padrões de programação para acesso a um aplicativo de software ou plataforma baseado na Web. A sigla API refere-se ao termo em inglês Application Programming Interface que significa em tradução para o português Interface de Programação de Aplicativos. Exemplos de APIs utilizadas na Web são:
  • Autenticação em uma aplicação via Facebook:

o O sistema consome uma API do Facebook que garante a identidade do usuário que está autenticando na aplicação

  • Consulta ao código de rastreio fornecido pelo Correios:

o A API disponibilizada pelo Correios fornece, através de um WebService, um método que retorna o status atual da entrega através de um parâmetro (código de rastreio) informado pelo usuário

  • Marketplace

o Um Marketplace fornece aos seus parceiros APIs que são utilizadas para cadastro e consulta de produtos além de realizar toda interface comercial entre os sistemas.

  • 10. O que é COBOL? É usado atualmente?
    • o Cobol é uma linguagem de programação de alto nível concebida para aplicações comerciais e financeiras.

Sim, ela é usada atualmente. As empresas que já usam COBOL tendem a continuar usando, em vez de substituí-la. Sua substituição demandaria em um alto custo - devido à sua dimensão, tempo e risco, além de ser completamente desnecessária. Na passagem para o ano 2000, mais conhecido como Bug do Milênio, demonstrou que as aplicações em COBOL foram mais baratas para serem refeitas do que aplicações escritas em linguagens mais recentes. A Martins é um exemplo de empresa que usa COBOL.