DevSecOps

27 jun, 2014

Fábrica de software, a metáfora errada…

Publicidade

Continuando o assunto do artigo Desenvolvimento de Software – Produto Manufaturado ou Intelectual?, eu fico pensando como é que pode um produto intelectual ser construído em uma empresa que se denomina “Fábrica de Software”? Veja o que eu achei no Wikipedia sobre fábrica de software:

Fábrica de software é um conjunto de recursos (humanos e materiais), processos e metodologias estruturados de forma semelhante àqueles das indústrias tradicionais, utilizando as melhores práticas criadas para o processo de desenvolvimento, testes e manutenções dos softwares. Utiliza em sua operação indicadores de qualidade e produtividade em cada etapa do ciclo de desenvolvimento de software, bem como busca maximizar a re-utilização de componentes anteriormente desenvolvidos. Tornou-se uma prática comum com o objetivo de massificar a produção de software pela redução de custos.

Isso faz sentido para você? Para mim não. A metáfora esta completamente equivocada! A gestão de um projeto de software não é equivalente a produzir um produto manufaturado em uma fábrica.

Desenvolvimento de software na metáfora correta…

Uma das possíveis metáforas corretas para o desenvolvimento de software seria como se um chef de cozinha fosse requisitado para criar uma nova receita ou um novo prato inexistente. Esse chef teria que experimentar novas combinações de ingredientes até chegar ao sabor almejado. Não se espera que ele atinja isso na primeira vez. Na verdade, ele teria que refazer o prato inúmeras vezes, experimentando diferentes sequencias, opções, ferramentas e ingredientes, tendo feedback de cada tentativa até chegar ao prato desejado. É um processo de aprendizagem, experimento e feedback constante. Lá no fim, quando o prato estiver 100% pronto, o chef pode então descrever a nova receita. A receita é na verdade a documentação de como se faz para produzir aquele prato. Isso sim é desenvolvimento de software!

Um buffet de casamento para 500 pessoas seria a metáfora correta para a uma “fabrica de manufatura”, que por sua vez pegaria essa receita já pronta e documentada e “fabricaria 500 pratos repetidos” dessa mesma receita na mesma noite para essa festa. Desenvolvimento de software é algo único, exclusivo e particular, não se encaixando em nada com o termo “fábrica”.

A utilização de princípios do Taylorismo na engenharia de software foi uma tentativa disciplinar frustrada para buscar níveis de previsibilidade, produtividade e qualidade desejados. Entretanto, o resultado obtido foi apenas um formalismo burocrático e não disciplinar. Continuar encarando a gestão de software como um modelo de “fabricação industrial” é continuar nadando nos problemas de custo, cronograma, funcionalidade e gestão de pessoas.