O que é e como funciona uma 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.

O termo “fábrica de software” nasceu da adoção do conceito de fábrica tradicional ao processo de desenvolvimento de sistemas e aplicações, ou seja, fábrica de software é a estrutura formada pelo conjunto de profissionais, recursos materiais, processos e metodologias para o desenvolvimento de softwares, sistemas e aplicações, englobando desde a análise de requisitos até a fase de manutenção.

Apesar da expressão ‘fábrica’, o processo de criação de uma ferramenta é bem complexo. A fábrica de software cria um produto sob medida para cada cliente e utiliza em suas operações indicadores de qualidade e de produtividade em cada etapa do ciclo de desenvolvimento.

Grandes empresas de TI têm suas próprias fábricas de software, no entanto o mais comum é que este serviço seja terceirizado. Com um mercado consumidor de TI cada vez mais exigente quanto aos aspectos de produtividade, custo e qualidade, as organizações fornecedoras têm procurado se transformar buscando um novo modelo, que supra com eficiência estas necessidades.

Entre os serviços prestados por uma fábrica de software estão o desenvolvimento de sistemas ou módulos, integração de aplicativos, manutenção de programas, incorporação de novas tecnologias, conversão de aplicativos para ambiente web, melhorias de performance e desenvolvimento de web services.

Como é a fábrica que realiza todo o processo, a empresa não precisa se preocupar com infraestrutura, nem de software e nem de hardware, não é necessário disponibilizar espaço e nem profissionais para realizar o serviço, o investimento é pré-definido, portanto não há custos extras ao longo do projeto, e tudo isso com o estabelecimento de um prazo de entrega. Esse é o grande diferencial da fábrica, o cliente não se preocupa com a gestão, apenas solicita o software.

Para ter um funcionamento adequado, há a necessidade de dividir a fábrica em alguns setores:

  • Atendimento aos clientes que negocia e especifica as necessidades da área usuária;
  • Planejamento e controle da produção que faz a alocação dos recursos, estabelece os prazos de desenvolvimento e a definição dos objetos a serem utilizados ou desenvolvidos;
  • Produção que faz a montagem da aplicação;
  • Qualidade e garantia que verifica se o produto final atende as especificações exigidas.

Metodologia de Trabalho

À medida que um time ágil começa a crescer, o gerenciamento da equipe se torne cada vez mais difícil. Algumas vezes, os princípios ágeis podem até se perder em meio a tantos integrantes. No entanto, é natural que a equipe cresça conforme o software ganha novas funcionalidades e precisa de mais recursos humanos para mantê-lo.

A princípio, o Scaling Agile pode ser combinado, respectivamente, com Lean e Kanban para definição das células de trabalho e gerenciamento da interação entre as equipes. Na prática, as técnicas do Lean podem auxiliar a reduzir a complexidade do acompanhamento das células ágeis através de três ideias em especial:

  • Controle Visual: utilizar objetos visuais (como quadros, marcadores e outros adjetos físicos) para indicar o status da equipe, fluxo de trabalho e nível de conclusão das funcionalidades.
  • Métricas de produtividade (Throughput): técnica para medir o tempo gasto no ciclo de vida de uma história, desde a sua inclusão no Sprint até a conclusão.
  • Mapeamento da cadeia de valor (Value-stream Mapping): recurso muito útil para identificar pontos que causam atrasos e descobrir melhorias contínuas para a produtividade.

Uma das características importantes do Scaling Agile é a presença de um responsável por cada célula. Este profissional recebe a denominação de Agile Mentor ou Agile Coach, respondendo imediatamente ao coordenador de desenvolvimento ou ao Product Owner. Na verdade, o Agile Mentor executa as mesmas funções de um Scrum Master, salvo algumas responsabilidades mais específicas, como disciplinar a equipe, reportar interrupções e manter contato com os Agile Mentors de outras células.

Cada equipe possui um backlog que, como dito anteriormente, deve ser limitado ao módulo de atuação no qual a equipe foi alocada. Em outras palavras, o Scaling Agile procura minimizar a dependência entre as equipes. Uma equipe não pode assumir requisitos direcionados a outra, ao menos que isso seja definido para evitar o atraso da Sprint.

Leave a Reply

Your email address will not be published. Required fields are marked *

Translate »