A 17ª Mesa Redonda DFTestes foi sobre “Terceirização de Testes – Qual a realidade do mercado?”, contando com 7 respostas e 6 participantes, sendo eles: eu, Keite Moraes e Sousa, Eduardo Gomes, Shmuel Gershon, Aderson Bastos e Elias Nogueira.
A seguir, faço um resumo da discussão, lembrando quem quiser conferir na íntegra é só acessar esse link (necessita cadastro).
Terceirização
O Elias Nogueira fez um boa explicação sobre terceirização, e até colocou no Sem Bugs, dizendo:
Hoje as empresas estão num ritmo cada vez mas acelerado em conta da crescente exigência de seus clientes. Quando um novo produto é lançado, ele precisa ser entregue rapidamente em casos de softwares COTS para ter uma vantagem competitiva. Ou se o próprio sistema é de uso interno, o ritmo também precisa ser acelerado dado muitas vezes pelos cronogramas apertados.
Muitas empresas não tem a equipe necessária para fazer estas atividades. Em Teste de Software essa realidade se faz presente nas empresas, pois empresas, dado o seu negócio, não necessariamente necessitam ter profissionais contratados para isso.
Pela demanda de software, os profissionais podem crescer ou diminuir rapidamente, onde a empresa nestes dois cenários precisa controlar suas metas de qualidade e restrições de orçamento.
Para atender a essa demanda um novo (mas velho conhecido) tipo de contratação se faz necessário: a Terceirização
Como podemos ver pela explicação do Elias, a terceirização se apresenta como um bom caminho de conseguir realizar um bom serviço, sem ser especialista nele. Ou seja, uma empresa de desenvolvimento de software por exemplo, pode realizar ótimos testes e assim garantir a qualidade do software que está sendo produzido, com o auxílio de uma equipe terceira, que é especialista em Teste de Software.
Terceirização de Testes
O Elias Nogueira listou os seguintes tipos de terceirização de testes:
- Terceirização Total COM Interface Técnica
- Neste tipo, a empresa contratante possui profissionais de teste, mas contrata um empresa para ter um atendimento imediato a sua demanda. Como todos os requisitos serão validados por profissionais da contratante, o risco é muito pequeno pois eles já tem o conhecimento de negócio.
- O lado negativo é que todo o “know-how” fica por parte da contratada, fazendo toda a organização do Projeto de Teste.
- Terceirização SEM interface técnica
- Nesse modelo a contratante tem alguns benefícios muito visíveis, como: A não preocupação com a formação da equipe e demandas de teste; Impacto referente a demanda é minimizado; Sem custos com uma equipe interna.
- O grande problema desse tipo é o entendimento de negócio do cliente, onde o cliente pode não ter todas as regras de negócio bem definidas e a exposição dos processos de negócio para as contratadas
- Terceirização Parcial – Execução de Testes
- Nesse tipo todo o conhecimento de negócio fica com a contratante, que também elabora os Casos de Teste não existindo a perda de maturidade de teste quando a contratada for trocada. A contratada só entra com a execução dos testes da contratante. O problema desse tipo é que, com uma demanda interna, a equipe de testes da contratante pode não criar todos os possíveis cenários para testes e não suportar a demanda.
- Terceirização Parcial – Arquitetura de Teste
- Nesse tipo os Arquitetos de Teste da contratante passam a parte mais complexa dos testes para os Arquitetos de Teste da contratada.
- A execução de testes fica na contratante, o que eleva os riscos de negócio e o custo em contratação. Se não for muito bem gerenciado, pode haver gastos desnecessários com profissionais alocados para cada atividade.
- Terceirização Parcial – Automação de Teste
- Nesse tipo os automatizadores ficam focados diretamente na automação do sistema, mas se o sistema não estiver maduro o suficiente para a automação, o trabalho não terá tanto ganho quanto o esperado. Scripts mal projetados para o cliente também vai dificultar na manutenção, elevado também os custos.
O Elias ainda lembrou que:
- Para todos os tipos de Terceirização dos serviços de Teste se faz necessário criar SLA’s (Acordo de Nível de Serviço) entre a contratante e contratada, além de o acompanhamento constante das atividades para que o projeto não saia do controle e esteja no rumo certo, além é claro de cumprir os prazos estabelecidos.
- Na contração dos serviços de testes como terceirização, podemos ter duas formas de contração: equipe interna ou equipe externa (birôs de teste)
Por fim o Elias compartilhou três experiências que teve com terceirização de testes, duas com testes manuais e outra com testes automatizados:
Empresa X
Ambiente organizacional muito bem definido e político. Serviço parte dentro da contratada e parte na contratante. Entramos na Empresa X sem o cliente (nível mais baixo do sistema) saber que estávamos ali para ajudar e testar suas aplicações. Resultado: não colaboração do cliente.
Isso dificultava muito o trabalho, pois tínhamos que sair atrás de tudo quando era coisa pra poder prestar um serviço razoável. O sucesso do projeto era diretamente proporcional a senioridade dos profissionais de Teste.
Empresa Y
Ambiente organizacional muito bem definido e político. Serviço parte dentro da contratada e parte na contratante. O cliente era um grande colaborador e tínhamos mais uma empresa prestando serviços de teste (uma grande empresa azul). No início eu fiquei me perguntando o porquê de duas empresas de teste, mas após alguns dias eu vi que a outra empresa possuía muito conhecimento de negócio, mas que não tinha um lado técnico muito forte. O trabalho em conjunto foi ótimo. O próprio cliente cobrava das duas contratadas a qualidade do serviço e “corria atrás” de qualquer empecilho político, deixando as duas empresas livres para executar suas atividades.
Empresa Z
Ambiente organizacional tradicional. Projeto de Automação. Serviço na contratante. Este cliente preza pela qualidade dos seus produtos e vê a qualidade como um principal para o seu sucesso. Inicialmente queria automatizar tudo o que era possível, mas depois enxergou o que realmente agregava valor.
Um ponto muito interessante é que em automação, tu precisas de pequenos ajustes na aplicação (não mandatário) para que seja possível contornar ou solucionar alguns problemas em automatizar um funcionalidade.
Essa empresa analisava o pedido de alteração e executava, sem empecilhos nenhum, claro que com uma análise bem focada.
O Aderson Bastos disse o seguinte:
A melhor “dica” é estabelecer uma parceria entre contratante e contratada, com metas e expectativas realistas. Geralmente o que se vê é a contratante exigir tudo o que sempre quis e nunca conseguiu fazer, e a contratada aceitar mesmo sabendo que não conseguirá cumprir (não com os prazo e custo contratados), pois se ela não aceitar outra empresa aceitará – óbvio que há exceções.Uma pergunta importante que toda contratante deve se fazer é: por que terceirizar? Nesta simples pergunta estão várias outras implícitas, que se não forem identificadas e devidamente respondidas, impactarão o sucesso do processo. Trata-se de um modelo de negócio e de uma decisão estratégica, conforme a ótica do observador.De qualquer forma, é um mercado extremamente promissor, principalmente em sua modalidade Offshore. Mas, nós brasileiros, de uma forma geral, ainda somos imaturos neste segmento, mas já temos casos de sucesso – sinal que estamos acordando!Quem tiver interesse em aprofundar seus conhecimentos neste assunto e trocar experiências com uma grande referência, não poderão perder o tutorial do Martin Pol no BRATESTE 2010 – www.alats.org.br.
Desafios e Panorama da Terceirização de Testes
A Keite Moraes disse o seguinte sobre o assunto:
Considero que um dos grandes desafios para a terceirização de testes é administrar os fatores positivos e os negativos para ambos os lados.
Seria interessante existir um equilíbrio para a contratante e a contratada; de forma que ambas sejam protegidas dos riscos, que possam acontecer. Considero que a terceirização parcial de serviços de testes, é uma forma equilibrada de agir.
Fatores positivos:
-> A criação de casos de testes fica centralizada na contratante, com isso qualquer risco decorrente da saída da empresa contratada, torna-se amenizada;
-> Os processos de negócio da empresa contratada fica menos expostos.Fatores negativos:
-> Quando a contratada esta envolvida na execução dos testes, seu custo pode crescer;
-> Se as demandas de testes começar a oscilarem, na contratada, pode gerar testadores ociosos.
O Eduardo Gomes compartilhou a sua opinião, dizendo:
A impressão que tenho sobre a terceirização de testes no Brasil é de que existe ainda pouca maturidade sobre esse assunto.
Poucas empresas possuem experiências de sucesso comprovado nesse tipo de terceirização. A grande maioria dos fornecedores não são especializados em testes, mas fornecem também outros serviços, principalmente desenvolvimento de software. Talvez por essa razão, não invistam o suficiente na especialização de seus profissionais de teste e na construção e melhoria de processos mais robustos.
Por outro lado, os contratantes também não possuem maturidade para contratar com segurança. Os critérios utilizados para seleção de fornecedores não são suficientes para garantir uma contratação adequada e o processo de homologação normalmente é falho. Para que se tenha mais sucesso na terceirização, é preciso saber pedir e saber cobrar os resultados.
Apesar dessa imaturidade do mercado, acredito que a terceirização de testes é uma tendência irreversível, mas que ainda encontra-se no seu início. Portanto, trás muitas oportunidades para empresas e profissionais que estejam preparados para atender com qualidade as necessidades do mercado.
O Elias Nogueira comentou o seguinte:
É muito importante que todo o escopo de trabalho esteja fechado e também uma coisa muito importante: o “poder” da contratada em testes de poder navegar no ambiente organizacional e bloquear qualquer liberação falha.
O que vejo um pouco são empresas “vendendo pessoas” sem que exista um escopo de trabalho bem definido. Quando vamos prestar serviço para uma contratante, percebemos que existem diversas falhar no processo como um todo, mas nem sempre é possível melhorar algo devido a demanda e devido a própria burocracia do cliente.
O mercado Brasileiro ainda tem muito a amadurecer internamente para depois pensar em exportar este tipo de serviço. Existe muitas empresas sérias fazendo esse trabalho, mas também muitas empresas que querem entrar de qualquer forma em um cliente sem ter uma estrutura adequada para a terceirização dos seus serviços.
Eu também acho que um dos maiores desafios é estabelecer as responsabilidades de cada lado e elaborar um contrato que seja interessante para ambos os lados, principalmente quando ocorre uma terceirização total dos testes.
A falta de maturidade, como o Eduardo disse, é um grande desafio, embora no Brasil já existam empresas que prestam serviços de testes, algumas até há mais de 10 anos, e são bem maduras. Porém, a maturidade é necessária também para a empresa que está contratando.
A respeito das diferenças para os profissionais, elas existem sim, só que mais a respeito da dinâmica de trabalho, já que, geralmente, o profissional fica alocado no cliente.
Sem dúvidas a terceirização é uma tendência, lá fora mesmo há empresas que prestam serviços bem específicos em testes, como por exemplo: testes de performance e usabilidade.
Agora a terceirização completa dos testes eu já acho estranha, a não ser que quem for contratado atue dentro da empresa contratante (embora existam boas ferramentas para trabalhar remoto) e desde do começo do projeto. Terceirização de testes no modelo cascata, costuma gerar boas dores de cabeça e pode representar uma fria.
O Shmuel fez as seguintes perguntas sobre terceirização de testes: “Mas aí a responsabilidade sobre os testes é de quem? Que acontece se faltam casos de testes em uma área? E como o plano evolui durante os testes?”
Eu acredito que depende de como foi acordada a prestação de serviço. No CInTeQ houve uma palestra da Neli, que trabalha na IBM, que contou como foi um projeto, no qual 4 empresas participavam. Ela contou que os pessoal da IBM elabora os cenários de testes, e repassava eles para uma outra equipe que criava os casos de testes, executava e reportava as falhas encontradas. Depois o pessoal da IBM “filtrava” as falhas reportadas, verificando se não eram falsos-positivos, e assim passavam para o pessoal de desenvolvimento.