Uma coisa é dizer que as metodologias ágeis são boas em ambientes onde os requisitos são pouco compreendidos ou que uma novidade significativa está envolvida. Mas deve ser aplicado onde é necessária inovação total? Se sim, como?
Se o que você está pensando é desconhecido no setor, ou até mesmo considerado impossível, pode ser difícil conceber as histórias do usuário e as tarefas relacionadas. Por exemplo, teria beneficiado Albert Einstein (ou um empregador hipotético ao qual ele relata) ter criado a teoria da relatividade geral, dividindo-a em épicos, sprints e tarefas? Se a resposta for "sim", então que acomodações especiais deveriam ter sido incorporadas para ajudar uma abordagem ágil a funcionar melhor com a maneira de Einstein de obter uma visão revolucionária?
Para dar um exemplo específico de software, imagine que o ano é 2008 e você gostaria de usar o WCF para fornecer recursos do tipo COMET ou " pesquisa longa ". Toda sua pesquisa sobre "trabalho anterior" não mostra nada, e você até lê um blogueiro do MSDN dizendo que não é possível.
Novamente, que ajustes ou "sabores" poderiam ser trazidos para as histórias e tarefas do usuário para acomodar a inventividade (ou a audácia?) Desse investidor? Ou seria realmente melhor concluir que o esforço é tão inovador (em 2008) que é melhor deixar como um exercício não-dirigido de um think tank?
O inovador que opera com sprints de duas semanas certamente não quer ser abatido toda vez que abandona uma tarefa sem saída e começa a trabalhar em uma tarefa recém-descoberta que não estava prevista quando o sprint foi definido. Da mesma forma, quando o sprint termina e nenhum código ou abordagem de trabalho é entregue, o inovador não deve ser abatido pela gerência. É preciso haver uma maneira de rotular o esforço como "sucesso", mesmo nessas circunstâncias. Talvez em mais uma ou três corridas desse tipo de busca "sem saída", o inovador possa finalmente encontrar algo que funcione.
Como o ágil permite que a gerência saiba que cada sprint estava "ok", apesar dos reveses inovadores? Como isso é gerenciado para que o gráfico de queima não pareça absurdo?
Respostas:
A questão do título, em que inovação se refere a avanços criativos de menor escala em uma equipe que já está se saindo bem no Agile.
A melhor resposta está resumida neste artigo sobre "Gold Card Days" .
Resumo (parafraseado e com minhas próprias interpretações que podem não refletir as intenções do autor) :
Existem alguns outros pontos (não nesse artigo) em relação à aplicação de "cartões de ouro":
A questão substancial, em que inovação se refere a pesquisas (meses a anos de trabalho horrível) que têm um risco real de não encontrar nenhuma solução útil.
Esta pergunta anterior, que técnicas de programação extrema são apropriadas para uso em um ambiente de pesquisa? abrange grande parte do terreno desta questão.
(Isenção de responsabilidade: escrevi uma das respostas para essa pergunta, embora não a selecionada.)
O resumo é que o trabalho de pesquisa de software pode ser acelerado; exige que seus participantes priorizem com base em novas informações (absorvendo idéias descobertas / aprendidas e sintetizando novas). Dá a impressão de ser "lento" apenas porque é "lento para mostrar os frutos do sucesso, e somente se foi bem-sucedido".
Esta pergunta no Project Management Beta - Quais são os prós e os contras de incorporar um gerente de projeto a uma equipe de pesquisa? - também abrange os mesmos motivos.
Em espírito, sim.
Conforme apontado na resposta do mouviciel , o espírito da pesquisa de software está alinhado com o espírito do Manifesto Ágil. O que discutirei a seguir é se a pesquisa de alto risco pode se encaixar no Agile como uma organização ou metodologia de gerenciamento ("Agile na prática").
Na prática, você deve responder a algumas perguntas.
Essa lista não é exaustiva...
Temos que rastrear um pouco sobre como a Metodologia Ágil passa a existir.
A metodologia ágil é geralmente usada quando há um patrocinador do projeto. Além disso, a disposição do patrocinador de financiar o projeto é limitada; espera ver algum software de qualidade utilizável (potencialmente expedível) sendo entregue regularmente após o financiamento do projeto por algum tempo.
O tipo de trabalho de pesquisa nesta questão refere-se a "empreendimentos potencialmente não solucionáveis". Em outras palavras, a própria natureza desse tipo de trabalho envolve um risco de que possa falhar, apesar de todas as intenções e diligências das pessoas envolvidas.
Esta não é uma lista de verificação no estilo ScrumButt.
Esta é mais uma lista de verificação de preflight que prevê se é melhor "Que Sera, Sera"
1. Transparência inicial. O patrocinador do projeto está sendo informado da verdade sobre a natureza arriscada do projeto?
2. Disposição do patrocinador. O patrocinador está ciente do risco e deseja continuar com o financiamento?
O patrocinador precisa ter uma aceitação de risco maior do que os projetos comerciais típicos ou os projetos típicos de Software / TI / Agile. Nem todo patrocinador se encaixa nesse critério. Se não se encaixar, seria bom para um profissional desistir do projeto.
3. Transparência ao longo do projeto. O patrocinador está sendo informado regularmente sobre o verdadeiro status do projeto?
Isso é para impedir tentativas de ocultar contratempos ou falhas iminentes no projeto, usando mal o intervalo de tempo entre as atualizações de status.
4. Participação ativa do patrocinador. O patrocinador está interessado em conhecer os detalhes básicos, os altos e baixos, as promessas e as limitações de cada tentativa?
O problema com a pesquisa de software é que pode haver muitas pistas falsas - tanto falsos positivos (acreditando que uma abordagem funcionaria, mas acabou sem êxito) quanto falsos negativos (alegando que algo não é possível, apenas para ser refutado por outra pessoa) .
Projetos ágeis permitem que a equipe (incluindo patrocinadores e partes interessadas) assuma riscos calculados. "Calculado" significa que os que assumem riscos são totalmente informados. Se o patrocinador não estiver disposto a aprender os detalhes básicos do projeto, ele não terá informações completas para calcular (julgar) o risco por conta própria.
Mesmo que um patrocinador esteja disposto a assumir o risco financeiro, se não estiver disposto a também participar dos riscos de tomada de decisão (e aceitar consequências para suas próprias escolhas), o patrocinador também não é adequado para esses projetos de pesquisa de alto risco.
5. A equipe de pesquisa pode mostrar (demonstrar) seu progresso na forma de execução de software, em oposição aos slides da apresentação?
Essa pergunta é apropriada para projetos de pesquisa em que se espera que o resultado final esteja executando o software. Os slides da apresentação podem ser úteis para explicar as teorias de CS, mas também podem ser mal utilizados para ocultar contratempos na implementação do software (ou na completa falta de). Uma demonstração de software destina-se a impedir tais abusos.
6. A equipe de pesquisa pode entregar um produto de software parcialmente valioso, mesmo que o patrocinador decida interromper o financiamento a qualquer momento no projeto?
Esta questão é relevante apenas caso a caso. Alguns projetos de pesquisa são incrementais; eles podem ter vários marcos e resultados. Exige que uma equipe de pesquisa priorize suas abordagens para favorecer "os frutos mais baixos primeiro", ou a "abordagem de menor custo para demonstrar viabilidade".
Alguns projetos de pesquisa não são incrementais: oferecer uma inovação tecnológica única e muito específica. É um sucesso ou um fracasso. Para esse tipo de projeto, os únicos resultados incrementais são o trabalho de pesquisa e prototipagem, e talvez as publicações acadêmicas. Esses resultados incrementais "não consumíveis" são, no entanto, valiosos para alguns tipos de patrocinadores - a saber, universidades, agências de fomento à pesquisa e grandes empresas que esperam criar boa vontade acadêmica.
No entanto, projetos de pesquisa com essas características também podem favorecer a abordagem "codificação de cowboy", conforme discutido mais adiante. Estes são apropriadamente denominados "hacks" e ocorrem na academia.
Devido à escala de tempo da maioria das pesquisas acadêmicas, o financiamento para pesquisas no estilo acadêmico geralmente é fornecido com um compromisso de um ou mais anos; o financiamento de pesquisa médica (acadêmico e comercial) pode ser comprometido por períodos ainda mais longos. Por outro lado, pesquisas tipicamente financiadas comercialmente podem ser encerradas sem aviso prévio ou ter seus recursos (mão-de-obra) sendo completamente reatribuídos para outros projetos.
7. Como a equipe de pesquisa mede a escala de silo versus multifuncional?
Alguns tipos de equipe de pesquisa são altamente isolados. Freqüentemente, isso acontece em projetos "multidisciplinares" - exatamente um membro de cada disciplina está envolvido. Como resultado, nenhum membro pode assumir a tarefa de outro membro, nem mesmo as muito pequenas, porque seus conhecimentos e habilidades não se sobrepõem. A dificuldade também se estenderia às definições de comunicação e tarefa.
As equipes extremamente isoladas ainda se beneficiarão de alguns rituais do Scrum, como uma reunião de stand-up diária, mas além do "ritual", pode não haver muita interação acontecendo. Seria necessário um treinador ágil altamente socializador para que a equipe conversasse e ganhasse confiança.
8. Se um coach ágil estiver presente, o coach prescreve ciclos curtos de iteração, time boxing e fornece estimativas de tempo?
Cada uma dessas práticas ágeis apresenta dificuldades para certos tipos de projetos de pesquisa. No entanto, foi relatado que alguns grupos de pesquisa habilmente qualificados foram capazes de aplicar essas práticas em pesquisas avançadas . Como não há detalhes sobre como o coaching ágil ocorre nessas equipes de especialistas, talvez não possamos saber como cada uma dessas dificuldades pode ser superada.
9. A equipe de pesquisa vota por unanimidade a adoção do estilo de desenvolvimento Solo sobre qualquer outra metodologia?
Editado: uma versão anterior usa a frase "cowboy coding", que alude à falta de profissionalismo. No entanto, existe uma diferença entre desenvolvimento solo e codificação de cowboy, e as circunstâncias neste item da lista de verificação podem tornar o desenvolvimento solo uma escolha legítima.
Essa pergunta mostra que existem programadores que preferem possuir uma grande parte do desenvolvimento. Se a equipe de pesquisa é composta principalmente por esse tipo de programador, uma vez que o conjunto de habilidades dos membros da equipe é insubstituível (referindo-se ao ponto anterior do silo de habilidades), os membros da equipe podem ter que receber o que desejam, em troca por suas habilidades e trabalho.
A principal diferença entre desenvolvimento solo e codificação de cowboy é que, no desenvolvimento solo, é possível adotar as práticas listadas em The Joel Test: 12 etapas para melhorar o código , como o uso do controle de versão, automação de compilação e correção de bugs antes de adicionar novos recursos .
Algumas circunstâncias favorecem cada membro que realiza o desenvolvimento solo, enquanto outras favorecem a codificação de cowboys.
A codificação de cowboy é favorecida se o objetivo final é "fazer uma observação", mostrando que algo é tecnologicamente possível. Não há requisitos para entrega - nem qualidade - além de uma boa apresentação no próximo DEF CON ® .
Pergunta final. Se as circunstâncias não permitem que uma equipe Ágil realize pesquisas inovadoras, como elas fazem uso de tecnologia inovadora?
Negócios, como sempre. Deixe que outras empresas (ou acadêmicos, indivíduos ou equipes de hackers , startups etc.) enfrentem primeiro o problema difícil e depois comprem / licenciem a tecnologia deles. A indústria de software segue esses princípios há muitas décadas.
A ênfase em mostrar os primeiros protótipos de trabalho na metodologia Agile obriga uma equipe a procurar primeiro as soluções existentes, o que é uma coisa boa, pois pode salvar a equipe de algum trabalho redundante.
fonte
De volta ao Manifesto Ágil :
Nada nesses valores proíbe a inovação. Na verdade, a inovação tem um ninho melhor com o Agile do que com o Waterfall.
No entanto, pode acontecer que as implementações usuais do Agile imponham algumas restrições em um projeto de software que limitam a inovação, como prazos (o prazo de um sprint é um prazo) ou custo. Mas isso não é um problema do Agile, é um problema das organizações de trabalho atuais.
fonte
Eu acho que não. Agile é sobre comer elefantes de chocolate - pegar uma grande tarefa e dividi-la em pedaços gerenciáveis que não só podem ser entregues, mas são entregues regularmente.
Projetos do tipo pesquisa não se encaixam nisso - a menos que seu projeto possa ser dividido em pequenos pedaços que podem ser demonstrados a cada quinzena (ou mais - em nenhum lugar a Agile diz que duas semanas é o tempo que seu sprint precisa, o melhor projeto ágil que já fiz) trabalhou em seis corridas de 6 semanas)
Eu não tentaria embora. Eu pegaria as ferramentas ágeis que você acha que funcionariam para você e ignoraria as que não funcionam. Muitas pessoas pensam que Agile significa "você deve fazer tudo o que o tutorial scrum diz que deve fazer e nenhuma discrição é permitida", essa abordagem é muito pouco ágil.
fonte