DGERT   APCER
Relações de compromisso

Como Diminuir o Risco do Desenvolvimento de Software em Outsourcing


Qualquer projecto é um desafio e o recurso a entidades externas tanto pode multiplicar as dificuldades, como resolvê-las. A conversão dos departamentos internos de desenvolvimento em unidades mais pequenas que fornecem equipas a pedido (de acordo com as necessidades), virtuais e globais exige um novo conjunto de práticas de gestão. Neste artigo são apresentados sete passos para uma relação harmoniosa com os fornecedores externos.


1. Escolha o parceiro certo

A contratação de um fornecedor externo é semelhante a admitir um novo departamento de especialistas em desenvolvimento e em testes. É necessário mais do que apenas as aptidões percepcionar os conhecimentos adequados. Os contratos têm que assegurar a utilização de uma equipa dedicada e, em muitas situações de outsourcing, o fornecedor pode disponibilizar uma "equipa sombra" sem custos adicionais. Esta alternativa disponibiliza protecção adicional contra as flutuações dos profissionais e contra o inevitável aumento do salário dos recursos chave.

Além das qualificações técnicas, o fornecedor de serviços deve ter um processo de desenvolvimento bem definido. Algumas empresas de outsourcing não têm a infra-estrutura, nem os processos necessários para garantirem de forma consistente um trabalho de boa qualidade. Por esta razão - e para evitar a percepção de que o baixo custo é igual a baixa qualidade - muitas empresas de outsourcing (sobretudo da Índia) tornaram-se obcecadas com as certificações de qualidade, nomeadamente as acreditações ISO ou SEI-CMM.

Outro aspecto essencial é a compreensão das diferenças culturais entre o cliente e o fornecedor. As empresas de outsourcing em determinados países do mundo poderão ser demasiado concordantes e desejosas de agradar, evitando a incerteza e hesitando em pedir ajuda. Este tipo de atitude poderá traduzir-se em questões não resolvidas ou em problemas de interpretação das especificações.

2. Escolha o tipo de fornecedor certo

O risco inerente aos projectos que são objecto de outsourcing aumenta com o grau de inovação que é requerido. O desenvolvimento de novos produtos envolve a modificação de especificações instáveis e a necessidade de novas abordagens que obrigam a alterações frequentes. Desta forma, é necessário saber em que fases de um projecto se pode recorrer a determinado tipo de fornecedor externo.

Muitos fornecedores são essencialmente "fábricas de software" capazes de produzir produtos de qualidade apenas quando lhes são fornecidos os detalhes daquilo que se pretende. Nestes casos, será um erro envolvê-los nas fases iniciais, em que ainda se estão a delinear os conceitos fundamentais de desenho. A capacidade inovadora deverá manter-se um activo chave da própria equipa de desenvolvimento do cliente (sempre que possível).

Como regra base, poderá dizer-se que, quanto menor necessidade houver de interacção, maiores serão as hipóteses de sucesso. Por exemplo, o desenho da interface com o utilizador exige vários protótipos, pelo que não é um tipo de actividade que deva ser realizada quando o cliente e o fornecedor estão geograficamente muito distantes. Também há que ter em conta que a estética e a resposta cognitiva das pessoas varia muito de acordo com a diferença de culturas. Um ecrã desenhado na Ásia poderá não ser agradável para uma audiência Ocidental.

3. Escolha a fase certa

De uma forma geral, as fases iniciais de um projecto são menos adequadas/passíveis de outsoursing dos que as restantes. A fase de definição requer experiência na área e criatividade, pelo que deverá ser realizada pelos especialistas internos do próprio cliente (sempre que possível), ou com a ajuda destes. Se a aplicação a desenvolver tiver que se integrar de forma estreita com outros sistemas do cliente, o melhor será desenvolvê-la internamente.

Pelo contrário, se não importar a forma como o sistema é desenhado, desde que preencha os critérios de especificação, o desenho poderá ser objecto de outsourcing. As fases de projecto finais e intensivas em termos de trabalho (incluindo a codificação, os testes e a manutenção) são geralmente adequadas para o recurso ao outsourcing.

4. Efectue a gestão da comunicação

Uma comunicação eficaz é, provavelmente, o factor de sucesso mais crítico num contrato de outsourcing. Se apenas um segmento do projecto está a ser objecto de outsourcing, talvez seja suficiente manter a comunicação apenas entre os gestores de ambas as partes. No entanto, este tipo de situação é rara.

Normalmente, os membros das equipas de ambos os lados colaboram no mesmo projecto. Nestes casos, é necessário e desejável promover a comunicação entre os membros de ambas as equipas, exigindo uma definição detalhada dos papéis e das responsabilidades de cada indivíduo, dos meios e da frequência de comunicação, bem como das formas de resolver os problemas.

5. Escreva especificações detalhadas

As especificações são o documento de referência para um contrato de outsourcing. Dependendo da fase do projecto que está a ser contratada, poderá tratar-se de uma especificação de desenho ou de requisitos. Numa situação de outsourcing, especialmente se for nova, as especificações terão que ser consideravelmente mais detalhadas. Um novo fornecedor externo que não está familiarizado com a aplicação, e com a organização, poderá não identificar detalhes que são óbvios para os especialistas do cliente.

As diferenças de idioma e de cultura também podem dar origem a problemas de interpretação. As clarificações por telefone ou por correio electrónico são normalmente difíceis e poderão exigir vários ciclos até se resolver um aspecto simples. Além disso, costumam consumir muito tempo aos intervenientes e podem mesmo interromper um projecto se existirem muitas questões pendentes por resolver.

