domingo, 28 de março de 2010

Teceirização dos Serviços de Teste

Na 17° Mesa Redonda DFTestes está rolando um thread sobre Terceiração de Teste, qual a realidade do mercado.
Daí resolvi escrever um pouco sobre os Tipos de Terceirização de Serviços de Teste

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!

Existem diversos cenários comuns que
  •  Fornecedores atrasam as entregas
  •  Produto entregue com diversas falhas
  •  Cronogramas não cumpridos
  •  Testes de Sistema são realizados ou em Ambiente de Desenvolvimento ou Produção
  •  Área de negócio perde a confiança em TI
  •  Testes de Regressão são negligenciados
Isso mostra que muitas empresas ou não estão preparadas para ter uma área de Teste e Qualidade de Software ou estão fazendo da forma errada.

Existem diversas necessidades dentro de um ambiente de TI para
  •  Atender a demanda da área de Negócio
  •  Avaliar a Qualidade dos Fornecedores de Software
  •  Reduzir os riscos de atraso e problemas de produção
  •  Evoluir seu processo de desenvolvimento e seleção de fornecedores
  •  Medir a qualidade de seus sistemas

Atualmente, para buscar estas necessidades e outras, se faz necessário possuir um equipe Terceitizada para efetuar os testes no sistema

Com uma área de Testes Terceitizada poderemos:
  •  Reduzir o retrabalho e o risco na liberação de cada produto
  •  Reduzir o custo relacionados a teste de software, como processos, infra-estrutura e pessoal especializado
  •  Ter a garantia de resultado, considerando que "quem faz não testa"
  •  Maior tempo para execução de teste
  •  Maior volume de Casos de Teste
  •  Atendimento imediato de picos de demandada de teste

Existem alguns Tipos de Terceirização de Teste de Software

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 contrstaçã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.


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)

Equipe Interna
Fica alocada dentro da empresa contratante e utiliza todo o ambiente da mesma. Exsitem alguns benefícios em ter uma equipe interna:
  •  Disponibilidade de recursos contratados
  •  Fácil gerenciamento de testes
  •  Controle direto sobre o projeto
  •  Fácil comunicação com o cliente
  •  Conhecimento fácil de ser adquirido

Equipe Externa
Fica alocada dentro da contratada, prestando serviços remotos. Isso acarreta em maior custo para a contratada em termos de ambiente de teste, que por sua vez diminui os custos de ambiente da contratante.
Essa forma de contratação se não for muito bem gerenciada pode fazer com que as restrições de projeto não sejam cumpridas.
Se a equipe de testes não tiver conhecimento total sobre o negócio do cliente que contratou os serviços, o projeto pode ter um aumento significativo de demanda e tempo, elevando assim os custos do projeto.

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.

Eu tenho três cases de trabalho de terceirização, dois em testes manuais e um em automatizado:

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 estavamos ali para ajudar e testar suas aplicações. Resultado: não colaboração do cliente.
Isso dificultava muito o trabalho, pois tinhamos 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
Ambimente organizacional muito bem definido e político. Serviço parte dentro da contratada e parte na contratante. O cliente era um grande colaborador e tinhamos 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 possuia 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.

Bem, por enquanto era isso!
Crédito para minha professora de Pós Graduação em Teste de Software da Unieruo Wilsa Sette, que aborda este tema em uma de suas matérias.

Acompanhem também o blog QualidadeBR, que tratá um resumo dessa thread.

Abraços!

Nenhum comentário:

Postar um comentário