Por que colocar sua startup no Fluxo Unificado?

O Fluxo Unificado na Teoria

Teoria das Filas. Ela está aí a pelo menos um século, já que Agner Krarup Erlang publicou seu primeiro estudo sobre o assunto em 1909. Bancos passaram a usar. Supermercados passaram a usar. Locais que fazem vendas de ingressos para qualquer coisa passaram a usar. Praticamente tudo que possui fila passou a usar. Por que empresas que desenvolvem software não? Vamos analisar, em uma série de artigos, como o fluxo unificado pode ajudar a sua empresa.

Eu tenho uma teoria: negligência em um dos aspectos da cognição: a associação. Percebemos a teoria das filas em quase tudo, mas não conseguimos perceber outras oportunidades de aplicação, ora porque não enxergamos a fila, ora por não percebemos que é possível aplicar. A teoria das filas é um ramo de estudo da probabilidade que estuda, errr, filas. Existe uma vastidão de estudos na WEB para que o leitor possa se aprofundar e não vou entrar em teorias e fórmulas como a Lei de Little e Lei de Fluxo Forçado, assim como não vou discorrer sobre os exemplos de sistemas de fila, como M/M/1 ou D/M/1/∞ /∞/RR. Como eu disse, existe um vasto material sobre o assunto na web.

O que nos importa aqui é o conceito e o comportamento no desenvolvimento de software. Vamos começar pelo conceito. Você já parou para pensar em por que quase todos os sistemas de fila no mundo hoje usam uma abordagem de fila única? Variabilidade. Se você tem 5 servidores e 5 filas, o que acontece com a fila do primeiro servidor, caso ele não possa mais atender? E se o cliente sendo atendido naquele momento demanda muito mais tempo que a média? As pessoas naquela fila “deram azar”? Com uma fila por servidor, o sistema fica muito mais sensível a impactos de gargalos, fica menos previsível, clientes ficam irritados e o negócio perde dinheiro. Visando resolver este grave problema para o negócio que, hoje em dia, quase todos os sistemas de fila são: fila única para múltiplos servidores.

Mas em desenvolvimento de software? Demanda parada na fila significa perda de dinheiro?

A segunda dimensão que vamos examinar rapidamente é o comportamento interessante dos elementos em fila: eles podem se subdividir. É como se eu sofresse uma meiose no meio da fila do banco. Esta característica aumenta muito a variabilidade e reduz a previsibilidade, de uma forma não linear. A não linearidade se dá por outro motivo simples: nem sempre essa divisão acarreta no aumento da fila. Isso porque, neste caso, o tempo do elemento dentro do sistema (que está servindo a fila) depende diretamente do seu tamanho, custo de coordenação e o custo de transação. A partir da análise destes custos, você definirá o tamanho de lote ideal, para aquele fluxo, para aquele momento. Um dos aspectos mais fascinantes da gestão de fluxo é a vastidão de dimensões que pedem uma capacidade analítica apurada, mas isso é assunto para outro post.

O Fluxo Unificado na Prática

Bom, sabemos que temos uma fila selvagem e imprevisível. Uma Meiosis Queue. É importante para este texto notarmos que, no mundo real, este é um tipo muito raro de fila e portanto necessita de soluções também raras. Talvez derivações das soluções já existentes para outros tipos de fila. Talvez resida aí a maior dificuldade em trazer os conhecimentos de outros sistemas para o desenvolvimento de software. Como em toda solução inovadora, o método científico é imprescindível. Experimentação, observação, ajustes, retroalimentação. Desta observação precisamos extrair as perguntas certas, que nos levarão ao objetivo de um fluxo mais eficaz.

Segundo a Wikipedia:

A teoria da filas é um ramo da probabilidade que estuda a formação de filas, através de análises matemáticas precisas e propriedades mensuráveis das filas. Ela provê modelos para demonstrar previamente o comportamento de um sistema que ofereça serviços cuja demanda cresce aleatoriamente, tornando possível dimensioná-lo de forma a satisfazer os clientes e ser viável economicamente para o provedor do serviço, evitando desperdícios e gargalos. tweet

No desenvolvimento de software podemos usar a teoria das filas no suporte à tomada de decisão. Foi em um destes processos de tomada de decisão que optamos por trabalhar com um fluxo unificado de demandas. Esta decisão, nos possibilitou atuar de maneira mais eficiente com a variabilidade, a mesma motivação encontrada nas outras áreas onde o fluxo unificado foi implantado. Quando estudamos processos e gestão, chamamos isso de abstração. Ao adotar uma forma eficiente de lidar com a variabilidade, passamos a caminhar em direção a um estado fluido de informações onde, em vez de brigar com a variabilidade, nós a abraçamos, entendendo como ela funciona, porque ela ocorre e como podemos reagir.

Além da variabilidade interna no processo, startups sofrem com a variabilidade na natureza das demandas no seu sistema interno. No ambiente de uma startup é muito comum termos poucas pessoas com múltiplas funções. Neste cenário as técnicas de mapeamento de fluxo tradicionais não cabem mais, visto que precisaríamos de muitos fluxos mapeados com um alto nível de dependência entre eles e já sabemos que alta dependência significa alto custo de coordenação.

Esta natureza heterogênea de tipos de demandas solicitando os serviços do sistema torna o fluxo unificado de demandas uma opção viável às alternativas que temos hoje. É justamente esse o assunto do próximo post.