Linha 6: Linha 6:


= Evolução na profissão =
= Evolução na profissão =
====Como estudante:====
 
* '''Como estudante:'''


'''Estágio na empresa CTBC, projeto de reconhecimento de fala (entre 2001 e 2002):'''
'''Estágio na empresa CTBC, projeto de reconhecimento de fala (entre 2001 e 2002):'''

Edição atual tal como às 17h58min de 21 de outubro de 2017

Dados do profissional

  • Nome: Celso Borges de Souza Júnior
  • E-mail: celsoborgessouza@gmail.com
  • Telefone: (34) 99146-3392


Evolução na profissão

  • Como estudante:

Estágio na empresa CTBC, projeto de reconhecimento de fala (entre 2001 e 2002):

Primeiro contato com o ambiente corporativo.

A tecnologia de reconhecimento de fala era muito nova e o projeto era inovador para a época.

Hoje consigo entender o importância de inovar, e que as tecnologias evoluem muito com o tempo, bem como o seu contexto de utilização.

Estágio no Núcleo Avançado de Computação Sônica e Multimídia UFU:

Foi uma oportunidade de trabalhar com Redes e Linux, dois assuntos que me interessavam muito na época que era estudante.

  • Como profissional

Empresa sondaimarés (www.sonda.com) no período de Fevereiro de 2004 a Fevereiro de 2006:

Cargo: analista de produção.

A maior responsabilidade era desenvolver scripts de automação.

Importante para entender o funcionamento e criticidade de ambiente de produção.

Em termos de tecnologia percebi a importância de padronização de código.

Empresa SWB (www.swb.com.br) no período de Março de 2006 até Fevereiro de 2007 como Analista de Sistemas:

O cargo de analista/desenvolvedor Java.

Primeiros projetos profissionais da minha carreira utilizando tecnologias do universo Java.

Empresa TQI (www.tqi.com.br) no período de Fevereiro de 2007 até Outubro de 2009 como Analista de sistemas:

O cargo de analista/desenvolvedor.

Nessa época especializei na tecnologia Java, fazendo curso de especialização em desenvolvimento corporativo em Java - UNIFENAS/IGAP/FIEMG e me certificando: SCJA - Sun Certified Associate for Java Plataform e SCJP - Sun Certified Programmer for Java Plataform.

Além de participar de projetos para empresas de Uberlândia, tive a oportunidade de trabalhar em projetos de empresas de fora de Uberlândia como UOL, BUNGE, Vivo.

Os projetos eram de contextos de negócios diferentes e tecnologias diversas, porém o objetivo final sempre era produzir uma solução tecnológica aderente ao negócio do cliente. Dessa forma, além de codificar foi necessário entender e aprender sobre o processo de desenvolvimento de software e boas práticas de gestão de projeto.

Além de me envolver com tecnologias, tive que desenvolver habilidades de criar documentação de requisitos técnicos e funcionais (Diagramas UML, técnicas de elaboração de casos de uso), elaborar e executar plano de testes e trabalhar no contexto de metodologias (RUP, Scrum).

Empresa União Atacado e Distribuidor (www.uniaoatacado.com.br) de Outubro de 2009 até Julho de 2011 como Analista de Sistemas:

Cargo: Analista/desenvolvedor atuando como líder técnico.

Nessa época iniciei o MBA em Gerenciamento de Projetos - FGV, com o objetivo de entender sobre boas práticas de gerenciamento de projetos, tomar decisões e argumentar sobre o controle de escopo, tempo e custo.

Surgiu a oportunidade atuar no planejamento técnico de novos projetos e integração com sistemas legados.

O desafio foi propor, implementar e implantar a solução tecnológica aderente ao negócio. Dentre as dificuldades enfrentadas estavam o fato de contar com uma equipe reduzida e também de ainda não tinha sido realizado projeto nesse modelo com uma equipe interna.

Para atingir o resultado primeiro foi necessário entender o contexto de negócio da empresa, os recursos tecnológicos disponíveis e que seriam possíveis de adquirir, para então definir e implantar uma infraestrutura de desenvolvimento com controle de versão e automação de entregas, repositório de código e artefatos, padronização de arquitetura de desenvolvimento e integração com sistemas legados.

No segundo momento foi definida a forma de comunicação com as pessoas da empresa para entender os objetivos do projeto e escrever os requisitos.

