MENTORIZAÇÃO TÉCNICA:
UM PACOTE DE PAPÉIS FUNDAMENTAIS NO DESENVOLVIMENTO DE SOFTWARE
Marcelo Jaloto1, Luiz Camargo2
Resumo: Este artigo apresenta uma proposta em que a mentorização técnica com seus devidos
papéis irão compor um pacote fundamental, para expandir o processo de desenvolvimento de
software atual de uma empresa, visando a melhoraria da qualidade e da produtividade de seus
softwares. Com este trabalho pretende-se apresentar os benefícios, as principais atividades,
responsabilidades e papéis exercidos pelo profissional que exerce a mentorização técnica, assim
como sua importância no processo de desenvolvimento de software, definindo o cargo mentor
técnico, que ainda é muito pouco difundido e não está formalizado no mercado de trabalho.
Palavras-chave: Mentorização. Técnica. Desenvolvimento. Software. Mentor.
Abstract: This article presents a proposal in which the technical mentoring with it’s due roles will
compose a fundamental package, to expand the current development process of a company, aiming
to achieve improvement of quality and productivity of it’s softwares. This essay intends to present
the benefits, the main activities, responsibilities and roles played by the Professional who does the
technical mentoring, just as it’s importance in the software development process, defining the
technical mentor job function, which is yet very little widespread in the business market.
Key-words: Mentoring. Technique. Development. Software. Mentor.
1 INTRODUÇÃO
Atualmente, a linha de produtividade das empresas de desenvolvimento de software possui um
grande déficit causado por profissionais inexperientes em determinados assuntos ou conhecimentos
técnicos. Estes profissionais perdem muito tempo em pesquisa e análise minuciosa para solucionar
um determinado problema, o qual poderia ser solucionado de modo mais eficaz e eficiente. Para
minimizar esta perda de tempo e aumentar a produtividade, um profissional mais experiente poderia
orientar outro profissional com dificuldades, a encontrar o “caminho das pedras” de modo mais
rápido e fácil, capacitando-o também na solução, para que caso ocorra uma reincidência, o
problema possa ser resolvido mais rápido, sem necessitar de apoio de outro profissional.
Estes profissionais mais experientes, usualmente conhecidos como mentores técnicos, possuem
perfil, conhecimentos, habilidades e características muito semelhantes, e têm como principais áreas
de atuação e especialidades, os papéis de líder técnico, projetista, analista implementador e revisor
de código. As semelhanças, áreas de atuação e especialidades formam uma combinação ideal para
proporcionar uma mentorização técnica de alto nível de qualidade, eficiência e eficácia, resultando
em aumento de produtividade.
Normalmente, profissionais mais experientes atuam de modo sobrecarregado ao exercer uma
mentorização técnica, ou mentoring, quando deixam de desempenhar suas prioridades para repassar
conhecimentos a outros menos experientes, acabam prejudicando a sua própria produtividade. Esta
perda de produtividade poderia ser evitada se fosse investido nestes profissionais mais experientes,
para exercer papéis de um mentor técnico de modo mais prioritário e especializado.
____________________
1
Pós-graduando em Engenharia de Software pelo Instituto Superior Tupy - Sociesc. E-mail: [email protected].
2
Professor orientador do Instituto Superior Tupy - Sociesc. E-mail: [email protected].
Mesmo apesar do mercado de trabalho ter o conhecimento destes problemas que prejudicam a
sua linha de produtividade, ainda não homologaram o cargo de mentor técnico, porque seus papéis,
atividades e responsabilidades não estão bem definidos. Fato que dificulta atualmente a implantação
deste cargo, como um papel fundamental no processo de desenvolvimento de software.
Tendo o cargo do profissional mentor técnico, formalmente homologado, então, seria mais fácil
inserir a mentorização técnica no processo de desenvolvimento de softwares de muitas empresas,
que visão melhorias na qualidade e produtividade de seus produtos.
Deste modo, este artigo tem como foco apresentar o profissional mentor técnico ao mercado de
trabalho, demonstrar sua importância no processo de desenvolvimento de softwares, definir os seus
principais papéis, especialidades, atividades, responsabilidades, conhecimentos e experiências,
aplicados a mentorização técnica. Sendo assim, espera-se que num futuro próximo, com base neste
trabalho, o cargo mentor técnico, seja reconhecido formalmente como uma profissão indispensável
ao mercado de trabalho de empresas de desenvolvimento de software.
Para uma melhor compreensão dos assuntos propostos, o artigo está dividido em seções. Na
próxima seção, 2, é apresentada a definição da mentorização técnica, sua origem e os principais
benefícios; a seção 3 apresenta o perfil comum de um mentor técnico de qualidade; na seção 4 será
exibida de forma resumida as principais tarefas do cargo mentor técnico; a seção 5 é subdivida em
cinco subseções, contendo em cada uma, o resumo de um papel da mentorização; já a seção 6
define, agrupado por papéis, as principais atividades e responsabilidades da mentorização técnica no
desenvolvimento de softwares; a seção 7 define os pré-requisitos de um mentor técnico que são
desejáveis por uma empresa, apresentando seus os principais conhecimentos e experiências; e na
seção 8 apresenta as considerações finais do trabalho e uma sugestão para trabalhos futuros.
2 A MENTORIZAÇÃO TÉCNICA
Segundo Oliveira (2012), o termo mentoring pode ser definhado como uma abordagem de
orientação profissional e pessoal com elevada amplitude, na qual, um profissional muito experiente
com forte sustentação teórica e prática, o mentor, auxilia outro profissional com menor experiência
e conhecimento, o mentorado, em aspectos gerais e específicos para o seu desenvolvimento pessoal
e profissional.
O termo mentoring, assim como a atuação de um mentor, tem origem na época da Guerra de
Tróia, período entre 1300 a 1200 a.C., ao ir para a guerra, o Rei de Ithaca, Ulisses, ordenou que seu
escravo, conhecido como Mentor, cuidasse de sua família, porque era mestre e conselheiro de seu
filho, portanto nesse contexto o termo mentor passou a significar orientador, professor, amigo e
protetor, originando o significado do termo mentoring. (OLIVEIRA, 2012).
Atualmente no Brasil, utiliza-se a palavra mentoring, que pode ser traduzida para mentorização,
logo, com o propósito de facilitar a leitura e a disseminação, será utilizada a palavra no português.
A mentorização técnica, tendo como base a definição de Oliveira (2012), possui um
profissional que é perito em uma determinada área específica, com vastos e sólidos conhecimentos
técnicos. Como este artigo foca na área de desenvolvimento de software, ao ser citado o termo
mentorização técnica, logo estará se referindo exclusivamente a mentores técnicos da área de
desenvolvimento de software.
O principal benefício da mentorização técnica é o aumento expressivo da qualidade para o
produto final. Um produto de qualidade é vital e essencial para qualquer empresa destacar-se num
mercado altamente competitivo, principalmente o mercado de tecnologia da informação, no ramo de
atuação de desenvolvimento de software.
A ampliação da produtividade terá um retorno garantido como benefício, porque um mentor
técnico poderá apoiar os desenvolvedores, que necessitem de ajuda para resolver um determinado
problema. Dependendo da frequência e da complexidade dos problemas, o apoio do mentor na
solução e capacitação de cada desenvolvedor será fundamental para reduzir drasticamente o tempo
que uma equipe de desenvolvimento levaria sem uma mentorização técnica.
O mentor, segundo Chiavenato (2012), pode ajudar uma pessoa a adquirir mais conhecimentos
e habilidades, compreender a cultura da organização, entender as políticas internas, ajudar a ganhar
novas competências e outras coisas mais, para que a pessoa possa alcançar sucesso na carreira.
Um mentor técnico também poderá apoiar na revisão de código de cada desenvolvedor de uma
equipe, proporcionando uma melhoria na qualidade do código fonte, podendo inclusive evitar
alguns erros banais, fazendo uma inspeção de código mais aprofundada, com foco na qualidade.
A frequente capacitação dos desenvolvedores pelo mentor técnico irá resultar em uma gradativa
evolução da equipe, tornando cada desenvolvedor da equipe mais capacitado e qualificado para
solucionar problemas que já tiveram como lição aprendida.
Para problemas que demandam uma solução mais complexa, um mentor poderá atuar como um
projetista, raciocinando e projetando uma solução técnica, que será documentada para servir como
mecanismo de apoio para um analista e um desenvolvedor trabalharem de forma mais produtiva.
Outro importante benefício que deve ser destacado é que o mentor técnico é um canalizador de
conhecimento, não guardando apenas para si, mas também difundido o conhecimento, assiduamente
a cada membro da equipe de desenvolvedores, resultando na descentralização do conhecimento.
Então, investir em um profissional qualificado para atuar com mentorização técnica, significa
aumentar a qualidade do produto, isto estará aumentando a produtividade e satisfação do cliente, e
consequentemente estará aumentando a lucratividade do produto final.
3 PERFIL DE UM MENTOR TÉCNICO
Em primeiro lugar, de acordo com Chiavenato (2012), o mentor deve possuir conhecimento,
habilidades e expertise para atender às necessidades de desenvolvimento de um profissional ou de
uma equipe de profissionais.
Conforme a Brasil Profissões (2012) é considerado importante que um analista de sistemas, um
dos papéis do mentor técnico apresente as seguintes características: Boa visão sistêmica para
concluir as missões do produto e conquistar os objetivos empresariais; Bom senso crítico e analítico
para decidir a melhor solução que atenda a empresa; Estar em constante atualização tecnológica;
Dinâmico e preparado às mudanças; Boas relações interpessoais para facilitar a interação e a
integração com outros profissionais.
Para ser considerado um bom mentor técnico é desejável que este possua as seguintes
habilidades conforme critério da Softplan (2012) e outros propostos pelo artigo, como: liderança
técnica, exímio conhecedor de soluções tecnológicas, especialista em uma ou mais linguagens de
programação e no framework do produto, excelente didática, habilidades para capacitação de outros
profissionais, capacidade de solucionar e apoiar na resolução de problemas simples ou complexos,
sólidos conhecimentos em orientação a objetos, alto índice de inteligência e raciocínio lógico, ser
criativo desenvolvendo soluções mais inteligentes, experiência e maturidade no processo de
desenvolvimento de sistemas, capacidade de trabalhar em equipe, conhecedor do negócio e da
arquitetura do projeto, inovador de grandes soluções e resultados para contribuir com o crescimento
da empresa, profissional bastante produtivo, dedicado, determinado, comprometido e responsável
no trabalho, e principalmente este profissional desenvolve seus trabalhos com os mais altos padrões,
níveis de excelência e extrema qualidade.
4 SUMÁRIO DO CARGO MENTOR TÉCNICO
De acordo com algumas definições da Softplan (2012) e outras propostas pelo artigo, o cargo
de mentor técnico, deve possuir como principais funções específicas, as listadas a seguir:
 Auxiliar outro profissional com menor experiência conforme a demanda e necessidade,
