Hoje existe uma forte tendência das empresas terceirizarem partes do desenvolvimento de software. Algumas empresas terceirizam todo o processo de desenvolvimento e ficam apenas com a gestão. Outras empresas ficam com a elaboração e a implantação e terceirizam a construção. Não confundir isso com a simples terceirização de mão-de-obra, pois, no meu exemplo estão sendo terceirizados os processos e não apenas as pessoas que irão executá-los.
Anteriormente eu já trabalhei em uma empresa onde todo o processo de desenvolvimento era terceirizado, mas, no momento estou em uma empresa que terceiriza apenas a construção e os testes unitários.
Mas, apesar de cada vez mais o modelo de processo de desenvolvimento totalmente interno estar sendo abandonado, ainda não existe um consenso se é melhor terceirizar ou construir internamente.
As vantagens mais evidentes de terceirizar são:
- Melhora a documentação do software, pois, como o processo de desenvolvimento passa a ser mais formal, torna-se obrigatório registrar cada etapa.
- Evita a manutenção de equipes inchadas dentro da empresa para atender os picos de demanda.
- Diminui o investimento constante na qualificação da equipe para absorver as novas tecnologias.
- Dependendo da forma de contratação, pode permitir a diminuição de custos.
- A empresa mantém o foco no seu negócio, deixando a tecnologia para quem é do ramo (isto quando o negócio principal da empresa não é TI).
Já as principais vantagens de desenvolver internamente são:
- A empresa mantém um controle maior sobre o processo de desenvolvimento e sobre os prazos.
- A equipe de desenvolvimento é mais qualificada no negócio, pois, se dedica apenas ao cliente interno.
- A rotatividade de pessoas é menor.
Existem alguns pontos que são considerados polêmicos:
- As informações estratégicas podem ficar menos seguras, pois, estarão acessíveis por pessoas de fora da empresa.
- A empresa pode acabar contratando parceiros que estão pensando apenas no resultado financeiro e para isso abrem mão da qualidade e da qualificação da equipe de desenvolvimento.
- Possíveis problemas trabalhistas na empresa contratada podem acabar gerando passivo trabalhista na empresa contratante.
- A burocracia nas relações é muito grande e pode acabar aumentando os prazos de execução.
- O rodízio das pessoas alocadas na contratante, pode não permitir criar uma cultura associada ao negócio.
- A empresa pode acabar ficando muito dependente do fornecedor.
A decisão por terceirizar deve ser muito criteriosa, já que ela pode se tornar tanto um diferencial competitivo, quanto acrescentar novos riscos ao negócio.
Polêmicas à parte, considerando que a decisão da empresa é terceirizar alguma parte do desenvolvimento de software, além de tomar cuidados básicos: fazer uma seleção criteriosa entre os candidatos a subcontratado, acompanhar o desempenho do subcontratado detectando precocemente sintomas de problemas, planejar e executar os procedimentos de aceitação do produto. Existem dois outros pontos que são fundamentais para que haja sucesso:
1) Processo
É necessário que o processo de desenvolvimento esteja muito bem definido, todas as partes envolvidas tenha pleno conhecimento dele e que o mesmo não seja muito pesado, causando atraso nos prazos. Somente com o processo de desenvolvimento bem "azeitado", será possível que duas empresas diferentes trabalhem juntas e o resultado final seja melhor que o de uma empresa trabalhando sozinha.
2) Acordo de Nível de Serviço
É necessário existir um acordo de nível de serviço bem definido entre as partes, onde ambas tenham bem claras quais obrigações deverão cumprir, em qual prazo e qual serão as penalidades em caso de não cumprimento. É preciso que se definam indicadores para monitorar o cumprimento do acordo. Se tudo isso não estiver muito entendido pelas partes, o relacionamento se tornará um caos e as discussões sobre quem é o culpado se estenderão indefinidamente.
Os contratos de nível de serviço devem ser explícitos. Quanto mais detalhados e mensuráveis eles forem, mais fácil será definir o sucesso.
Posteriormente eu entrarei em mais detalhes sobre acordos de nível de serviço em desenvolvimento de software e darei alguns exemplos.
Nenhum comentário:
Postar um comentário