Olá! Gostaria de expor uma situação na empresa onde trabalho atualmente. A organização é baseada em etapas realizadas encima de um cronograma e cada etapa é separada por equipes. Hoje as etapas são: Parte comercial (que, pra mim, é obscuro), levantamento de requisitos e necessidades, parte burocrática e arquitetural, desenvolvimento do produto, qualidade, homologação e entrega. Sou analista de sistemas da equipe e temos muitos problemas de comunicação e assertividade do que está sendo produzido por conta de má definição que vem desde o início, na parte comercial, que vende uma coisa e quando chega até nós, é totalmente outra coisa. Enfim, não existe o compartilhamento de informações destas etapas iniciais. O desenvolvimento sempre começa sem a conclusão das partes burocráticas e definições arquiteturais. Fora os problemas gerencias onde o gerente do projeto delega muitas funções para o desenvolvedor, prejudicando muito a questão da qualidade e tempo produtivo da equipe. Eu e um amigo chegamos a sugerir uma reorganização destas etapas, para tornar algo mais assertivo, eficiente e ágil. Não chega a ser uma organização ágeis, mas para o cenário que temos hoje, melhoria cerca de 50%.
Temos muitos problemas de documentação imprecisa e fraca em detalhes. Os desenvolvedores não estão apenas comprometidos com o desenvolvimento do produto e o gerente, desculpa pelo termo, arrega e sempre delega trabalho gerencial demais para os desenvolvedores. A equipe de qualidade atende N projetos e sempre dependemos da disponibilidade (agenda) deles. O cliente só homologa o produto quando todas as partes estão finalizadas. E o resultado disto tudo sempre é:
Atraso na entrega; Baixa qualidade do que é entregue; Produto não corresponde ao que o cliente sugeriu; Retrabalho alto.
A solução para isto foi: Um clico entre o comercial e o QA/Analistas de negócio para um documento de requisitos e necessidades mais assertivo, eficiente e detalhado; Após uma documentação passada pela equipe de qualidade e negócio, haver uma analise crítica deste documento por um representante, líder técnico da equipe que acusará qualquer falta de informação, impedimentos ou inviabilidade que podem apresentar no produto que foi solicitado com relação às tecnologias disponíveis com apoio de um arquiteto; Criar uma função de liderança técnica para trabalhar/fazer um meio de campo entre a gerencia, QA e desenvolvimento, focando na qualidade de entrega e aliviando os desenvolvedores de trabalho gerencial e burocrático, ou seja, blindar a equipe para focarem apenas na qualidade e produtividade, reportando o andamento do projeto ao gerente; Realização da qualidade e homologação por pequenas entregas (módulos, funcionalidades ou serviços) e não numa entrega conclusiva de todo o projeto, para evitar possíveis imprevistos e redução de retrabalho em soluções de problemas; Ter uma analista de teste para a equipe para que possa estar realizando uma parte do trabalho de qualidade (pontos mais funcionais) e feedback imediato para a equipe de desenvolvimento para não propagar os possíveis problemas; Reuniões semanais (1 por semana ou 1 a cada 2 semanas) para discutir tudo o que foi entregue até ali com todos os envolvidos no projeto para compartilhar o conhecimento, deixar todos a parte do que está sendo realizado; Reuniões diárias entre os integrantes da equipe de desenvolvimento para assuntos relevantes (reunião bem curta, de até 15 minutos); A cada "mini entrega", o cliente homologar, de acordo com seu tempo disponível, e dar um feedback se aquilo está atendendo o negócio.
Essa é uma visão resumida, tem mais detalhes mas é algo mais técnico.
Não sei se pode haver melhorias encima do que propus, acredito que sim. Gostaria de uma opinião de quem tem um conhecimento mais abrangente em assunto de organização de equipes.