Escolar Documentos
Profissional Documentos
Cultura Documentos
06 | Dependências de conhecimento
07 | Dependências burocráticas
08 | Dependências de produto
09 | Dependências externas
10 | Dependências de Infra
11 | Dependências de Arquitetura
Arquitetura de Código
Arquitetura da Aplicação
Gestão de Dependências: uma visão geral 2
Introdução
O crescimento exponencial e o Pensando na qualidade das
acúmulo das dependências é um informações e com o foco na
dos maiores desafios em agilidade no processo decisório,
organizações que empregam as usamos a nossa experiência para
técnicas de gestão enxuta e classificar as dependências em
otimização de fluxo, dentre outros grupos distintos. Os grupos
motivos, pela grande dificuldade de possuem sua característica, sua
enxergá-las e, consequentemente, forma de análise e ações, mas pode
de agir para solução ou mitigação. acontecer sobreposição de ações e
As dependências são atritos que por isso um fluxo de informações
geram filas. Quanto mais autônoma eficiente deverá ser mantido. As
for a nossa unidade de execução - ações são basicamente kaizens que
item de trabalho + pessoas - mais deverão ser planejados e
eficiente será o fluxo das executados dentro de um período
atividades. de tempo.
Dependências de fluxo
As dependências de fluxo ocorrem Este tipo de bloqueio está
quando alguma atividade, que será diretamente ligado ao fluxo. São os
importante para que o item de mais estudados e mapeados pelas
trabalho evolua, não pode ser empresas que fazem a gestão para a
executada porque alguma coisa está otimização de fluxo.
impedindo.
Buscando mais a fundo na causa raiz, identificamos que, quando este tipo de
dependência é muito comum, o processo de análise dá muita ênfase em criar
itens bem pequenos, achando que assim estará otimizando o tamanho do lote.
Não, neste caso estão só reduzindo o tamanho do lote o máximo possível, e
não otimizando, o que na verdade apenas esconde o lote verdadeiro, que é o
conjunto de demandas dependentes.
Dependência de revisão
Também muito comum nos fluxos que temos trabalhado, esta porém é mais
perigosa, porque está quase sempre escondida em atividades que não estão
mapeadas no sistema de trabalho. Isso não quer dizer que temos que criar uma
etapa para cada fase de revisão, já que existem outras maneiras para manter os
olhos nelas, como o uso de bloqueios bem organizados e classificados, por
exemplo.
Dos três tipos, nos lugares em que atuamos, é comum criarmos uma etapa
explícita apenas para a homologação, que normalmente tem alguma interação
externa. Os testes são resolvidos por quem constrói e o code review, quando
empregado, é feito na própria etapa de construção, usando bloqueios quando
não há capacidade imediata.
Entretanto, nenhum dos negócios que atuamos representa algum risco de vida
para os usuários. Caso o risco seja alto, aconselhamos criar quantas etapas de
verificação forem necessárias para garantir o funcionamento correto do que
está sendo construído. Perceba, porém, que cada criação de etapa extra gera
dependência e mais atrito, resultando em uma queda no time to market, que
será leve ou acentuada, dependendo da rigidez e burocracia de cada etapa.
Dependência de especificação
Em fluxos disciplinados, não enfrentamos muitos problemas com a visualização
deste tipo de dependência também, que pode ocorrer tanto durante a análise
quanto durante a construção.
Durante a construção, as dúvidas do que deve ser feito, às vezes até como deve
ser feito (dependendo do nível de autonomia que as pessoas tenham), são as
principais causas deste tipo de dependência. Aqui a ação que normalmente
adotamos é uma melhoria no processo de análise, com o feedback de quem
está puxando o trabalho. Lembrando que o objetivo final deste kaizen não é
"escrever mais no item", mas escrever o suficiente para que ele seja a unidade
mais autônoma possível.
Gestão de Dependências: uma visão geral 6
Dependências de conhecimento
Neste tipo de dependência, o conhecimento para dar andamento no item
encontra-se em outro lugar. Pode ser alguma solução técnica que está em outro
time, ou alguma métrica gerada em outro produto que será importante para a
construção daquele item.
Dependências
burocráticas
Dependências de produto
Aqui temos as dependências que ocorrem dentro do escopo do produto,
normalmente entre seus temas e épicos. Ela pode ser de origem técnica, de
negócio ou de gestão. Quando a origem é técnica ou de negócios, a
dependência costuma estar no nível do item de trabalho que, para fluir,
depende de informações ou da construção de itens que se encontram em
outros módulos ou épicos. Normalmente não representa um perigo maior do
que a dependência de item de trabalho.
O ponto positivo aqui é que a decisão sobre esta mudança de mindset, do foco
em times para o foco no serviço, está completamente nas mãos da gestão. As
técnicas do Fluxo Unificado são ferramentas eficientes no auxílio da correção
desses problemas. De todas as dependências apresentadas aqui, esta é a que
mais poderá se beneficiar de tais técnicas.
Gestão de Dependências: uma visão geral 9
Dependências externas
Muito mais complicadas de resolver, as dependências externas são aquelas que
mapeiam necessidades para vazão que estão completamente fora do sistema
de trabalho, estando em clientes, outros fornecedores ou na nuvem.
Cada fornecedor, assim como cada time, é um sistema diferente que funciona
em acordo com as próprias regras que foram evoluídas no processo de
amadurecimento daquele time. Se existe alguma organização do fluxo de
trabalho, seja tradicional ou moderna, você encontrará um certo nível de
burocracia para entrada de itens no fluxo e cada entrada precisará ser
negociada. Para lidar com este tipo de situação, as empresas empilham
camadas de gestão que serão responsáveis pela coordenação entre os diversos
fornecedores ou entre os diversos times.
Não estamos dizendo aqui que você deverá, a partir da próxima segunda-feira,
unificar a empresa toda em um grande e caótico time, mas sim para considerar
não só se cada quebra é realmente necessária, mas também em como fazer
cada uma delas.
Dependências
de Infra
Dependências de Arquitetura
Aqui temos dois subtipos mapeados: dependências de arquitetura de código e
dependências de arquitetura da aplicação.
Arquitetura de Código
Aqui temos as dependências que estão diretamente ligadas à má qualidade,
quando não observamos as boas práticas de código. Quando negligenciamos a
coesão de cada unidade de código e aumentamos o acoplamento com outras
unidades, corremos o risco de que a necessidade de mexer em outros lugares
acabe por gerar uma dependência. Em times muito reduzidos, o risco é baixo,
porque a probabilidade de outras pessoas estarem mexendo na mesma porção
de código que precisará ser alterada é baixa.
Arquitetura da Aplicação
Neste tipo de dependência, os problemas estão nas definições da arquitetura
da aplicação, que podem deliberadamente gerar dependências entre domínios
mal desenhados. Um outro exemplo seria a decisão de comunicar duas
aplicações através de um Enterprise Service Bus (ESB), e também decidir por
colocar este ESB nas mãos de outro time.
Gestão de Dependências: uma visão geral 12
Neste caso, é provável que tenhamos um time para cada uma das pontas e um
time para o ESB, gerando vários tipos de dependências apresentadas neste
texto.
Conclusão
Não estamos aqui estabelecendo destas dependências, às vezes,
que é possível eliminar todos os atirando no escuro para tentar
tipos de dependência do sistema resolver fantasmas que aparecem
de trabalho. O título deste texto é no sistema.
"Gestão de Dependências" e não
"Eliminando Dependências" e a Saber com o que está lidando,
palavra chave é gestão. Se você não saber os fatores geradores, saber as
conhece as dependências que consequências e como lidar com
podem ser geradas a partir de uma elas é obrigação fundamental de
decisão e, principalmente, quais as qualquer gestor, principalmente
suas consequências, não dos gestores do trabalho do
conseguirá realizar uma boa gestão conhecimento.
Saiba mais
1. The impact of DEPENDENCIES - and how to MANAGE them
2. A Taxonomy of Dependencies in Agile Software Development
Site
YouTube
Tallercast