Business Process Outsourcing (BPO) e a terceirizacao de um processo de negocio de uma empresa, que geralmente nao faz parte de seu core business. E justamente ai que as grandes barreiras comecam. Pela atividade terceirizada nao fazer parte de sua atividade fim, geralmente os clientes possuem pouco conhecimento imediato a respeito do objeto de terceirizacao. E comum que esse conhecimento seja construido a medida que a relacao de terceirizacao amadureca. Claro que existem clientes de maturidade variada, mas aqui o intuito e analisar a media.Em setores de terceirizacao de alta competitividade entre players, o que se percebe acontecer de forma repetida e a construcao de um "not know how" empirico por parte do cliente, pautado em mas experiencias passadas. Nesses casos, o cliente adota uma postura defensiva que intimida qualquer fornecedor. Como contribuir para o aumento da maturidade de seu cliente em uma situacao como essa?Como nao se deixar intimidar por essa barreira entre cliente e fornecedor?A responsabilidade nesse caso e do fornecedor, detentor do know how, da expertise, direcionar o cliente de forma que este possa mudar sua atitude perante ele e a empresa fornecedora. A maior dificuldade e que enquanto o objetivo maior (mudanca de atitude e aumento da maturidade do cliente) nao acontecer, os conflitos serao comuns.A falha maior nesse caso, e que para evitar desgastes imediatos, evita-se por vezes um posicionamento que a principio pode parecer aspero, mas que em longo prazo pode ser determinante na construcao de uma relacao duradoura. Nao ha mal em dizer que o cliente esta errado, pelo contrario, nao faze-lo e um ato de negligencia grave. O desafio consiste em evidenciar esse erro ao cliente da melhor forma possivel, mas deve-se ter cuidado para nao atribuir menos ou mais relevancia do que tal pauta deveria ter.Deve-se buscar um comprometimento com o cliente e nao um comprometimento de subsistencia com seu proprio emprego.E voce, esta realmente comprometido com seu cliente? Ou acha mais facil agir como o avestruz da foto? Ao longo dos anos se tornou comum utilizar frameworks ORM na construcao de softwares que necessitem armazenar informacoes, esse tipo de framework facilita a manipulacao dos dados fornecendo muitos recursos como: controle da conexao, transacao, sessao, desacoplamento com as particularidades dos SGBD's, entre outros.No meu caso, estou utilizando JAVA + Hibernate sendo o mapeamento entre classes/tabelas feito por XML e Annotations, porem nesse software eu precisei mapear a mesma classe para tabelas diferentes durante a execucao, ou seja, eu precisei alterar o mapeamento dinamicamente. Junto da equipe a primeira ideia que surgiu foi alterar o xml de configuracao (hibernate.cfg.xml), o que nao fazia nenhum sentido pois teriamos que ao final da execucao, retornar a configuracao inicial. A partir dai o raciocinio foi simples, em algum momento o Hibernate tem que carregar o mapeamento para algum dos seus objetos e de alguma forma ele deve expor essa facilidade. Apos algum tempo para a busca, nao encontramos nada que resolvesse algo que e aparentemente simples: Se estamos trabalhando com um framework de mapeamento objeto-relacional, nada mais obvio que a necessidade de alterar o mapeamento em tempo