orientando e repassando o conhecimento técnico mais adequado e necessário em determinados
assuntos específicos da área de atuação;
 Liderar tecnicamente uma equipe de desenvolvimento de software, servindo como referência
na tomada de decisão da melhor solução para o projeto ou produto;
 Garantir mais qualidade através da revisão de código e inspeção de código;
 Acompanhar o trabalho de outros colaboradores, visando crescimento profissional;
 Desenvolver sistemas, de forma independente, apoiar e orientar os demais analistas na
construção de soluções por meio de processos, em alterações nos sistemas atuais ou na proposição
de novas soluções, baseando-se em requisitos recebidos do cliente ou do analista de negócio;
 Garantir o desenvolvimento, a qualidade e o atendimento dos produtos, buscando as
melhores soluções, por meio da criação, inovação e manutenção dos produtos;
 Analisar as soluções a serem elaboradas para no desenvolvimento de softwares, de modo que
seja garantida uma melhor solução técnica aos requisitos funcionais e não funcionais;
 Projetar soluções de alta complexidade, utilizando diagramas e padrões de projeto,
atendendo requisitos funcionais e não funcionais, dentro do contexto e das restrições da arquitetura,
atuando com autonomia e orientando os demais membros da equipe quando necessário;
 Orientar e acompanhar o trabalho de elaboração, validação e testes de programas de
computador com base em especificações recebidas, valendo-se de métodos e técnicas adequadas.
5 PRINCIPAIS ÁREAS DE ATUAÇÃO E ESPECIALIDADES
O mentor técnico tem como principais áreas de atuação e especialidades, os papéis de líder
técnico, analista implementador sênior, projetista e revisor de código, conforme apresentado na
Figura 1. O profissional pode ter seu tempo planejado para atuar nestes cinco papéis, ou em alguns
deles, conforme demanda e necessidade da empresa em que atua.
Figura 1 Principais Papéis do Mentor Técnico
5.1 Papel: Mentor Técnico
Segundo a Rational Software (2012), o papel do mentor é alguém que ensina e orienta uma
equipe conforme demanda e necessidade.
O mentor pode assumir diferentes papéis e responsabilidades, conforme a necessidade da
empresa e do projeto. Com a sua multifuncionalidade, o mentor pode atuar hora “vestindo o
chapéu” de um analista implementador sênior para atividades de alta complexidade, atuar como
revisor de código para aumentar e garantir uma maior legibilidade e qualidade ao código fonte,
atuar como projetista para projetar, orientar e avaliar uma melhor solução técnica, ou ainda hora
atuar vestindo o chapéu de líder técnico para orientar na melhor decisão técnica e na liderança
técnica da equipe do projeto, incentivando as melhores práticas e padrões de projeto.
Um mentor possui amplos conhecimentos dos assuntos e detalhes técnicos de sua área de
atuação. Traz contribuições efetivas para o aprimoramento e transformação dos processos de
trabalho. É a referência técnica da área e é bastante requerido pela equipe (SOFTPLAN, 2012).
Os mentores atuam como um recurso para outros membros da equipe, muitas vezes trabalhando
em programação em par com um desenvolvedor menos experiente, como uma forma de transferir
seu conhecimento para capacitá-lo em determinado assunto ou situação complexa.
Também podem atuar monitorando o projeto com ajuda de ferramentas que fazem varreduras
de forma automatizada no código fontes, em busca de falhas na arquitetura de um projeto. Essas
ferramentas, como Sonar, Structure 101 e Source Monitor, geram gráficos e análises detalhadas que
apontam falhas no código legado, que precisam ser melhoradas. De posse do resultado das análises
geradas pelas ferramentas, o mentor pode orientar e conduzir a equipe de desenvolvimento para
aplicar a melhor solução técnica, mas de forma planejada, fazendo um refatoramento de código
consciente, até que todo o débito técnico deixado pelo legado de falhas arquitetural seja sanado.
Segundo a Rational Software (2012), a experiência mostra que o mentor é uma figura muito
importante para a implementação bem sucedida do processo. Sem o mentor, o processo fica sem
condução e, em muitos casos, isso significa que a implementação de todo o processo pode falhar, e
isto é um problema muito comum. Então para garantir que o sucesso seja duradouro, é importante
que o papel de mentor seja planejado para o pessoal interno e experiente da organização. O
investimento em um ou mais mentores técnicos experientes no projeto, resultam em vários bons
motivos, assim como: Orientação da utilização do processo adequadamente no projeto; Uma
maneira econômica de passar conhecimento;
Para um melhor aproveitamento de um mentor, deve ser planejada a maior parte do seu tempo
para apoiar a equipe, porque existe o risco de o projeto depender excessivamente do mentor para
solucionar todos os problemas e tratar de tarefas difíceis e complexas, em lugar da própria equipe
do projeto. As pessoas que trabalham no projeto precisam ser responsabilizadas e assumir as tarefas
complexas de implementação do mentor, após uma evolução natural ao longo de um tempo. Um
ponto importante é estar ciente do conflito inerente entre a meta de planejar a maior parte do tempo
do mentor para apoiar a equipe, de modo que seja garantida uma maior produtividade no projeto
(RATIONAL SOFTWARE, 2012).
5.2 Papel: Líder Técnico
Um líder técnico geralmente é um desenvolvedor com mais de oito anos de experiência,
maturidade elevada e um amplo conhecimento em diversos domínios técnicos. Este profissional
deve orientar outros membros da equipe, conforme demanda e necessidade, e ter a autonomia para
liderar uma equipe na tomada de decisão, da escolha da melhor solução para uma nova
implementação, alteração ou correção de um problema.
Atuam como “braço direito” do gerente ou coordenador de equipe, no que diz respeito à parte
técnica, é fundamental para o sucesso do produto, que seja delegado autonomia e poder de decisão
ao líder técnico, sobre todo o processo de desenvolvimento e sobre a parte técnica do projeto,
porque somente um líder técnico possui visão sistêmica e o conhecimento da “floresta” como um
todo. Uma decisão equivocada, devido a não ter o domínio de uma determinada tecnologia, por
exemplo, poderá impactar em todo o projeto, transformando em uma “bola neve”, que dificilmente
parará de crescer e girar “montanha” abaixo, até que “exploda” em uma parede sem saída.
Segundo Maxwell, sem liderança, não há trabalho em equipe, e cada um segue seu próprio
caminho. Quanto maior a liderança, maior a habilidade de fazer pessoas trabalharem juntas e formar
uma grande equipa unida para seguir uma mesma direção, caminho e objetivo.
Estão sempre sendo consultados à procura de uma melhor abordagem técnica ou algo que
forneça um benefício similar ao que já se possui, mas por um custo menor.
Devem trabalhar evoluindo continuamente, para manter e melhorar suas habilidades em seus
domínios de especialização.
Líderes técnicos devem ter boas habilidades de comunicação pessoal, escrita e oral. Porque
muitas vezes trabalham em estreita colaboração com arquitetos, especialistas e engenheiros de
software, na busca da melhor solução de problemas e orientando-os no progresso global do
desenvolvimento do produto.
5.3 Papel: Projetista
O papel projetista ou designer tem como principal responsabilidade a de projetar a melhor
solução para atender as necessidades dos requisitos especificados pelo cliente, utilizando diagramas
e padrões de projeto, dentro do contexto e das restrições da arquitetura, como, reusabilidade,
desempenho, escalabilidade, portabilidade, testabilidade, atuando com autonomia e orientando os
demais membros da equipe quando necessário (SOFTPLAN, 2012).
O projetista também atua na crítica, simplifica e evolui a especificação de requisitos elaborada
pelo analista de sistemas, visando uma melhor compreensão da equipe de desenvolvimento.
Este profissional define as responsabilidades, as operações, os atributos e os relacionamentos
de uma ou de várias classes, e ainda determina como eles serão ajustados para o ambiente de
implementação. Também, o projetista pode ser responsável por um ou mais pacotes de projeto ou
subsistemas de projeto, incluindo todas as classes pertencentes aos pacotes ou subsistemas
(RATIONAL SOFTWARE, 2012).
Além de suas principais atribuições, o projetista também contribui com a mentorização visando
o crescimento e o desenvolvimento da equipe, e apoia na conformidade do processo nos fluxos de
projeto de solução técnica e implementação. Então, tudo isso visa contribuir com o aumento de
produtividade e qualidade do trabalho desenvolvido pelo implementador.
5.4 Papel: Analista Implementador (Sênior)
Segundo a Softplan (2012), o analista implementador sênior é um profissional, que orienta e
acompanha o trabalho de elaboração, validação e testes de programas de computador com base em
especificações recebidas, valendo-se de métodos e técnicas adequadas.
O mentor como analista implementador, deve possuir grau de experiência sênior, para estar
preparado a orientar e a acompanhar o trabalho de elaboração, implementação, validação e testes de
programas de computador, com base em especificações recebidas, valendo-se de métodos e técnicas
adequadas. Também pode ser utilizado para desenvolver rotinas complexas, mas de modo muito
bem planejado, para não ocupar-se demais e ficar sobrecarregado nas tarefas de mentorização.
Sua principal atuação na mentorização é acompanhar e apoiar o trabalho dos demais integrantes
da equipe de desenvolvimento, buscando o constante crescimento destes profissionais.
5.5 Papel: Revisor de Código
De acordo com a Rational Software (2012), o papel revisor de código garante a qualidade do
código-fonte, além de planejar e conduzir revisões do código-fonte. A revisão de código é uma
maneira eficaz de os membros seguirem ao guia de padrão de código determinado pela empresa.
Segundo a Softplan o principal objetivo do revisor de código, implementador diferente do autor
do código fonte, é garantir que o código fonte esteja de acordo com a solução técnica, não tendo
violações de padrões de desenvolvimento.
Os requisitos de habilidades deste papel são parecidos com o papel implementador sênior. As
pessoas que desempenham este papel geralmente são consideradas especialistas na linguagem de
programação usada para o código que está sendo revisado. (RATIONAL SOFTWARE, 2012).
6 PRINCIPAIS ATIVIDADES E RESPONSABILIDADES
Algumas das principais atividades da mentorização técnica podem ser observadas, na Figura 2,
onde demonstra o processo definido pela Softplan (2012), mas proposto pelo trabalho como sendo
um fluxo básico de atuação da mentorização técnica no desenvolvimento de software.
Figura 2 Fluxo Básico de Atuação da Mentorização Técnica
De acordo com a Rational Software (2012) 5 e a Softplan (2012) 6, as principais atividades e
responsabilidades dos papéis da mentorização técnica, estão listadas nos agrupamentos a seguir:
- Mentor Técnico:
 Ajudar os desenvolvedores a usarem processos e modelos da melhor maneira possível;5
 Detectar algum problema devido à falta de conhecimento dos desenvolvedores;5
 Compartilhar o conhecimento e transferi-lo para outros membros da equipe;5
 Realizar treinamentos de usuários;6
 Apoiar e orientar a elaboração de rotinas automatizadas de testes por meio da criação de