Dessa forma, foi possível escrever os requisitos, codificar, implantar, controlar versões e rastrear novas implementações, manutenção e alterações.

Empresa TQI (www.tqi.com.br) de Julho de 2011 a Novembro de 2014 como Analista de Sistemas:

Cargo: Analista/desenvolvdedor.

Novas oportunidades em projetos de fora de Uberlândia: UOL, Buscapé, Iguatemi Empresas de Shopping Centers.

A realização de codificação e argumentação era feita com mais maturidade.

Empresa Callink (www.callink.com.br) desde Dezembro de 2014 como Arquiteto de Sistemas:

Cargo: Arquiteto de sistemas.

Participação na concepção, implementação, implantação de produtos externos e internos.

Apoio em projetos de operação.

Descrição da atividade atual

A função do Arquiteto de Software é fazer toda a conexão entre as propriedades externas e internas, baseando-se em padrões, informações, premissas e restrições para montar a comunicação entre os elementos existentes


Requisitos mínimos para exercer a profissão

  • Pelo menos ler e escrever em inglês.
  • Ser curioso e gostar de entender as coisas.
  • Certificações técnicas sempre são bem vindas.
  • Conhecimento em ITIL (Information Technology Infrastructure Library) que é o framework para gerenciamento de serviços de TI mais adotado mundialmente.
  • Conhecimento em Gestão de TI e Gestão de Projeto.
  • Conhecimento em contabilidade (matemática financeira).
  • Conhecimento em tecnologia cloud.


