Hiflex

Compartilhar

Cynefin – Restrições

Para aqueles que vem acompanhando essa jornada sejam bem-vindos de volta, aqueles que chegaram agora vou deixar como dica de leitura os 3 artigos anteriores a esse:

  1. Cynefin – O que é?
  2. Cynefin – Por que esse nome?
  3. Cynefin – Os três tipos de sistemas

Falemos agora sobre restrições, o Cynefin ele tem uma conexão muito forte com alguns Cs, que são Complexidade, Contexto e Restrições (Constraints).

Primeiro o que é restrição? Uma resposta simples que achei foi: “imposição de limite”.

Ao ler isso pensamos automaticamente em algo negativo, imposição de limite, algo que nos obriga, que nos limita, isso é ruim certo?

Na verdade, não. O ser humano busca a ordem no caos, e a única forma de alcançarmos ordem é impondo limites, restringindo um sistema.

Veja uma represa por exemplo, ao represar a água do rio, retendo o curso da água, armazenando-a e através da criação de comportas controlamos a vazão d’água. Com isso conseguimos suprir estações de tratamento de água e disponibilizar água potável para cidades. Sem esses limites (restrições) as estações de tratamento não conseguiriam controlar a vazão para executar suas ações com a quantidade de água que viria.

Então vamos recomeçar… restrições não são algo ruim, eu gosto de dizer que é aquilo que vai me ancorar na realidade. Pegando OKRs (Objetivos e principais resultados) como exemplo, somos estimulados a indicar objetivos como “sonhos” a serem alcançados, mas sem considerar as restrições existentes, e que precisam ser gerenciadas ou ativadas, podemos ter como resultado muita frustração…

A maior dificuldade de falar do assunto do ponto de visto do Cynefin é uma certa ausência de exemplos que possam ser conectados e que traduzam da melhor maneira possível, seja por metáforas ou literalmente, com a nossa realidade, e esse é meu desafio nesse artigo.

Vamos começar conectando com o conceito dos 3(três) sistemas, utilizarei os exemplos do último artigo para facilitar a abstração:

  1. Sistema Ordenado – O sistema restringe os agentes;

Ex: A ação de comandantes dentro de aeronaves segue uma série de procedimentos padrão, que são necessários para uma decolagem segura.

  1. Sistema Caótico – Sistema totalmente irrestrito;

Ex: Durante uma situação de emergência, como um pouso forçado, ser obrigado a pousar em um rio, nesse caso a restrição que devemos aterrissar em terra firme foi removida diante das circunstâncias;

  1. Sistema Complexo-Adaptativo – O sistema restringe superficialmente os agentes, mas quando os agentes interagem dentro do sistema, o sistema é modificado.

Ex: Ao usarmos um simulador de voo, simulando uma situação de risco e alcançarmos resultados possivelmente previsíveis, qualquer interação nossa minimamente diferente altera o sistema, e com isso altera também o resultado esperado.

Ao entendermos com qual sistema interagimos começamos a entender com que tipo de restrição estaremos lidando.

Restrições de Contenção e Acoplamento

Partindo daqui, sob o ponto de vista do Cynefin, temos 2 tipos principais:

  1. Restrições de Contenção;
  2. Restrições de Acoplamento.

Restrições de Contenção são os limites em torno de algo, por exemplo, uma armadura é uma restrição de contenção, você não consegue crescer ou expandir além dos limites dela. No âmbito empresarial um exemplo seria sua própria expansão física, não há como uma empresa crescer além dos limites físicos existentes. Exceto se removermos essa restrição com outro espaço físico maior.

Restrição de Acoplamento definem as interações entre os agentes do sistema, o esqueleto humano é uma restrição de acoplamento, todo o crescimento e formação será acoplado as dimensões do esqueleto. Como exemplo imaginem o funcionamento do McDonalds e seu Speedee Service System, desde o pedido até a finalização do lanche as etapas são conectadas e funcionam na mesma ordem sempre, cada funcionário tem uma única tarefa para garantir a execução do fluxo.

Sistemas Robustos e Resilientes

Para melhor explicar a tipificação de restrições apontadas vamos introduzir mais 2 elementos, Sistemas Robustos e Sistemas Resilientes.

Sistemas Robustos são conhecidos, os seus limites são claros (Restrição de Contenção) e suas ligações são explicitas (Restrição de Acolamento). Um exemplo de Sistema Robusto seria um Software de Prateleira, onde seus limites de atuação e processos internalizados são moldados pelos parâmetros existentes, qualquer customização não é permitida.

Sistemas Resilientes se adaptam e são alterados sem perder sua identidade original. Como exemplo podemos ir para o oposto dos Software de Prateleira, e ver softwares de mercado com uma finalidade bem especifica, porém, podendo ser customizado a cada cliente, seja pelo próprio cliente ou seja pelo desenvolvedor, não por parâmetros e sim por alteração em seu código fonte.

Tipos de restrição

Primeiro vamos as restrições de sistemas robustos:

  1. Rígidas – Restrição claramente definida e explicita, com seus limites de acoplamento e contenção no limite. Novamente uso o exemplo do McDonalds e seu Speedee Service System, o fluxo é seguido de maneira mecânica sem margem para mudanças.
  2. Elásticas – Restrição que pode ter um grau de adaptabilidade no seu acoplamento ou contenção, porém limitado e ilusório. Como exemplo temos um Ambiente Operacional virtualizado, onde os recursos (memória, processamento e espaço em disco) podem ser expandidos sempre que necessário dando a impressão ilusória de serem infinitos;
  3. Amarras – Restrição semelhante a elástica, porém ela não é adaptável, é como se fosse apenas uma folga no acoplamento ou contenção entre dois agentes. Como exemplo temos um sistema de backup, que entra em funcionamento diante de uma falha. O backup é a “folga” no seu sistema uma vez que entre em funcionamento, imaginem que seu sistema está sem “folga”.

Em todos os tipos de restrição acima, mudanças que possam afetar um sistema robusto podem nos levar a falha catastrófica, pois nossa confiança no conhecido nos limita quanto a visibilidade do que uma variabilidade pode ocasionar.

Agora as restrições de sistemas resilientes:

  1. Mutantes – Restrição mais resiliente, porém difícil de ser gerenciada tanto quanto sua contenção quanto seu acoplamento, você consegue acompanhar, e até direcionar, sua evolução, desde que saiba que está ocorrendo. Como exemplo temos o turn over dentro de um projeto, você até consegue selecionar um perfil para reposição de acordo com sua necessidade, porém não tem como manter seu ambiente igual era antes;
  2. Permeáveis – Restrição que no caso de contenção permite ou não a passagem de algo, e no caso de acoplamento está conectada ou não, tudo de acordo com a necessidade do contexto. Como exemplo temos o comportamento de um firewall, que permite e nega acesso de acordo com suas regras e ainda pode “aprender” sobre ameaças bloqueando e liberando o acesso de acordo com a situação.
  3. Obscuras – Restrição cuja presença percebemos por seu efeito, mas que não temos como administrá-la ou vê-la diretamente no que tange a acoplamento e contenção. Como exemplo temos a Cultura Organizacional, ela afeta o comportamento e interações dos indivíduos de uma empresa, porém não conseguimos, diretamente, gerenciá-la.

Finalmente em nosso próximo encontro falarei sobre os domínios!

Se você quiser contribuir com exemplos sobre as restrições apresentadas, compartilhe conosco para que possamos, juntos, discutir e melhorar nosso entendimento!

Até a próxima!

Leandro Sanches
Agile Coach

Outras Publicações

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *