Como permitir a inovação em uma metodologia ágil [fechado]

21

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?

Brent Arias
fonte
8
@Liath: A inovação geralmente precisa ter tempo para experimentar idéias sem a pressão de mostrar algo a cada duas semanas, ou seja, no final do sprint. O feedback de curto prazo geralmente coloca o foco em "mostrar algo, não importa o quê" (porque sempre é possível corrigi-lo em um sprint futuro, se o cliente não estiver satisfeito), em vez de "tentar fazê-lo da maneira que você pensa que deseja". deve fazê-lo ". "Você mostra quando está pronto" em vez de "Você prepara quando precisa mostrá-lo".
Giorgio
4
Penso que uma pergunta ramificada que pode ser feita a partir dessa pergunta é: "O time-boxing tem seu valor em pesquisa de software ou em projetos altamente inovadores?", Também, "Existem projetos inovadores / de alto risco que não se beneficiam com o tempo -boxe"? (Eu estava lendo este a partir de uma pesquisa ad-hoc Google: agile.conscires.com/2010/03/30/agile-for-research-projects )
rwong
1
Esse link , atribuído a Xavier Amatriain, também parece oferecer um pacote completo ("processo") para a aplicação da metodologia Agile em projetos de pesquisa. É diferente do Scrum como o conhecemos, mas vai muito longe na adoção de valores e práticas ágeis.
rwong
2
A inovação no desenvolvimento de software não é fácil, independentemente da metodologia, porque as pessoas são ensinadas (por um bom motivo, suponho) a se ater ao que a maioria das pessoas concorda. Eu acho que é porque a engenharia de software não é muito científica, em comparação com outras disciplinas de engenharia, nas quais as idéias são julgadas por seus méritos, não por seu conformismo.
Mike Dunlavey

Respostas:

8

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) :

  • Os desenvolvedores podem identificar metas interessantes (estimulantes do ponto de vista intelectual) relacionadas ao trabalho em que gostariam de trabalhar.
  • Essas metas de expansão, depois de aprovadas pela equipe (incluindo o proprietário do produto), tornam-se "cartões de ouro".
  • A equipe é incentivada a tirar um dia para trabalhar nesses "cartões de ouro".
    • Geralmente acontece às sextas-feiras, então se torna o "Dia do Cartão Dourado".
  • Com relação ao Scrum, os Gold Cards são agendados e rastreados como qualquer outro item da lista de pendências; a equipe precisará demonstrar seus resultados.

Existem alguns outros pontos (não nesse artigo) em relação à aplicação de "cartões de ouro":

  • Não deixe que um único membro da equipe aproveite toda a diversão. Todo membro da equipe deve ser incentivado a dedicar algum tempo criativo, tirando um "dia do cartão de ouro" de vez em quando.
  • Na mesma linha, tente fazer de um "cartão de ouro" um esforço de equipe (em oposição a uma tarefa individual) e explore essa tarefa como um momento de socialização (formação de equipe).

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.

rwong
fonte
6

De volta ao Manifesto Ágil :

  1. Indivíduos e interações sobre processos e ferramentas
  2. Software de trabalho sobre documentação abrangente
  3. Colaboração do cliente sobre negociação de contrato
  4. Respondendo às mudanças mais que seguir um plano

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.

mouviciel
fonte
3
+ Eu acho que você entendeu. Eu acho que o problema é com livros que dizem às pessoas como fazê-lo. (Descobri que é muito difícil escrever sem inventar coisas.) Nossa equipe segue "Agile" e o que isso significa são reuniões intermináveis. Um membro simplesmente disse: "Conte comigo. É apenas a última moda. Se você não precisar de mim, tudo bem."
Mike Dunlavey
@ MikeDunlavey - eu gosto de como o seu: Nossa equipe segue o "Agile" ressoa com: Respondendo à mudança ao longo de um plano .
Mouviciel 30/06
1
@mouviciel: Eu concordo com a sua resposta, mas não entendo o que há de novo sobre os valores ágeis: acompanho os pontos 1, 2, 4 em todos os meus projetos muito antes de ouvir a palavra ágil e a maioria das pessoas com quem trabalhei estavam fazendo o mesmo. Nós chamamos isso de senso comum. Então, o termo "ágil" é apenas uma nova palavra para "não seja escravo do seu processo e use o bom senso"? Por outro lado, a única diferença real que o Agile trouxe ao meu trabalho é mais reuniões e mais regras a serem seguidas.
Giorgio
@Giorgio - Sim, é assim que eu vejo. Os melhores projetos em cascata nos quais trabalhei foram quando o líder da equipe favoreceu o senso comum entre os desenvolvedores e contou ao cliente uma bonita história "V-model / ISO9001 / Huge Documentation". O que há de novo nos valores do Agile está nas credenciais fornecidas pelos autores do Manifesto.
Mouviciel 30/06
O Agile era originalmente um manifesto sobre desenvolvimento de software; foi desenvolvido (ou modificado) para atender a uma ampla variedade de negócios. As reuniões são uma forma de comunicação face a face, mesmo que tivesse sido menos eficaz do que a comunicação individual por causa da política e do estilo pessoal.
rwong
6

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.

gbjbaanb
fonte
1
Dividir grandes tarefas em pequenos pedaços não é uma coisa ágil. É utilizado desde o início da engenharia na Mesopotâmia e no Egito antigos e é amplamente utilizado em projetos em cascata. Se for usado em projetos Agile, não é por causa de sua natureza Agile, mas por causa de uma mentalidade herdada de séculos de conquistas bem-sucedidas.
Mouviciel
@mouviciel: É verdade, mas o Agile obriga você a dividir os problemas em partes que devem caber em um único sprint. Se não o fizerem (como costuma acontecer em projetos de pesquisa), você está ferrado ... a menos que faça seus sprints por muito mais tempo. Quando você trabalha em um problema de pesquisa complexo, não pode prever quanto tempo levará para dividi-lo em pedaços pequenos o suficiente: ter os pedaços pequenos significa que você já resolveu o problema.
Giorgio
@rwong: Existem outros processos ágeis além do Scrum que não exigem feedback o mais cedo possível e ciclos curtos de desenvolvimento?
Giorgio
4
"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.": É verdade, minha equipe anterior era muito mais ágil quando estávamos fazendo Cachoeira: estávamos pegando as peças que precisávamos e ajustando-as às nossas necessidades. Então veio o treinamento ágil e tivemos que trabalhar de acordo com o livro: perdemos a maior parte de nossa agilidade. ;-)
Giorgio