Realmente depende de como sua equipe de hardware fornecerá artefatos úteis que sua equipe de software pode usar para desenvolver e como as equipes estão configuradas para se comunicarem.
Normalmente, você encontrará que a equipe de hardware criará um produto, levará para um estágio de protótipo para teste e somente então a equipe de software obterá qualquer tipo de documentação de requisitos da equipe de hardware. Escusado será dizer que nem sempre é o melhor caminho a percorrer, pois o software geralmente é desenvolvido muito tarde no processo, e você geralmente se encontra com poucas opções a não ser trabalhar com uma metodologia baseada em cascata. Do ponto de vista da equipe de hardware, se eles precisarem mudar algo repentinamente, a equipe de software não precisará modificar seu software. O problema aqui, é claro, é que o pessoal de hardware médio precisa desenvolver produtos dessa maneira e espera que qualquer coisa que o beneficie com a ajuda da equipe de software.
Como alternativa, se sua equipe de hardware estiver construindo um produto e atualizando os requisitos de software à medida que avançam, e melhor ainda, se envolverem a equipe de software logo que cada recurso de hardware estiver sendo planejado e simulado, você terá a oportunidade de equipe de software para trabalhar de uma maneira muito mais ágil. Naturalmente com isso, quero dizer que a equipe de hardware é o cliente e fornece à equipe de software uma lista de problemas que precisam ser resolvidos no software. A equipe de software pode discutir com seus clientes as prioridades relativas de cada requisito e, assim que o protótipo de hardware estiver pronto, o software provavelmente estará disponível em um formato de release antecipado e poderá ser usado para ajudar no teste do hardware. Se os requisitos forem alterados, esperamos que a equipe de software tenha a agilidade de alterar o software à medida que avançam, e pode fornecer feedback antecipado à equipe de hardware antes que o design do hardware seja comprometido com o protótipo. A equipe de software também tem acesso direto ao cliente desde o início do projeto, o que significa que eles podem ter uma idéia melhor sobre o que precisam zombar - e como fazê-lo - enquanto aguardam o teste do hardware.
Realisticamente, você não encontrará uma metodologia ideal que se encaixe imediatamente, e posso garantir que você terá muitos ajustes para fazer, independentemente da metodologia que escolher adotar ou desenvolver. O problema real é que você deseja tentar facilitar a gestão da sincronização entre as equipes e significa que você precisa encontrar uma maneira de aumentar a quantidade de contato e de entrada entre as duas equipes o mais cedo possível no processo, mesmo que pareça "inútil" ou "contra-intuitivo" fazê-lo. Esse é um grande problema na empresa com a qual estou trabalhando atualmente. Nosso "pai" europeu está lutando com esse problema exato, enquanto a equipe aqui em Oz parece capaz de manter as coisas funcionando um pouco mais suavemente, e é "