ambientes para simulação, utilizando-se de ferramentas e padrões para os testes;6
 Identificar as causas dos erros que estão sendo corrigidos pelos seus supervisionados,
capacitando e sugerindo ações para mitigar futuras ocorrências;6
 Capacitar e evoluir a equipe de desenvolvimento de sistemas;6
 Apoiar os analistas da equipe, visando garantir a qualidade de suas codificações;6
 Desenvolver outras atividades inerentes ao cargo ou a critério de seu superior imediato,
desde que estejam de acordo com o seu conhecimento e experiência;6
 Prestar suporte com autonomia às demais equipes no entendimento das rotinas de seu
domínio e/ou responsabilidade;6
 Orientar na elaboração do conteúdo e ministrar treinamentos internos dos processos de
desenvolvimento e assuntos técnicos e específicos relacionados aos sistemas;6
 Prestar informações com autonomia às soluções referentes aos projetos para os processos
inerentes à sua área de atuação;6
 Respeitar as normas e procedimentos da empresa, seguir o planejamento estratégico e os
padrões de qualidade visando à satisfação do cliente;6
 Checar de forma automatizada e analisar métricas, como complexidade ciclomática, código
clonado, cobertura de código com testes automatizados, código legível e outras;
 Monitorar constantemente a matriz estrutural de dependência (DSM) do projeto;
 Identificar, analisar e propor a melhor solução para falhas estruturais no código fonte legado