Ferramentas usadas no dia-a-dia

  • JDK(Java Development Kit), Springframework (um framework não intrusivo, baseado nos padrões de projeto inversão de controle e injeção de dependência.
  • Eclipse
  • GIT e SVN (ferramentas de versionamento).
  • Nexus (ramificação de projetos).
  • Maven ( ferramenta de automação de compilação).
  • AWS (uma plataforma de serviços de computação em nuvem, que formam uma plataforma de computação na nuvem oferecida pela Amazon.com).
  • Crontab (programa do Unix que edita o arquivo onde são especificados os comandos a serem executados e a hora e dia de execução pelo cron, um serviço que executa comandos agendados nos sistemas operacionais do tipo Unix).
  • Jira (ferramenta que permite o monitoramento de tarefas e acompanhamento de projetos garantindo o gerenciamento de todas as suas atividades em único lugar).
  • SoapUI (ferramenta de testes).
  • Postman (ajuda analisar APIs).
  • Enterprise Architect (análise de design).
  • VMWare, VirtualBox, Vagrant (softwares de máquinas virtuais).


Tecnologias envolvidas

  • SQL Server e MySQL (banco de dados).
  • SQL Management Studio (ambiente integrado para gerenciar qualquer infraestrutura de SQL).
  • Elastic Search (Big Data)
  • Shell script, bat (linguagens utilizadas em vários sistemas operacionais).


Ética profissional

  • Situação Positiva:
Liderança de equipe: Gerente blinda a equipe e sempre procurava uma solução para o problema, e não o culpado.
A equipe era composta por profissionais em início de carreira. Quando ocorria algum problema as pessoas de outras áreas queriam falar direto com membros da equipe, nesses casos o gerente não permitia a cobrança direta, então ele procurava saber o que estava acontecendo com a pessoa que estava reclamando, e dependendo da situação, de forma separada. Era exposta a situação para a equipe, que escutava e propunha uma solução, e então a conversa só terminava depois que a equipe chegava a um consenso.
  • Situação Negativa:
Dar feedback de maneira incorreta: Criticar o trabalho de um companheiro de trabalho em público.
Não é “saudável” expor um erro ou uma maneira de trabalhar de outra pessoa em público. Dessa forma, pode gerar um constrangimento desnecessário e contaminar o ambiente de trabalho negativamente.
Os feedback negativos ou críticas devem ser feitos sim, mas pela pessoa certa (nível hierárquico) e em local e momento adequado.


Exemplo de resultado tangível

Produto: Portal de Cobrança.
Objetivo: Recuperação de crédito.
Funcionamento: Sistema faz a seleção de usuários e negociações de dívidas. O usuário recebe uma proposta de negociação de dívidas via e-mail ou sms com as orientações de acesso no portal. O usuário acessa o portal de cobrança a qualquer momento e analisa a melhor opção de parcelamento e data de pagamento da dívida de maneira privada e sem a necessidade de interação com o ser humano.
Portal de cobrança digital DigiCop: https://www.digicob.com/
Mais sobre: https://pt.linkedin.com/pulse/digicob-cobrança-digital-dna-redação-digicob


Upload da apresentação

Arquivo:Profissão em Computação e Informática.pdf

Dúvidas

  • 01. Qual a diferença entre um Arquiteto e um Engenheiro de Software ? (Explicar cada um)
R: Depende, cada empresa divide as funções de acordo com a necessidade do projeto. No entanto, no geral o arquiteto de software define os componentes de um sistema, suas propriedades, como será sua comunicação com sistemas exteriores, além de criar a documentação sobre o software. Já o engenheiro de software está diretamente ligado a criação, desenvolvimento, manutenção e organização dos projetos.


  • 02. O que é padronização?
R: A padronização é um meio que as empresas tem de organizar suas atividades gerando como consequente uma otimização de seus processos. A padronização consiste em criar uma serie de procedimentos e normas (padrões) sobre como determinada atividade deve ser executada. Assim facilita o controle da operação e aumenta a qualidade do produto a ser entregue.


  • 03. O que é RUP? Cite outra metodologia que compete com o RUP.
R: RUP é uma metodologia de processos. São documentos que descrevem o software e os projetos a serem executados, anteriormente a seu desenvolvimento. É dividido em quatro fases:
  • fase inicial: Quando o desenvolvedor e o cliente discutem como será o sistema ou software a ser desenvolvido;
  • fase de elaboração: Fase voltada ao desenvolvimento da documentação, da arquitetura, levantamento de recursos e custos;
  • fase de construção: é a fase de desenvolvimento do software em si;
  • fase de transição: Ocorre a entrega do software, implementação e o controle de qualidade;
uma outra metodologia que compete com o RUP é chamada SCRUM.


  • 04. O que é SCRUM? Como são feitas as reuniões do Scrum e o que se discute nelas?
R: Scrum é uma metodologia de processos para otimizar o desempenho de grandes equipes em projetos. No scrum o projeto é dividido em ciclos , os quais possuem seus objetivos chamados sprints. A equipe é dividida em sub equipes , as quais receberam uma certa atividade a ser executada e possuem um líder chamado de scrum master. No inicio de cada dia de trabalho serão realizadas reuniões sobre o que já foi feito, o que será feito, como será feito e a melhor forma de faze-lo.


  • 05. Você já participou de um projeto de um sistema, no qual sabia que sua tecnologia estava ultrapassada?
R: "Sim, é ruim pois tenho que garantir uma boa comunicação para informar que o sistema não se sustenta."


  • 06. O que é Jira? Dê um exemplo de uma atividade ou de um print das telas.
R: De forma simplificada, é uma software que auxilia na organização das atividades da equipe.



  • 07. Você usa o Git e o SVN? Porque usá-los?
R: "Sim uso , pois dependendo do projeto a situação me força a usar um ou outro. A utilização dessas ferramentas é importante, pois possibilita o versionamento do projeto, dessa forma impedindo erros incluídos no código sejam incorrigíveis e facilitando o trabalho em equipe."


  • 08. O que é ITIL e porque se recomenda sua utilização?
R: Information Technology Infrastructure Library ou ITIL é uma biblioteca de infraestrutura em TI que possui as melhores praticas em serviços de TI. Descreve praticas testadas por organizações do mundo todo. A utilização do ITIL é recomendada, pois reduz falhas operacionais, otimiza a correção de bugs, acelera a produção de diagnostico do sistema, etc.


  • 09. Para que devemos usar o crontab? Dê um exemplo de atividade onde seu uso é importante.
R: O crontab deve ser usado para efetuar atividades eventuais e repetitivas.Como exemplo, um backup periódico de algum servidor pode ser automaticamente iniciado com um agendamento no crontab.


  • 10. O que é integração contínua? Porque as empresas estão adotando esse modelo de trabalho?
R: Integração contínua consiste em uma pratica, na qual os desenvolvedores juntam suas alterações de códigos em um repositório central e testes serão efetuados com esses códigos. As empresas vem adotando esse modelo, pois facilita bastante a localização e correção de bugs e como isso acelera a produção de atualizações para os softwares.


Livro indicado