Work Is Work
12 Jan 2020
Tempo que escrevi ou falei sobre design organizacional, arrependi-me.Há algo em apostar uma posição que consegue provar que estou errado alguns anos mais tarde. Mas eu tenho pensado muito sobre isso novamente, e aqui está o que eu tenho. Ataca o caralho em.
A dada altura, todas as organizações percebem que está a abrandar. Os recursos demoram mais tempo, as pessoas passam mais e mais tempo em reuniões, e todos entram em pânico com estimativas e planejamentos. Se nós internalizamos tretas essencialistas sobre “jogadores B contratando jogadores C”, talvez fiquemos nervosos com o The Bar e com a contratação. Se estivermos ansiosos e incertos, podemos ficar com dúvidas sobre Agile ou Scrum ou o que quer que seja. Se formos propensos a vôos modernistas de fantasia, podemos decidir gastar nossas fichas de inovação tentando perturbar a indústria de 200.000 anos de idade, que se dedica a esquecer os humanos para trabalharem juntos. Se formos do tipo de fazer os nossos oito e chegar ao portão de embarque, nós o giz a subir como o preço do sucesso.
Estas abordagens raramente produzem resultados.
O nosso Dogmatic Slumber
A maior parte das explicações para o sucesso ou fracasso organizacional são tretas. Os relatos emic – ou seja, aqueles de dentro da organização – estão limitados aos conceitos e narrativas que existem dentro da organização. Eles podem estruturalmente servir como auto-narrativas e fomentar um senso de identidade e propósito dentro do grupo, mas porque vêm do equivalente epistemológico de um poço de gravidade, o poder explicativo fora dessa organização é geralmente terrível.
Se tomarmos a perspectiva etica – isto é, de fora da organização – podemos ver que as emicexplicações para o sucesso ou fracasso de uma organização têm contra-factuais prontamente disponíveis em outras organizações. Se organizações ágeis, planas, revisões de código, monorepos, escritórios abertos, sistemas tipográficos extravagantes, etc. foram realmente os fatores causais que se supõe serem, então por que tantas organizações adotam essas práticas sem sucesso? Por que existem outras organizações de sucesso que carecem dessas práticas? Como podemos dizer a diferença entre cum hoc, ergo prompter hocjust-so stories and real causal factors?
Mais importante ainda, podemos determinar a superveniência de algum conjunto de fatores sobre o desempenho organizacional, não apenas em um contexto particular, mas em todas as organizações possíveis? Isto é, são necessárias verdades a priori do desempenho organizacional?
Como acontece, existem.
Se você se contorce o suficiente, uma organização que faz trabalho é apenas um processo incrivelmente complexo, dinâmico, distribuído e paralelo. Nós temos muito boas ferramentas para entender os esboços de como esses trabalhos, datando pelo menos do comentário de Manabrea a Babbage de 1842 sobre sua máquina analítica. Agora, eu não vou fingir ter desenvolvido a psicohistória e dado como é difícil prever o comportamento mesmo de sistemas dinâmicos simples, um modelo totalmente preditivo de sucesso organizacional certamente parece impossível.
Mas como Kant tentando derivar as pré-condições necessárias da experiência subjetiva na Crítica da Razão Pura, nós podemos esboçar os limites do que uma organização é capaz de fazer e a dinâmica disso à medida que ela cresce. Da mesma forma que o conhecimento a priori que a libra pesa mais de cinco libras informa a quantidade de merda que podemos esperar que caiba num saco, modelar organizações como processos paralelos pode informar a forma como as desenhamos.
O que acontece dentro desses limites é uma questão de execução e esforço; o que acontece fora desses limites é impossível.
O teto é baixo
A capacidade de trabalho de uma organização é escalonada, no máximo, linearmente à medida que novos membros são adicionados. Cada novo membro de uma organização adiciona um número constante de horas de trabalho possíveis ao total de horas de trabalho possíveis dos funcionários existentes da empresa. A Lei de Amdahl afirma que, dada uma tarefa fixa, uma solução paralela utilizando processadores NNN será executada mais rapidamente do que uma solução sequencial por um fator de NNN.
As recursos paralelos são adicionados, o tempo total gasto na porção paralela da tarefaamortiza a zero; em contraste, o tempo total gasto na porção sequencial da tarefa nunca cai abaixo de um valor mínimo. Isto é tão verdadeiro para um grupo de pessoas tentando escrever software quanto para um grupo de CPUs tentando modelar o comportamento das estrelas na galáxia. Nossa intuição nos diz que organizações maiores exibem comportamentos superlineares, mas este literalmente não pode ser o caso se a contratação for a única variável na equação. Portanto, nossa única esperança de produtividade superlinear reside na mudança da tarefa que está sendo executada. Felizmente, a capacidade de trabalho não é o mesmo que a produtividade.
Como uma organização contrata mais funcionários, o trabalho em melhorias de produtividade deve ser uma prioridade constante. Ferramentas internas, treinamento e serviços devem ser desenvolvidos e colocados em campo para garantir que todos os membros sejam capazes de trabalhar em problemas de impacto continuamente crescente. A busca incessante dos multiplicadores de força é o único caminho possível para melhorias de produtividade superlineares à medida que a organização cresce.
Finalmente, deve ser enfatizado que este limite linear na capacidade de trabalho é um teto, não um piso.Não se pode fazer melhor do que linear, mas certamente se pode fazer pior. Há muitos outros fatores que atuam como um arrastamento na capacidade de trabalho, e melhorias na produtividade de toda a organização são fundamentais para a sua redução.
O piso é lava
Os custos de contenção crescem de forma superlinear à medida que novos membros são adicionados. Soluções paralelas a tarefas raramente são perfeitamente concorrentes (e de fato, tais tarefas são corretamente chamadas de “embaraçosamente paralelas”), e muitas vezes requerem algumas seções críticas seqüenciais. A linha deCPUs ou pessoas esperando para entrar em uma seção crítica pode ser modelada como uma fila, o que nos permite usar a teoria da fila para entender como o tempo de ciclo da fila muda à medida que o tamanho da fila cresce. Se wemodelarmos a linha para uma seção sequencial como uma fila G/G/1G/G/1G/G/1, ou seja, sem fazer nenhuma afirmação sobre o processo de chegada ou distribuição do tempo de serviço, mas assumindo um único servidor de fila (ou seja, um único servidor de fila) apenas uma CPU ou pessoa pode segurar o bloqueio), chegamos à Fórmula do Kingman para o tempo médio de espera:
E(Wq)≈(ρ1-ρ)(ca2+cs22)τ\mathbb E(W_q) {\i1}approx {\i1}left( {\i}{\i1-frrac{\i}{\i}{\i1-frrac{c_a^2+c_s^2}{\i}{\i} {\i1}aa(Wq)≈(1-ρρ)(2ca2+cs2)τ
Notably, o tempo de espera de uma fila aumenta não linearmente com respeito a ρ\rhoρ (utilização) equadraticamente com respeito a cac_aca (o coeficiente de variação para chegadas) e csc_scs (o coeficiente de variação para tempos de serviço). (Esta é a forma quantificada da intuição de que as filas estão vazias ou transbordando.)
A não-linearidade disto deve nos dar uma pausa, pois aumentar o número de pessoas que lutam por um recurso cinzento é a mesma coisa que aumentar ρ\rhoρ. Se a contenda sobre esses recursos não for gerida, o crescimento organizacional pode resultar em aumentos catastróficos no tempo de espera. Em algum momento, adicionar novos membros pode fazer com que a produtividade geral da organização diminua em vez de aumentar, já que o aumento do tempo de espera devido à contenção é maior do que o aumento da capacidade de trabalho. (Esta é a versão organizacional dos picos de latência que vemos como os servidores ficam sobrecarregados.)
Estes recursos compartilhados não são necessariamente coisas físicas, como banheiros ou impressoras; eles podem ser bedigitais, como arquivos em um repositório de código fonte ou tickets em um rastreador de bugs, ou organizacionais, como revisões de código fonte ou tarefas de trabalho. Assim como na escrita de aplicações altamente atuais, organizações de alto desempenho em buildinghing requerem uma busca cuidadosa e contínua por recursos compartilhados e o desenvolvimento de estratégias explícitas para mitigar seu impacto na performance.
Uma estratégia comumente aplicada, mas raramente bem sucedida, é a utilização de recursos externos – por exemplo, consultores, agências, aumento de pessoal – como uma corrida final em torno da contenção nos recursos internos. Enquanto os consultores podem, de fato, mover-se rapidamente em um ambiente de baixa concentração, a integração de seu produto de trabalho nos recursos contendidos muitas vezes tem o efeito de balonar csc_scs (a variação do tempo de serviço, ou quanto tempo uma seção crítica é mantida). Isto produz um pico quadrático em tempos de espera, o que aumenta a utilização que, por sua vez, produz um pico superlinear em tempos de espera (a teoria de enfileiramento é uma amante dura), e desenvolver heurísticas sem estado para coordenar o acesso a recursos compartilhados (por exemplo, agrupar os funcionários em equipes).
As aplicações com camadas pesadas, quanto maior a distância entre aqueles que projetam a organização e o trabalho sendo feito, maior o risco de pontos de contenção não gerenciados. Os métodos de organização de cima para baixo podem levar a subdivisões que parecem esforços paralelos quando listados em um slide, mas que são, na realidade, altamente interdependentes e interligados. A contratação de pessoal com esforços altamente sequenciais asif eles foram inteiramente paralelos leva à catástrofe.
O inferno são outras pessoas
Custos de coerência crescem quadraticamente à medida que novos membros são adicionados.Trabalhar em tarefas complexas usando recursos paralelos (ou com um grupo de pessoas) requirescomunicação. Um grupo de 333 tem 333 díades; um grupo de 444 tem 666; um grupo de 555 tem101010; um grupo de pessoas NNN tem N2-N2\frac{N^2-N}{2}2N2-N possíveis díades. A comunicação ponto-a-ponto (ou seja, falando entre si) pode ser modelada como a ativação de um subconjunto desses díades.
Embora algumas organizações sejam mais falantes que outras, essa comunicação é essencial para a informação sharingof e a coordenação da ação. Mas não é grátis. A comunicação leva tempo. Se a percentagem de pessoas que precisam conversar entre si para fazer algo se mantém constante à medida que a organização cresce (ou seja, x%x\%x% de todos os díades), o tempo total gasto em comunicação crescerá de forma esquadrática à medida que a capacidade de trabalho da organização cresce linearmente.
Podemos considerar as reuniões de grupo como uma estratégia de grupo para reduzir o número de entidades envolvidas na comunicação ponto a ponto, mas a eficácia desta estratégia depende fortemente da sobreposição de grupos e das estruturas de grupo. O grau de sobreposição dos grupos é, sem dúvida, o mesmo fator que a porcentagem de díades necessárias para a comunicação. Se os grupos forem delimitados, o crescimento dos custos de coerência será reduzido por um fator constante, mas ainda assim cresceráquadraticamente. Pode ser tentador tentar dar um murro na coerência e simplesmente cavalgar sujo, mas mesmo as formas sutis de incoerência têm custos comerciais massivos. A única estratégia escalável para conter custos de incoerência é limitar o número de pessoas com as quais um indivíduo precisa conversar para fazer seu trabalho a um fator constante.
Em termos de desenho organizacional, isto significa limitar tanto os tipos quanto o número de constituintes consultados no processo da organização. Cada pessoa ou grupo adicional em uma matriz de atribuição de responsabilidade aumenta geometricamente a área dessa matriz. Cada atribuição de responsabilidade adicional nessa matriz aumenta geometricamente o custo da coerência organizacional.
É importante notar também que essas comunicações em pares não precisam ser formais, planejadas ou até mesmo conhecidas para que haja custos. Nem o seu manual do colaborador nem o seu calendário são precisos sobre como o trabalho na organização é feito. A menos que a sua organização tenha pessoal com zombies, os membros da organização estarão constantemente subvertendo o procedimento operacional padrão para que o trabalho seja realmente feito. Mesmo as formigas improvisam. Uma contabilidade precisa desses custos ocultos só pode ser desenvolvida através de uma análise honesta, irrepreensível e contínua de ponta a ponta do trabalho como ele está acontecendo.
Princípios de Além do Espaço e do Tempo
Contemplemente o trabalho, os grupos pequenos, e os recursos locais.
Quando apresentados com um conjunto de problemas que crescem superlinearmente intratáveis à medida que a NNN aumenta, nossa melhor aposta é manter a NNN pequena. Se a intenção da organização é aumentar a entrega de valor contratando mais pessoas, os esforços de trabalho devem ser tão independentes quanto possível. Os líderes devem desenvolver práticas e processos para assegurar que os esforços de trabalho que suas estratégias consideram paralelos sejam paralelos. Recursos compartilhados devem ser continuamente gerenciados para a contenção, e onde possível, os recursos que um grupo precisa devem ser colocados com esse grupo (por exemplo, se o trabalho envolve muito design, equipe um projetista para esse grupo). A doutrina de armas combinadas não é apenas para soldados.
Priorizar o desenvolvimento de multiplicadores de força.
Se uma organização está trabalhando nos mesmos tipos de problemas que nos anos anteriores, ela é motivo de preocupação. Equipes dedicadas ao ferramental interno devem ter pessoal e ter o direcionamento explícito de construir ferramentas e otimizar processos para ajudar a aumentar a produtividade de seus colegas de trabalho. Se a percentagem da organização dedicada a melhorar a forma como a organização funciona começa a cair, pergunte a si mesmo – atingimos um máximo global ou local? Vá por muito tempo com ferramentas de alta alavancagem, mas fique atento se elas realmente ajudam ou não.
Se possível, fatorize produtos de trabalho em módulos independentes; se não, cresça lentamente e otimize.
Se o seu produto de trabalho – por exemplo, base de código, documentos, etc. – pode ser fatorado em módulos independentes, doso. A palavra-chave ali é independente. Cortar suas merdas em cem microserviços não o ajudará se todos precisarem mudar dez deles para conseguir fazer alguma coisa. Alguns problemas não são particularmente amenizáveis à partição; estes também são problemas que não se beneficiam muito de trabalhadores adicionais. Se o problema é um ponto fixo, veja maneiras de otimizar a distribuição seqüencial do trabalho. Saiba que atirar corpos a esse problema produzirá um clusterfuck.
Escalar esforços organizacionais através de um portfólio de produtos sinérgicos.
Os negócios mais inteligentes começam com um único produto. Eles se alongam em suas hipóteses de produtos, colocam seus ovos em uma única cesta, e balançam para as cercas. Se tiverem a sorte de ter tração, dobram a aposta nisto. Terminado. E acabou. E acabou-se. Em algum momento, eles têm vários batalhões de pessoas moendo ao redor, todos tentando descobrir quem é o dono do turbo-cabulador UI e se as novas marzelvanes serão ou não totalmente anti-gravistas pelo grande impulso de marketing de outono.
Para evitar isso, os líderes da organização devem manter o desenvolvimento de um portfólio de produtos como objetivo anexo. As características ou idéias de produtos que são complementares à estratégia de overallbusiness da organização, mas que não coexistem naturalmente com o produto principal, podem ser desenvolvidas como produtos separados por equipes independentes. Temos evidências de que os cronogramas de desenvolvimento de software podem ser reduzidos em, no máximo, 25%; deve ser fácil escolher entre um único produto em 18 semanas ou dois produtos em 24 semanas.
Produtos novos de sucesso podem ser incrementalmente integrados com os produtos já existentes, onde o makessense, e ferramentas, bibliotecas e frameworks podem ser desenvolvidos por equipes multiplicadoras de força para reduzir tanto o time-to-market de novos produtos quanto os custos de transporte dos produtos existentes. Novos produtos mal sucedidos podem ser retirados graciosamente do mercado a um custo dramaticamente mais baixo do que características de complexidade semelhante. Afinal, a remoção de uma característica de um produto envolve a mesma contenção e os mesmos custos de coerência que a adição de uma característica. É raro que um recurso apresente custo de transporte maior do que o custo de sua remoção, portanto a prevalência de recursos do Flying Dutchman.
Como um exemplo concreto da virtude de um portfólio de produtos, imagine o Amazon Web Services como um único produto, com uma equipe de cem mil almas condenadas e com frente para uma IU que é apenas uma série de botões que permitem o fornecimento e operação de máquinas virtuais, bancos de dados, lagos de dados, aplicações robóticas, aplicativos de realidade aumentada, dinguses IoT, e muito mais. Tal criatura implodiria sob seu próprio peso.
Em vez disso, Amazon Web Services é um portfólio de produtos sinérgicos. EC2 tem suas próprias características independentes, desenvolvidas e operadas por um conjunto independente de funcionários. Quando suas necessidades podem ser supridas por outro produto AWS (por exemplo, armazenamento de imagens de máquinas virtuais no S3, ou envio de métricas para o CloudWatch), é introduzida uma integração entre produtos. Esta estrutura de produto permite a estrutura organizacional altamente atual que permite que a Amazon coloque em campo um número de novos produtos a cada ano, enquanto continua a apoiar e desenvolver produtos existentes. Os Failedservices podem ser colocados no ar ou retirados sem perturbar o resto da organização.
Matrizes de atribuição de responsabilidades pequenas, esparsas e locais.
Quando uma organização amadurece, as funções ad-hoc são muitas vezes desenvolvidas em equipes completas. Essa especialização é geralmente crítica para a construção de economias de escala internas, mas a formalização de novos círculos eleitorais deve ser mantida sob controle. Cada coluna da matriz de atribuições de responsabilidade expande geometricamente o conjunto possível de interações necessárias; cada atribuição na matriz é um ponto de coordenação que requer uma espera. Quando uma matriz indica uma relação de alto nível entre dois grupos (por exemplo, um grupo de engenheiros trabalhando em um recurso e os advogados tentando assegurar a conformidade legal desse recurso), devem ser feitos esforços para reduzir o custo dessa interação através da colocação de seus membros (por exemplo (por exemplo, incorporar um advogado com os engenheiros).
Prioritizar a distribuição assíncrona de informação sobre síncrona.
Uma fonte significativa de demanda de falhas para reuniões e atualizações de status é o desejo dos líderes organizacionais de se manterem a par de quem está fazendo o quê. Essa consciência situacional é de fato importante, mas tentar mantê-la através da convocação de reuniões, envio de mensagens às pessoas em Slack e captura de pessoas nos corredores é um significativo arrasto sistêmico na produtividade organizacional.
Um modelo melhor para se manter informado sobre os desenvolvimentos, uma vez que a escala da organização é para os grupos topublish status updates como parte da cadência regular de seu trabalho. Os líderes podem ler essas atualizações de forma assíncrona e, caso haja necessidade, iniciar conversas adicionais e síncronas para fazer perguntas, fornecer feedback, etc.
As reuniões síncronas devem ser reservadas para colaboração de baixa latência em questões complexas; da mesma forma, a colaboração deve ser reservada para reuniões síncronas.
O que acontece dentro dos limites é importante.
Que conhecemos alguns dos limites do desempenho organizacional e sua dinâmica não desculpa o uso de nossa empatia para construir organizações humanas. As empresas são grupos de pessoas sendo compensadas por terem que passar algumas de suas vidas finitas sem estar com seus parceiros, filhos, animais de estimação ou passatempos super estranhos. Elas merecem ser membros de organizações que honram esse tempo, assegurando que seu trabalho tenha valor e significado. Não há um modelo matemático que nos guie para esse objetivo.
Agradecimentos a vários Fiascans por reverem esse post. Quaisquer erros neste artigo são meus, não deles.