do projeto, com ajuda de ferramentas automatizadas (Sonar, Structure 101 e outras);
 Fazer análise estática em todo o código fonte do projeto para varrer e identificar erros
comuns, com a ajuda de ferramentas automatizadas;
 Conduzir e orientar a equipe de desenvolvimento na melhor solução técnica para o
saneamento do legado de débitos técnicos.
- Líder Técnico:
 Ajudar o gerente de projeto a planejar e orientar o projeto na parte técnica, caso o gerente de
projeto tenha pouco ou nenhum conhecimento técnico;5
 Impor e estimular um estilo de codificação comum para o projeto;5
 Assumir a liderança em problemas difíceis;6
 Validar as estimativas de esforço da equipe para desenvolvimento de funcionalidades;6
 Analisar e responder pelos impactos das mudanças, visando garantir a integridade dos
sistemas, com autonomia;6
 Participar na elaboração do planejamento de projetos/operações e versões;6
 Coordenar, gerenciar e orientar atividades de desenvolvimento de sistemas;
 Desenvolver e manter expertise em diversas áreas técnicas;
 Servir como um recurso para outros membros da equipe;
 Encontrar oportunidades para melhorar a eficiência da equipe e a qualidade do produto;
 Comunicar de modo eficaz oralmente e por escrito.