A necessidade de clarificar muitos aspectos da especificação poderá fazer com que o fornecedor externo alegue que está a perder tempo de projecto planeado o que, poderá provocar atrasos na calendarização ou derrapagens orçamentais. Certas clarificações também poderão ser interpretadas como alterações da abrangência do projecto, com impacto no orçamento e na calendarização.

Desta forma, quando estiver a estimar o orçamento de um projecto objecto de outsourcing, o custo alocado ao desenvolvimento das especificações deverá ser significativamente maior do que para os projectos internos. Dada a importância das especificações de requisitos e a necessidade de uma compreensão sem ambiguidades, é recomendável a utilização de uma ferramenta de gestão de requisitos, que seja facilitadora na resposta a questões complexas de comunicação assíncrona e duradouras em termos temporais.

6. Efectue a gestão das alterações

Praticamente todos os projectos envolvem alterações frequentes. Mais uma vez, a separação geográfica entre cliente e fornecedor faz com que a abordagem preferencial seja a utilização de uma ferramenta de gestão de alterações. Se o outsourcing envolver todos os aspectos de um projecto, a sincronização dos artefactos é menos crítica.

Se não for esse o caso, ou se os testes forem realizados por uma terceira parte, por exemplo, será necessário recorrer a uma boa ferramenta de gestão de alterações. Paralelamente, deverá ser estabelecida formalmente uma comissão de controlo das alterações (com membros de ambos os lados) para lidar com a inevitável mutabilidade das especificações.

7. Efectue a gestão do projecto

É essencial um bom acompanhamento dos projectos e ter permanentemente uma boa visão global dos mesmos. Quando se está longe da equipa de desenvolvimento e não se tem a oportunidade de realizar reuniões cara a cara, os gestores (da parte do cliente) de projectos em outsourcing só conseguem estimar o progresso desses projectos através da comunicação com os gestores de projecto da parte do fornecedor (ou com outros membros da equipa). Esta falta de contacto humano tem que ser compensada com relatórios detalhados e frequentes sobre o estado do projecto.

O cumprimento dos milestones é geralmente um bom indicador da saúde dos projectos. Quando se verificam atrasos repetidos e não explicados, estamos perante um sinal claro de que o fornecedor está com problemas. A gestão dos projectos também se baseia em interacções humanas eficazes, pelo que a melhor ferramenta de comunicação nunca conseguirá substituir o contacto cara a cara. Consequentemente, será vantajoso planear várias viagens às instalações do fornecedor. Este é um método mais eficaz do que receber visitas de responsáveis chave do fornecedor.

Apesar destas viagens poderem ser caras, a experiência tem mostrado que compensam. Além de garantirem que os projectos estão a correr como previsto, também permitem estabelecer relações pessoais que acabam por aumentar a eficácia da comunicação a longa distância.

Um elemento importante da gestão de projectos, especialmente em situações de outsourcing, é a gestão dos riscos. Esta última deve ser considerada como um sistema de aviso para detestar e resolver os problemas antes de se transformarem em desastres. Deve-se, portanto, designar pessoas em ambos os lados para assumirem a responsabilidade por essa gestão dos riscos. Também se deve criar uma lista dos 10 riscos mais importantes no início de cada projecto e analisar e actualizar periodicamente a situação dos mesmos à medida das necessidades.

Deve ser definido um processo de aprovação no início de cada projecto a ser seguido para todos os entregáveis (deliverables). Este processo deverá definir os papéis e responsabilidades, bem como um limite temporal para cada ciclo de análise. Em determinados casos, poderá recorrer-se a uma terceira parte independente para efectuar os testes de garantia da qualidade em todos os entregáveis intermédios e finais. Esta abordagem imparcial fornece uma perspectiva objectiva sobre a qualidade dos entregáveis e reduz o potencial de conflito.

No final de cada projecto objecto de outsourcing, independentemente de ser um sucesso ou um fracasso, deve-se efectuar uma análise detalhada da experiência. Seguidamente, há que partilhar as lições aprendidas e documentar as sugestões para introduzir melhorias. No caso de se pensar recorrer novamente ao mesmo fornecedor, será aconselhável incluir representantes dele nesta análise retrospectiva.

O omnipresente processo

O outsourcing irá tornar-se brevemente uma prática comum para a maior parte das organizações de desenvolvimento de software. O processo recomendado para a condução dos projectos que são objecto de outsourcing não é muito diferente das boas práticas geralmente aceites nesta indústria. No entanto, algumas partes do processo precisam de muito mais atenção do que quando se trata de projectos internos.

Com um planeamento cuidado e uma monitorização contínua, os primeiros projectos objecto de outsourcing poderão ser utilizados para estabelecer uma boa interacção de trabalho com o fornecedor e para afinar o processo de modo a garantir uma parceria duradoura.

Convém sublinhar ainda que os bons projectos para outsourcing partilham muitos dos seguintes aspectos:

  • Não requerem muita inovação;
  • Não é essencial uma estreita colaboração;
  • Não envolvem código crítico ou estratégico;
  • Não é grande a necessidade de conhecimento especializado da área;
  • Existem dependências mínimas relativamente a outros projectos;
  • As plataformas de hardware e de software são estáveis;
  • Os requisitos, os objectivos de desempenho e os critérios de aceitação são definidos de forma clara;
  • O cliente dispõe de know-how de gestão e da área de especialidade para poder ajudar o fornecedor.
     

Baseado no artigo "Outsourcing: What Works" de Wolfgang B. Strigel, membro da comissão editorial do IEEE Software.


Produzido em 2005

Topo
Pesquisa
Agenda
Destaques