Escolar Documentos
Profissional Documentos
Cultura Documentos
Nossa situação
Eu e minha equipe está atualmente trabalhando em uma aplicação web nova linha de
negócios, e tivemos uma discussão hoje sobre o que o melhor processo Agile seria para
nosso esforço atual. Até sexta-feira passada, temos praticado Extreme Programming
(XP). Geralmente temos uma semana de duração iterações, começando nas manhãs de
sexta-feira e terminando nas noites de quinta-feira (para que fim de iteração tempo de
crise para atender o nosso compromisso de iteração não se enquadra em uma noite de
sexta-feira). Manhãs de sexta-feira têm que levantar, então a nossa retrospectiva, e, em
seguida, planejamos nossa próxima iteração. Sexta-feira passada decidimos
experimentar um processo Lean / puxar por uma semana. Esta manhã, no nosso stand-
up, eu estava tentando escolher entre trabalhar em uma história bastante grande que
estava no topo da nossa fila "Ready", que eu provavelmente não poderia ter terminado
até o final do dia, e uma pequena história logo abaixo que é mais viável para hoje Se
tivéssemos de continuar usando Lean / Pull, tendo a história semi-acabados no final do
dia não é um problema, mas se vamos voltar para o XP e de comprimento fixo de
iterações, eu preciso ter certeza de que não há trabalho em andamento pela EOD. Este
post é sobre o processo que decidimos usar e por quê.
Extreme Programming
Em um mundo ideal (ex. livro Agile / XP), que seria capaz de entregar os recursos mais
valiosos para a produção em uma iteração, gerar algum valor, e construir a partir daí. No
mundo real (ou no nosso mundo, em qualquer caso), há muitas vezes um conjunto de
recursos mínimo comercializável que devem ser concluídas para que um novo
aplicativo para entregar qualquer valor em seu contexto de negócios. Em nossos
negócios, nossos clientes estão ocupados e seletivos, então se você demonstrar algo para
eles que não faz as funções essenciais, que provocou o seu interesse, na melhor das
hipóteses: eles não vão usá-lo em seu estado atual. Na pior das hipóteses: eles vão
perder o interesse no novo produto e declínio dedicar ainda mais atenção a ele no futuro.
Outro fator que pode resultar em um traço mínimo comercializável set como este é um
esforço de marketing. Dado um orçamento de marketing fixo, você vai gastar os dólares
valiosos em execução que anúncio de página inteira em um jornal de comércio depois
que o produto teve apenas uma semana de desenvolvimento? Eu acho que
provavelmente seria imprudente na maioria das situações. Tudo isso certamente não é
para dizer que devemos voltar à cachoeira e decidir o escopo na frente, então o faça 'até
que é "feito", etc., mas apenas que como a maioria das coisas na vida, a seleção quando
a "lançar" um novo aplicação é um equilíbrio. Que deseja iniciar com o conjunto
mínimo de funcionalidade que realmente chamam a atenção do seu público-alvo, sem
fazer muito na frente que você precisa fazer uma tonelada de re-trabalho após ser
utilizados na produção e os usuários dizer-lhe tudo o que está errado com ele. O truque
é implementar A, B e C (se essas são as características que são absolutamente críticos)
sem tentar entregar D, E e F (a nice-to-haves), ao mesmo tempo. O problema é que o
esforço necessário para construir A, B e C muitas vezes leva mais de uma iteração de
tamanho razoável, no caso de uma nova aplicação.
Kanban
Kanban é japonês para "placa" ou "outdoor". "Kanban é um sistema de sinalização para
acionar a ação. Como o próprio nome sugere, kanban historicamente utiliza cartões para
sinalizar a necessidade de um item. "( Wikipedia ) Temos na verdade, vindo a utilizar
uma placa de Kanban virtuais para um pouco de tempo agora, como no que é mais
simples de uso, é efetivamente semelhante ao XP estilo story-board (cartões de índice
preso em um quadro de ferro com imãs coloridos) que estávamos usando antes. O
processo de mudança a que me referi anteriormente é que nós brevemente
experimentado um sistema de tração, onde os nossos stakeholders e acrescentou
histórias priorizadas na fila de "pronto" à vontade, teoricamente, sinalizado por nossa
conclusão do trabalho. Nós tentamos isso em vez de ter uma iteração de comprimento
fixo, esta semana, motivados em parte por ela ser uma semana curta devido ao feriado
04 de julho reconheceu na segunda-feira.
O lado negativo de usar Kanban ao desenvolver uma nova aplicação é que não há
maneira aparente de fazer a estimativa ampla que atualmente comunicar à gerência
superior. Embora você possa usar o seu tempo de ciclo calculado (a quantidade média
de tempo que leva um recurso a ir desde a concepção à produção) para estimar quando
uma característica particular será entregue à produção, que sobre o tempo necessário
para entregar o conjunto mínimo de recursos comercializável? Não parece possível a
utilização de tempo de ciclo para calcular isso, e você não pode usar a velocidade, se
você não tem iterações comprimento fixo. Além disso, os pedaços de trabalho
representado pelo conjunto mínimo de recursos comercializável não parece muito
compatível com um sistema de tração. As partes interessadas não estão adicionando um
recurso para a fila como nós começar o trabalho feito, eles estão nos dizendo o conjunto
mínimo de recursos que são necessários antes que eles estão dispostos a convocar uma
reunião com um cliente-chave para demonstrar uma nova aplicação, e parece lógico que
dadas as circunstâncias. Por último, o cálculo do tempo de ciclo e identificar gargalos se
torna muito mais difícil se as histórias que se deslocam através do fluxo de valor não
são do mesmo tamanho, e eles geralmente não são para o início de uma vida aplicações,
uma vez que há pouca ou nenhuma infra-estrutura no local no início.
Decisão
Uma vez que o valor de ser capaz de produzir estimativas para novas aplicações para a
gestão superior excede o valor delas é capaz de adicionar e priorizar histórias no meio
de uma iteração, decidimos voltar a usar XP para a nossa próxima iteração
Continuaremos a usar o XP sobre este pedido (e todas as novas funcionalidades que não
podem ser totalmente lançada após uma iteração) até que ele está realmente sendo
utilizados na produção. Vamos entregá-lo para um ambiente de produção em intervalos
regulares, antes disso, e demonstrar-lo lá para a alta gerência. Uma vez que os usuários
pretendidos são realmente usá-lo na produção e recebendo o valor a partir dele, temos
provisoriamente decidiu experimentar um sistema puxado de novo, uma vez que fará
mais sentido ter novas funcionalidades ser puxado através do sistema em resposta ao
trabalho que está sendo concluída uma vez estamos recebendo feedback do público-alvo
e estimativas não precisam ser comunicadas de volta para a alta gerência para essa
aplicação. Significa "XP para novo apps, Kanban para melhorias" parece ser um bom
módulo de operação? Uma coisa que me ocorre que eu estou lendo para trás sobre o
meu post é que se tinha decidido ir com um sistema de tração desde o começo, nós
poderíamos usar alguma metodologia de estimativa que não tem relação com nosso
processo (por exemplo, algum sabor de COCOMO, ou SWAG , ou o nome dele), apesar
de eu recolher que a velocidade com base em estimativas que temos vindo a utilizar
desde que adotamos XP ter sido muito mais precisas do que as estimativas dadas antes
de a empresa utilizou um processo ágil (embora eu acho que poderia ter a fazer com a
adoção de outras práticas ágeis nos manter focados). Se alguém ler este implementou
uma nova aplicação usando um sistema de puxar sob restrições semelhantes, como você
lidou com a estimativa (que foi em qualquer lugar perto precisa?), E foi a sua fila de
trabalho muito maior no início do projeto, ou era pequena toda?