- Projetista:
 Elaborar projetos de alta complexidade, projetando soluções, bem como, estruturar a
organização do código e testar rotinas, qualidade e produtividade, atuando com autonomia e
orientação geral do superior imediato;6
 Elaborar, orientar e validar a documentação das rotinas desenvolvidas para os projetos; 6
 Garantir no projeto o cumprimento das boas práticas, metodologias definidas para o processo
de desenvolvimento e procedimentos gerais da qualidade, contribuindo com melhorias dos
processos e orientando os demais membros da equipe;6
 Manter a documentação técnica atualizada e organizada para levantamentos e futuras
consultas, orientando sobre os padrões a serem cumpridos;6
 Contribuir significativamente com o planejamento de projetos/operações e versões,
propondo melhorias e identificando riscos;6
 Definir soluções para o desenvolvimento do sistema, através do levantamento de
necessidades junto ao cliente interno e externo;6
 Elaborar propostas de alteração ou de novos sistemas, a serem apresentadas para o cliente,
com base nos requisitos apresentados;6
 Cumprir os padrões de qualidade das rotinas e processos sob sua responsabilidade, avaliando
o impacto das alterações, visando garantir a integridade dos sistemas;6
 Executar revisão dos projetos realizados, bem como dos artefatos técnicos (projeto e
programação), apontando, orientando e realizando correções quando necessário;6
 Responder pela documentação das rotinas e processos sob sua responsabilidade;6
 Atuar como líder de modelagem, com objetivo de economizar tempo e esforço;5
 Garantir que as classes tenham o comportamento adequado aos casos de uso;5
 Garantir que sejam fornecidas informações suficientes para criar classes não ambíguas;5
 Tratar dos requisitos não funcionais relativos à classe;5
 Incorporar os mecanismos de projeto usados pela classe;5
 Elaborar e produzir a documentação técnica, especificando os casos de uso, rotinas
