A agilidade exige que todos os envolvidos na entrega de produtos usem práticas Lean e Agile para criar produtos inovadores e de alta qualidade.
Como a adoção do Agile vai além do software, o desenvolvimento de hardware precisa acompanhar o ritmo.
Embora a comunidade de hardware seja relativamente nova no Agile, os valores e princípios Lean-Agile do SAFe são universais. Eles podem ser usados para orientar os engenheiros de hardware a criar e adotar suas próprias práticas recomendadas.
Vinte anos atrás, as empresas lutavam para entregar valor aos seus clientes devido a gargalos no desenvolvimento de software. Os profissionais de software começaram a aplicar novas práticas ágeis e criaram novas tecnologias, como virtualização, microsserviços e infraestrutura como código, acelerando a execução e impulsionando inovações. Hoje, as organizações que empregam essas práticas ágeis e inovações de desenvolvimento entregam valor significativamente mais rápido e com qualidade muito mais alta.
As organizações que constroem sistemas de hardware agora se encontram em uma posição semelhante - eles agora podem aplicar os insights das duas décadas anteriores.
Muitas empresas já iniciaram essa jornada. Através do uso extensivo de virtualização e aprendizado no mundo digital, a General Motors reduziu pela metade o tempo de lançamento do Hummer EV.
A SpaceX usa manufatura aditiva em todas as partes de seu sistema, de motores de foguete a capacetes. A manufatura aditiva “imprime” peças físicas diretamente de dados de projeto auxiliado por computador (CAD), no local, mais rápido do que os processos tradicionais de fabricação e montagem.
O SAFe se aplica ao desenvolvimento de hardware, descrevendo seis princípios universais:
i. Organize em torno do valor SAFe
Princípio nº 10 – Organize em torno do valor, afirma que o valor de uma organização flui através de seus silos funcionais. Tradicionalmente, o trabalho é organizado em torno de habilidades funcionais.
Para permitir a colaboração e reduzir entregas e atrasos, o desenvolvimento ágil organiza equipes de habilidades multifuncionais. As equipes ágeis multifuncionais trabalham em um ambiente altamente inovador, com experimentação frequente e estreita colaboração em todos os domínios.
Alguns ambientes inovadores não requerem a colaboração estreita de uma única equipe, e os domínios podem trabalhar de forma mais independente. No entanto, para garantir que seu trabalho esteja alinhado, ambas as equipes fazem parte do mesmo Agile Release Train (ART) e usam práticas SAFe para gerenciar dependências e integrar com frequência.
ii. Assuma a variabilidade e preserve as opções
A engenharia tradicional inicia o desenvolvimento de novos produtos especificando antecipadamente um conceito de produto com detalhes precisos e, em seguida, criando um cronograma detalhado para construí-lo. No entanto, a história mostrou que esse processo não teve sucesso, principalmente para produtos inovadores com muitas incógnitas.
Agile adota uma abordagem diferente. No SAFe, as equipes armazenam e modificam essas informações no Solution Intent, o repositório de conhecimento do sistema que inclui as especificações do sistema. Ser ágil significa que essas especificações não são fixas; eles evoluem com base no aprendizado. O roteiro da solução define os marcos de aprendizado que orientam as atividades de exploração e criam o conhecimento necessário para construir o sistema. Cada incremento de trabalho contribui com novos insights para a intenção da solução e move as especificações de variável para fixa.
iii. Construa incrementalmente, integre com frequência
No desenvolvimento tradicional, aderir a um cronograma fixo baseado em marcos de fase-gate geralmente define o sucesso. Infelizmente, essa abordagem força decisões prematuras e cria viabilidade falso-positiva. No SAFe, os Milestones são baseados em uma avaliação objetiva dos sistemas de trabalho (Princípio SAFe #5). Isso exige que todas as equipes, incluindo hardware, integrem suas alterações incrementais com a solução geral com frequência.
A SpaceX se esforça para lançar a próxima versão do foguete a cada 2-3 meses para adicionar novos conhecimentos e dados sobre a solução futura. Aprender é o objetivo, mesmo quando externamente o teste pode parecer um fracasso. Em vez de se concentrar na qualificação de cada componente (e submontagem e montagem), a SpaceX se concentra na criação da infraestrutura para testar rapidamente a próxima versão da solução. Os custos de transação para construir e lançar o próximo foguete são menores do que os custos de retenção do aprendizado atrasado.
Os pontos de integração controlam o desenvolvimento do produto criando conhecimento a partir da incerteza (Princípio SAFe #4) no desenvolvimento de grandes sistemas. Os ARTs integram as mudanças incrementais das equipes para que todo o sistema esteja aprendendo. E todas as equipes e trens ficam então em uma cadência comum, o que cria pontos de integração naturais para todo o sistema.
iv. Projeto para Mudança
Para suportar integração frequente, o sistema deve ser razoavelmente fácil de mudar em ambientes operacionais e de desenvolvimento. Os designs modulares que se integram por meio de interfaces gerenciadas permitem isso. Desde que cumpram com as especificações da interface, componentes podem evoluir de forma independente. As especificações da interface de hardware definem propriedades para componentes mecânicos (por exemplo, tamanho, peso, forças exercidas, montagem) e componentes elétricos (por exemplo, tipo de conector, pinagem, tensão).
Uma má compreensão da economia pode impedir boas decisões de projeto. Por exemplo, as peças de circuito integrado de aplicação específica (ASIC) são frequentemente escolhidas por causa de seus custos unitários e consumo de energia mais baixos mas sua funcionalidade é fixa; qualquer alteração requer fabricação e instalação de uma nova peça. Por outro lado, os projetos de matrizes de portas programáveis em campo (FPGA) e sistemas em um chip (SOC) podem ser modificados de maneira fácil e econômica nos ambientes de desenvolvimento e operacionais.
As junções físicas geralmente usam soldas ou soldas para reduzir os custos de montagem. Junções não permanentes, como fixadores e conectores, aumentam o custo, mas tornam as alterações possíveis e fáceis. E alguns agora estão usando manufatura aditiva para criar grandes subsistemas que não requerem montagem. A economia deve incluir os custos totais da mudança e o valor para evoluir os sistemas nos ambientes operacionais e de desenvolvimento ao longo da vida útil do produto.
v. Executar trabalho em pequenos lotes
As equipes de software ágil trabalham no contexto de histórias, pequenas fatias verticais de funcionalidade, dimensionadas para serem concluídas em uma única iteração.
Os engenheiros de hardware e a maioria dos novatos no Agile muitas vezes lutam para dividir o trabalho. No entanto, isso não é discutível ou opcional. Dividir o trabalho em pequenos pedaços é essencial para integração frequente, experimentação rápida e capacidade de adaptação.
Vinte anos atrás, a comunidade de software teve essa mesma luta quando começou sua jornada Agile. A comunidade de hardware está apenas começando sua jornada Agile e esta jornada pode ser desafiadora. Mas com o tempo, a comunidade desenvolverá suas próprias práticas, impulsionando inovações e mudanças em seus produtos elétricos e mecânicos de CAD (Computer-Aided Design) que simplificam pequenos trabalhos. Existem várias maneiras de os desenvolvedores de hardware abordarem a divisão do trabalho em pequenas unidades de valor.
- A primeira é considerar o trabalho necessário para reduzir as lacunas de conhecimento para marcos de curto prazo no roteiro da solução.
- A segunda é abordar o trabalho de integração de mudanças com a solução maior. Por exemplo, em vez de projetar uma placa de circuito inteira ou uma peça mecânica, desenhe alguns circuitos ou partes da peça. Em seguida, encontre uma maneira de combiná-lo com outras partes do sistema para obter feedback, integrando modelos, usando breadboards ou juntando peças impressas em 3D. Os laboratórios de engenharia estão repletos desses tipos de experimentos. Acompanhe esse tipo de trabalho em backlogs e crie uma mentalidade proativa em relação a pequenas alterações de engenharia e verificação no contexto do sistema maior.
vi. Crie Integração Contínua para Desenvolvimento de Hardware
As alterações do desenvolvedor não são realmente verificadas até que possam ser integradas ao contexto maior do sistema. O desenvolvimento de hardware cria peças físicas que geralmente têm custos de material e longos prazos de entrega. Como resultado, a verificação de hardware geralmente ocorre mais tarde no ciclo de vida de desenvolvimento do produto, geralmente perto do fim. Existem muitas estratégias para mudar o aprendizado em três estágios de desenvolvimento de hardware descritos abaixo:
1. Mundo virtual
O desenvolvimento de hardware começa com modelos em ferramentas de projeto (por exemplo, CAD elétrico e mecânico). Muitas organizações agora integram modelos virtuais para permitir análise e simulação para feedback antecipado em um contexto de sistema maior. Os desenvolvedores podem verificar se seus projetos são compatíveis e validá-los com as partes interessadas antes de fabricar qualquer peça.
2. Mundo físico
Alguns aspectos de design só podem ser verificados com peças físicas. Muitas organizações já aproveitam a manufatura aditiva e a impressão 3D para obter feedback antecipado. Eles também podem ser usados para peças de produção, principalmente quando a inovação requer maior frequência de troca e os volumes de produção são baixos. A redução de certas restrições de qualidade e confiabilidade nas peças de desenvolvimento também pode acelerar os tempos de fabricação. As peças de desenvolvimento geralmente operam em um ambiente controlado e são substituídas pela próxima revisão, ao contrário das peças de produção que devem durar anos em ambientes hostis.
3. Mundo Operacional
Os sistemas devem ser projetados para permitir mudanças fáceis no ambiente operacional. As opções de design discutidas anteriormente (FPGAs sobre ASICs e conectores sobre solda) fornecem exemplos de opções de design. A alocação da funcionalidade do sistema aos elementos de design também desempenha um papel crítico. À medida que a capacidade e os custos da rede permitem atualizações sem fio, mais comportamento está sendo alocado para software e componentes programáveis.
Então, a Integração Contínua é o processo de fazer pequenas alterações do desenvolvedor e testá-las, integrá-las e validá-las em um contexto pronto para entrega. No desenvolvimento de hardware, novas funcionalidades fluem de projetos virtuais para peças físicas que são disponibilizadas para fácil instalação no ambiente operacional. A automatização das atividades de integração contínua acelera o fluxo por meio desses ambientes e fornece feedback mais rápido sobre as alterações do desenvolvedor. O ambiente de integração contínua também é um sistema e os desenvolvedores devem investir tempo e recursos para construí-lo junto com a construção do sistema.
AMANCIO QUALITY CONSULTING |
Crédito: texto extraído de Applying SAFe to Harware Development - © Scaled Agile, Inc., com pequenas adaptações.