DevSecOps

12 ago, 2011

Como utilizar fábricas de software sem expor seu negócio a terceiros?

Publicidade

Por diversas vezes, torna-se necessário a contratação de consultorias externas (terceirizadas) no desenvolvimento de software para sua empresa. Entre os motivos que constantemente nos levam à contratação, podemos citar:

  • Indisponibilidade de profissionais da empresa;
  • Multiplicação de recursos momentâneos;
  • Disseminação de novas tecnologias;
  • Custo de operação;
  • Entre outros motivos;

Seu negócio, seu maior bem

Quase sempre, o “fantasma”do  NDA (non-disclosure agreement – Acordo de Não divulgação) nos persegue. Temos que nos ancorar em acordos judiciais e comerciais, temendo a possibilidade de perder  a exclusividade de nossas ideias e negócios. 

Uma pergunta polêmica: podemos passar todo o desenvolvimento de software de nosso negócio para terceiros?

Yes, we can!

Imagine que você esteja construindo um site de vendas especificas e, como não quer passar todos os detalhes do negócio para um único fornecedor, temendo perder o controle sobre o seu negócio, você contrata três fornecedores (consultorias de desenvolvimento) e passa a fornecer trabalho para as consultorias de forma aleatória. Seu objetivo é não fornecer informações gerais do negócio para os fornecedores, você quer passar apenas partes para esses fornecedores, deixando a compilação final totalmente para a sua equipe interna.  Esse é o regime de Fábrica de Software.
 
Ainda mais. Você quer que seus fornecedores sigam suas melhores práticas em desenvolvimento de software, seu processo, preencham seus artefatos de projeto, utilizem suas métricas.
 
Você quer a guarda dos dados, deixar todo o código gerado em seus servidores, desde o inicio dos trabalhos. Nada de receber código depois, por e-mail, FTP etc. Seu fornecedor precisa acessar a área de desenvolvimento direto dos seus servidores, na sua empresa.
 
Você quer, ainda, ter a liberdade de buscar dados em tempo real, diretamente dos seus servidores, saber como estão os status dos trabalhos, quanto falta para receber o novo pacote da consultoria. Quer medir o retrabalho.

Enfim, você quer controle total sobre aquilo que está pagando para ser desenvolvido.

Sim, é possível ter tudo isso e muito mais. É possível chegar ao ponto de controlar o acesso arquivo-a-arquivo, saber exatamente em que ponto se encontra o desenvolvimento.  Você pode controlar efetivamente o que você esta comprando da empresa contratada.

Em termos práticos, como isso se torna possível?

Através de uma ferramenta de Ciclo de Desenvolvimento de Software. Ou seja, através de uma ferramenta para ALM (Application Lifecycle Management).   

Análise: seu negócio tem suas particularidades e necessidades. Para garantir que seus segredos estratégicos fiquem sob sua guarda,analise e gere artefatos de concepção do projeto utilizando as Ferramentas do Microsoft Visual Studio 2010. Existem diversos diagramas e artefatosdestinados à análise e arquitetura para utilizar em seus projetos.

Projeto: a consultoria contratada não tem necessidade de conhecer seu negócio, ela precisa conhecer o trabalho que solicitado. Para isso, essa empresa deve receber informações que deem condições de executar tais requisitos, sem mesmo saber como o projeto funciona em sua totalidade.
Controle: você pode determinar o que será acessado, seja uma Branch, um arquivo, uma pasta etc. Seja somente com acesso para leitura, seja com permissão de check-in por procuração.  O mais importante é, se você determinar que uma tarefa deve levar 8 horas para ficar pronta, você pode controlar a utilização dessas horas.

Colaboração: saber como manter todos os colaboradores do projeto informados em tempo real é um desafio.  Você pode utilizar no Microsoft ALM, o Project Portal específico do projeto. Com ele você tem um Espaço Sharepoint onde poderá compartilhar informações do projeto com todos os envolvidos. Sejam eles colaboradores internos ou externos.

Previsibilidade: através dos relatórios on-line você captura informações essenciais para tomar decisões que podem representar muito para seu projeto. Existem relatórios baseados em Excel e Reporting Services. Você pode utilizar o PivotTable do Excel para auxiliá-lo em suas análises.

Conclusão

Não importa qual seja seu método para trabalhar com Fábricas de Software, não importa se sua operação seja artesanal ou siga um determinado padrão.  Não importa de você utiliza processos proprietários ou CMM, PMI, SCRUM, RUP etc. Não importa de sua plataforma é .NET, Java ou Delphi.  O importante é que Estratégica, Tática e operacionalmente a solução Microsoft ALM pode auxiliá-lo em todos os aspectos de gestão.