operacionais e outros, com acompanhamento e validação.
- Analista Implementador:
 Analisar as especificações recebidas, verificando possíveis inconsistências ou buscando
possibilidades de melhorias;6
 Realizar a construção de rotinas de apoio para compilação e instalação dos sistemas, visando
à disponibilização para o usuário (deploy);6
 Realizar a codificação seguindo as normas e padrões da empresa;6
 Realizar testes em condições operacionais simuladas, verificando a correta execução do
programa de acordo com o especificado e com o desempenho adequado;6
 Realizar correções nos produtos, após a identificação das causas dos erros;6
 Realizar a compilação e instalação dos sistemas, disponibilizando para o usuário;6
 Gerar scripts de dados necessários para o correto funcionamento dos sistemas;6
 Manter a documentação técnica atualizada;6
 Realizar estimativas de esforço para construção de sistemas;6
 Realizar simulações e criar ambientes de produção para aferir os resultados dos programas;6
 Produzir o código-fonte de acordo com o modelo de projeto;5
 Executar os casos de teste que causam defeito e identificar a falha no código-fonte;5
 Identificar e corrigir a causa raiz de um problema, não apenas o sintoma;
 Realizar testes unitários;
 Participar na evolução de alterações e de novas funcionalidades do software;
 Refatorar códigos fontes existentes para a melhora da manutenabilidade do software.
- Revisor de Código:
 Analisar e revisar com frequência os resultados de cada fase, para detectar problemas;5
 Localizar erros que os testes automatizados não conseguem detectar;5
 Verificar o código conforme critérios de uma lista de checagem definida pela empresa;6
 Analisar as especificações recebidas dos demais integrantes da equipe, verificando e
avaliando as inconsistências identificadas ou as melhorias propostas;6
 Revisar as normas, os padrões de código, as métricas e os procedimentos da empresa,
seguindo padrões de qualidade de código, código limpo e saneamento do legado;6
 Realizar inspeção de código periodicamente para garantir mais qualidade ao software;
 Verificar se o código atende o que foi projetado.
