Enviei o texto abaixo para as listas de discussões: agildf@googlegroups.com, agile-brasil@yahoogrupos.com.br e scrum-brasil@yahoogrupos.com.br.
Cenário:
Ambiente com equipes “não ágeis”, equipes separadas por função (administrador de dados, testes, analistas de requisitos, arquitetura etc.) e necessidade de um “projeto ágil piloto” na TI.
Restrições:
1) Não existe a possibilidade de agrupar totalmente as equipes para o projeto. No máximo, analistas de requisitos, desenvolvedores e líder do projeto. As demais equipes trabalham por demanda. Exemplo: a equipe do projeto piloto solicita a criação do banco de dados. A equipe de banco de dados não participou da reunião, não sabe do que se trata o projeto. Tem uma visão vaga do assunto.
2) Primeiro projeto em Java. A equipe não tem conhecimento das melhores práticas, não sabe de teste automatizado, etc.
Desafio:
Desenvolver um sistema utilizando princípios ágeis.
Perguntas:
1) A criação do banco de dados é uma demanda externa. Como considero isso dentro da Sprint do projeto piloto? Em determinado momento, existirão várias atividades em paralelo e de equipes diferentes.
2) A equipe de teste é externa e solicitou casos de usos. Como a equipe ágil pode contornar esta solicitação? Como o analista de testes que não conhece do negócio terá acesso ao negócio para realizar os testes?
3) Em uma determinada Sprint existem somente atividades de desenvolvimento. As próximas necessidades podem ser levantadas? Como se fosse um adiantamento de atividades?
4) Quais os documentos mínimos necessários que vocês recomendam para um cenário destes? Lembrando que não existe uma comunicação ideal, equipes distintas, etc.
É um cenário que não favorece. É qualquer coisa menos um ambiente favorável para Ágil. É difícil conseguir um ambiente ideal quando se têm várias empresas prestando serviço para a construção de um produto único mas não é por isso, que uma tentativa de um “projeto ágil de ponta-cabeça” não possa ser implementada. Nem que seja só para disseminar a idéia, gerar interesse, etc.
Preciso de sugestões, de algumas ações/atitudes que deram sucesso em ambientes parecidos, etc.
Como sempre, a galera contribui e com ótimas respostas. VALEU!
Alexandre Campos
É Luciana, jogo duro! Não recomendo o scrum para o seu cenário. Voce pode usar algumas práticas. Acho que a sua missão é trazer os valores ágeis para dentro do seu ambiente, uma mudança cultural mesmo. comece pelo manifesto ágil! acho que é um excelente ponto de partida….vc vai trazer valores como: Colaboração com o cliente, entregar software funcioanando, pequenas interações e por ai vai….assim vc consegue construir a base para no futuro adotar a agilidade de verdade…eu só tomaria muito cuidado com os rótulo, procure não dizer: estamos utilizando scrum, estamos utilizando tdd, xp, ou seja qual outra metodologia…isso pode “queimar” a metodologia, trazendo visoes negativas que não corresponde a realidade da metodologia, mas sim do ambiente….acho q uma ordem para vc conseguir implatar metodos ageis seria algo do tipo:
1- introduzir valores ágeis
2- introduzir práticas ágeis
3- metodologia “but” – Deixando claro para todos q a está usando a metodologia but
4- metodologia de verdade (adaptada as necessidades sim, mas
Rafael Prikladnicki
Eu particularmente concordo com o Alexandre. Não adianta empurrar práticas.
Ontem li em outra lista algo que acabei colocando inclusive no meu twitter…
Agile is not a set of practices, but a core set of beliefs and principles
Se tentar colocar práticas, pode sentar e esperar pelo fracasso. Comece apresentando a cultura ágil. Boa sorte!
Silvio Neto
Já participei de um projeto parecido e deu certo. Baseado nisso vou te dizer como eu acho que deveria ser.
E não como foi, pois acho que mesmo tendo dado certo alguns pontos eu alteraria. Para ser mais ágil e principalmente diminiuir o tempo da entrega. Não digo que seja uma verdade absoluta. Só a minha opinião pessoal.
1) Não existe a possibilidade de agrupar totalmente as equipes para o projeto. No máximo, analistas de requisitos, desenvolvedores e líder do projeto. As demais equipes trabalham por demanda. Exemplo: a equipe do projeto piloto solicita a criação do banco de dados. A equipe de banco de dados não participou da reunião, não sabe do que se trata o projeto. Tem uma visão vaga do assunto.
- Pronto analistas, desenvolvedores e lider juntos. OK
- Solicitação de criação de banco de dados. ERRADO.
CORRETO: Um arquivo versionado de script do banco.
O Time de desenvolvimento cria as tabelas, nem que seja usando Derby. Uma vez que a maioria dos projetos hoje em dia em java utilizam JPA. Ou seja o banco pode ser alterado com facilidade. Na entrega de cada sprint você entrega um cd com todo o fonte inclusive o script do banco, para a criação das tabelas pelos DBAs da empresa.
2) A equipe de teste é externa e solicitou casos de usos. Como a equipe ágil pode contornar esta solicitação? Como o analista de testes que não conhece do negócio terá acesso ao negócio para realizar os testes? Você disse que terá analistas, logo terá casos de uso que são os documentos gerados por essa galera. Como a equipe de testes é externa você só vai precisar deles quando tiver casos de uso descritos e implementados. Ou seja você já terá os insumos que eles necessitam para trabalhar.
3) Em uma determinada Sprint existem somente atividades de desenvolvimento. As próximas necessidades podem ser levantadas? Como se fosse um adiantamento de atividades? Para os desenvolvedores começarem a implementação, é necessário um mínimo de conhecimento do negócio. Para isso você deveria rodar a primeira sprint da seguinte forma:
Os analistas começam com o levantamento de requisitos e especificação de de casos de uso.
Que devem ser validados com os usuários diariamente.
Os desenvolveres tendo acesso diário a esses documentos.
Já podem retirar os requisitos não funcionais e montar a arquitectura.
Fazer protótipos (evolutivos) do caso de uso, para testar a arquitetura escolhida e para servir de protótipo aos analistas. Assim que os documentos dos casos de uso forem realmente aprovados pelos usuários (assinado de preferência) e as telas validadas em protótipo. Os desenvolveres aproveitando os casos de uso já podem implementar as regras de negócio enquanto a equipe de testes cria os casos de testes (unitários e funcionais) e a equipe de análise já parte para o levantamento dos próximos casos de uso da próxima sprint.
Quando os casos de uso passarem por todos os testes unitários e funcionais, pronto os casos de uso estão entregues.
4) Quais os documentos mínimos necessários que vocês recomendam para um cenário destes? Lembrando que não existe uma comunicação ideal, equipes distintas, etc.
Primeiro de todos o quadro do scrum com as atividades.
Depois os Requisitos funcionais, Requisitos Não Funcionais, Documento de arquitetura, Casos de Uso, casos de testes. Bem nessa parte acho que exagerei para o ágil né. Vejo esses não como mínimo mas os principais.
Eles ajudaram muito após a entrega do sistema para quem for dar manutenção. Mesmo que sejam os próprios desenvolveres. Espero ter ajudado. Gostaria de ouvir críticas.
Tiago Peczenyj
sugestão de leitura Fragmental – Introduzindo Agilidade num ambiente
Gustavo Resende
Falando em Agile 2008 : Scrum na Globo – Derrubando mitos
Aproveitei o final de semana para refletir e ler muito.
Respondendo a pergunta Vai um Scrum aí? Não! Não cabe.
ps: gerei um post sobre ScrumBut
É como se tivesse um boneco e por adaptação, tira as pernas e coloca rodinhas. Tira o coração e coloca uma bateria. Depois falha, é SCRUM que não funciona!
Na minha opinião, antes de implantar agilidade ou inventar um modelo ágil adaptado ao seu ambiente, é necessário estudar sobre o assunto, fazer uma pesquisa de campo (ver como outras pessoas implantaram, as dificuldades, etc.), procurar consultorias confiáveis e trocar muita idéia por aí.
Eu vejo a “onda” Ágil como uma luz no fim do túnel. Chega de gastar dinheiro com trabalho ineficiente!
São muitos depoimentos de sucesso e o mais legal é a motivação. O Mundo Ágil é algo que “contagia”. É a alegria de se trabalhar com informática, muita novidade e uma comunidade extremamente ativa.
Voltando ao problema exposto, gostei da idéia de inserir alguns princípios ágeis. Eu acho que funcionará melhor do que falar: “Estamos usando SCRUM mas….”
Por favor, nada de criar monstrinhos Scrum!
Obrigada a todos pela contribuição!
Vamo q vamo!!