7 CONHECIMENTOS, EXPERIÊNCIAS E FONTES DE AQUISIÇÃO
Um bom mentor técnico deve conter no mínimo, mais de oito anos de experiência em
atividades inerentes a área de desenvolvimento de softwares e deve ser capacitado e ter os seguintes
conhecimentos e experiências como desejável:
 Superior completo em Ciências da Computação ou na área de Tecnologia de Informação;
 Pós-graduado em Engenharia de Software ou na área de desenvolvimento de Software;
 Cursos técnicos relacionados ao desenvolvimento de software;
 Certificação na linguagem de programação adotada pelo projeto;
 Conhecimento avançado em orientação a objetos, linguagem de programação adota pelo
projeto, framework de desenvolvimento, regras de negócio do projeto, saneamento de código
legado, técnicas de código limpo (clean code), otimização de código, padrões de projeto, técnicas e
ferramentas de análise estáticas de código e métricas, análise de matriz estrutural de dependências
(DSM), análise e projeto de sistemas, levantamento de requisitos, mapeamento de processos,
modelagem de dados, linguagem de modelagem (UML), banco de dados (DDL/DML e PL-SQL);
 Facilidade para trabalhar em equipe, boa comunicação e escrita verbal.
8 CONCLUSÃO E SUGESTÃO DE TRABALHOS FUTUROS
Anseia-se que com este trabalho, o papel mentor técnico acabe virando uma tendência em todas
as empresas de desenvolvimento de software, devido ao ganho de produtividade e qualidade que
este profissional pode gerar, com a orientação, capacitação e evolução da equipe.
Neste artigo foi definido o papel do mentor técnico com as suas principais responsabilidades e
atividades, para que tenha um foco e saibam suas prioridades, deveres e obrigações. Porque um
mentor técnico, também pode atuar em diferentes papéis, e neste trabalho foram destacados os
principais, como o papel de líder técnico, analista implementador, projetista, e revisor de código.
Outro ponto importante foi à identificação dos principais conhecimentos, experiências e fontes
de aquisição, que este profissional deve adquirir ao longo de uma carreira no desenvolvimento de
software, para que caso, os profissionais que desejam evoluir de cargo e tornarem-se um mentor
técnico no futuro, tenham um rumo e norteamento do que devem aprender.
Para as empresas que desejam investir em um mentor técnico e aplicar a mentorização técnica
em sua empresa de desenvolvimento de software, o artigo identifica o perfil de um candidato a
mentor técnico, comentando sobre suas principais características e habilidades. Também traz um
sumário do cargo mentor técnico, comentando sobre as principais atividades que devem ser
exercidas por este profissional. E ainda identifica os principais benefícios que a mentorização
técnica pode resultar em um time de desenvolvimento de software.
Por fim, espera-se que este trabalho contribua na evolução do desenvolvimento de softwares ao
demonstrar uma proposta contendo os papéis fundamentais de um mentor técnico.
Como sugestão para trabalhos futuros, recomenda-se validar o modelo de processo, Figura 2,
para aplicar a mentorização técnica em uma equipe de desenvolvimento de softwares, para melhorar
a qualidade e produtividade de uma empresa.
REFERÊNCIAS
1. BRASIL PROFISSÕES Analista de Sistemas. Disponível em:
<http://www.brasilprofissoes.com.br/profissoes>. Acessado em: 16 Maio 2012.
2. CHIAVENATO, Idalberto. Construção de Talentos: Coaching & Mentoring. - ed. rev. e atual.Rio de Janeiro: Elsevier, 2012.
3. MAXWELL, John C., 1947- Liderando para o Sucesso: descubra como ser um mentor
qualificado e influenciar pessoal para o sucesso / John C. Maxwell; [tradução Barbara Coutinho
e Leonardo Barroso]. – 1.ed. - Rio de Janeiro: Thomas Nelson Brasil, 2010.
4. OLIVEIRA, Djalma de Pinho Rebouças de. Coaching Mentoring Counseling: um modelo
integrado de orientação profissional com sustentação da universidade. São Paulo: Atlas, 2012.
5. RATIONAL SOFTWARE CORPORATION Papéis e Atividades. Disponível em:
<http://www.wthreex.com/rup/portugues/index.htm>. Acessado em: 16 Maio 2012.
6. SOFTPLAN Plano de Cargos, Papéis e Atividades. Disponível em:
<https://colabore.softplan.com.br>. Acessado em: 30 Agosto 2012.
Download

baixar trabalho em pdf