paint-brush
Quebrando barreiras organizacionais para acelerar o desenvolvimento de softwarepor@hacker9096769
Novo histórico

Quebrando barreiras organizacionais para acelerar o desenvolvimento de software

por Illia Halashko9m2024/07/13
Read on Terminal Reader

Muito longo; Para ler

Atrasos na entrega de recursos em empresas de tecnologia geralmente decorrem de questões organizacionais, e não de problemas puramente técnicos. Ao compreender a estrutura da empresa, a hierarquia dos funcionários, as responsabilidades da equipe e o processo de entrega de recursos, você pode identificar as causas raízes e implementar mudanças incrementais para melhorias.
featured image - Quebrando barreiras organizacionais para acelerar o desenvolvimento de software
Illia Halashko HackerNoon profile picture
0-item


Compreender por que certos recursos não são entregues muitas vezes pode ser um desafio. A gestão pode culpar as equipas técnicas, enquanto as equipas técnicas apontam o dedo para a gestão. Enquanto isso, o lado empresarial fica preso no meio, tentando identificar a causa raiz enquanto busca resultados, independentemente das circunstâncias. Este cenário normalmente surge após um crescimento significativo da empresa ou quando problemas anteriores, antes fáceis de resolver, foram negligenciados ao longo do tempo. É um equívoco comum pensar que todos os problemas em uma empresa de tecnologia são puramente técnicos; isso está longe de ser verdade.

Neste artigo, descreverei áreas dentro da organização de uma empresa que podem prejudicar significativamente a entrega de recursos. Também sugerirei instruções para investigar para identificar as causas raízes, que podem então ser escaladas ou resolvidas dentro do seu nível de autoridade.

É crucial compreender nosso ambiente de trabalho antes de implementar quaisquer alterações ou melhorias. Embora muitos livros esclarecedores tenham sido escritos sobre esse assunto, nem todas as abordagens serão adequadas para todas as empresas. Isto não é um reflexo de ter feito algo errado, mas sim um reconhecimento da natureza única de cada empresa.

Uma observação importante é que os insights compartilhados aqui estão principalmente relacionados ao desenvolvimento de software e são mais aplicáveis a empresas ou departamentos com 50 ou mais funcionários.

Estrutura organizacional

Em primeiro lugar, entenda o tamanho e a estrutura da sua empresa. Identifique os vários departamentos e esclareça as expectativas de cada um. Avalie se todos esses departamentos são necessários. Crie um diagrama da estrutura organizacional, detalhando cada departamento e suas funções, garantindo que você entenda o que eles fazem e por que existem. Freqüentemente, cada departamento consiste em várias equipes – inclua-as também em seu diagrama, mas não as descreva por enquanto, apenas continue com os nomes das equipes.

À medida que as empresas crescem, as estruturas organizacionais podem tornar-se complexas, dificultando o acompanhamento do progresso. Nessa complexidade, você pode perder de vista a lógica original por trás da criação de determinados departamentos ou equipes. Algumas equipes podem ter sido criadas para resolver problemas que não são mais relevantes. Aqui está como pode parecer em alto nível.



Depois de ter um diagrama claro de sua estrutura organizacional, o que vem a seguir?

Hierarquia de funcionários

A seguir, é essencial mapear a hierarquia de seus funcionários. Compreender quem se reporta a quem e porquê é crucial. Os gestores de linha precisam comunicar de forma eficaz com os seus subordinados, quer gerem uma grande unidade de negócios ou uma pequena equipa. A comunicação deve ser clara, seja em linguagem técnica ou comercial, pois lidar com ambas pode ser desafiador. Em empresas maiores, podem existir gestores diretos e funcionais com áreas de responsabilidade distintas, que devem estar claramente representadas no seu diagrama hierárquico.

Uma hierarquia de funcionários não apenas esclarece as linhas hierárquicas, mas também ajuda a identificar setores verticais dentro da organização. Verticais são estruturas hierárquicas que servem como recursos compartilhados entre vários departamentos, como designers, RH, DevOps e até mesmo desenvolvedores. Embora os setores verticais possam ser muito benéficos, às vezes podem tornar-se gargalos, especialmente quando os desenvolvedores trabalham em projetos diferentes e se reportam a gerentes que não estão familiarizados com as metas de negócios ou com os desafios técnicos. Como resultado, os desenvolvedores não recebem feedbacks adequados e os gerentes não têm um contexto adequado. Portanto, compreender a hierarquia é vital para identificar e analisar potenciais problemas ou priorização das tarefas. No final você terá algo assim.



Anotação

CEO – CEO
CPO – Diretor de Produto
CTO – Diretor Técnico
COO – Diretor Operacional
HD — Chefe de Design
PO - Dono do Produto
HE - Chefe de Engenharia
HS – Chefe de Vendas
HM - Chefe de Marketing
D – Desenvolvedor
PM - Gerente de Produto
TL – Líder Técnico
EM — Gerente de Engenharia
S - Gerente de Vendas
M - profissional de marketing


Compare sua estrutura organizacional com suas linhas hierárquicas para obter insights sobre o envolvimento de cada funcionário em diversas atividades. Além disso, alinhar a sua estrutura organizacional com a hierarquia dos funcionários pode ajudar a determinar se os indivíduos estão trabalhando nos mesmos departamentos e equipes e em direção a um objetivo comum. O modelo de mapeamento depende totalmente de você, mas poderia ser assim.


Mapeando sua hierarquia de funcionários em um departamento

Responsabilidades da equipe

É importante definir claramente a área de atuação de cada equipe. Se uma equipe trabalha com código, especifique os serviços que ela usa e os que possui. Surpreendentemente, muitas vezes podem ser diferentes. Determine se a equipe opera exclusivamente dentro de um departamento ou se é uma equipe de plataforma que trabalha nos principais recursos utilizados por outras equipes sem alterá-los diretamente.

Criar uma tabela pode ser muito útil, com as seguintes colunas: nome da equipe, departamento, lista de serviços próprios, lista de serviços gerais que a equipe pode modificar, mas não possui (idealmente, não deveria haver tais serviços) e uma breve descrição . Esta tabela irá ajudá-lo a examinar se várias equipes estão trabalhando na mesma base de código, levando a conflitos, ou se há falta de clareza em relação às suas áreas de responsabilidade. Também pode revelar se uma equipe está principalmente corrigindo bugs ou se envolvendo em várias tarefas sem um foco claro.

Este nível de detalhe é crucial para identificar sobreposições, conflitos e lacunas nas responsabilidades da equipe, garantindo uma colaboração mais tranquila e uma execução mais eficiente do projeto.

Responsabilidades do funcionário

Além de descrever as equipes, é fundamental entender as posições gerais dos colaboradores e preparar uma descrição detalhada de suas responsabilidades. Muitas vezes, o que a gestão prevê pode diferir significativamente do que os funcionários estão realmente fazendo. A indústria de desenvolvimento de software possui uma variedade de posições e as expectativas podem variar muito de empresa para empresa. Por exemplo, a função de um Gerente de Engenharia pode diferir amplamente, sem mencionar funções como Gerentes de Entrega, Cientistas de Dados, Arquitetos, Líderes Técnicos e assim por diante. Em algumas empresas, pode-se esperar que uma única pessoa desempenhe múltiplas funções.

Definir expectativas claras para cada posição é essencial. Essa clareza não só ajuda a monitorar as atividades de maneira adequada, mas também garante que os funcionários entendam o que se espera deles e o que está fora do seu escopo. Isso se aplica a todos os cargos dentro da organização. Definições claras de funções ajudam a evitar sobreposições, reduzir a confusão e garantir que todos trabalhem em prol de objetivos comuns de maneira eficiente e organizada.

Processo de entrega de recursos

Até agora, você deve ter uma compreensão clara da estrutura da sua empresa, da hierarquia dos funcionários e de suas responsabilidades. Embora as coisas possam parecer confusas, o objetivo é primeiro compreender o estado atual antes de fazer qualquer alteração. Agora é hora de descrever seu processo de entrega de recursos — como os recursos de negócios passam da ideia inicial à produção.

Por favor, não se concentre aqui nos aspectos técnicos como CI/CD, mas no fluxo do negócio para os desenvolvedores, assumindo que os desenvolvedores escrevem o código e o implantam diretamente na produção. O objetivo é identificar quaisquer problemas em seu processo, desde a empresa até a equipe, e ver até que ponto os funcionários se alinham com ele.

Considere estes aspectos:

  • Com que frequência você planeja novos recursos e atribui trabalho para cada departamento e equipe?
  • Como você define e mede os principais indicadores de desempenho?
  • Você usa marcos? Quem está envolvido na sua preparação inicial? Como você os planeja com a equipe?
  • Quem coordena o processo de planejamento e execução?
  • Você é realmente uma empresa ágil? Você usa frameworks como SAFe, Prince2 ou PMP ou tem algo personalizado que funciona para você?
  • Como você lida com tarefas complexas entre equipes e controla o progresso? Você tem uma abordagem estruturada ou confia que as coisas serão resolvidas de alguma forma?

Lembre-se de que cada nível de gestão e de relatórios acrescenta complexidade e incerteza, independentemente da direção. Em última análise, o seu diagrama de processo deve responder a uma pergunta simples: “Como?”

Você pode brincar com os modelos e ajustá-los às suas necessidades. Aqui está um exemplo de processo de entrega de alto nível, sem atores-chave que regulam a entrega, mas com prazos.



Se você não tiver certeza de como criar este diagrama, considere usar BPMN (Business Process Model and Notation) ou um formato mais simples, como retângulos e linhas, para garantir clareza e compreensão entre todas as partes interessadas. A chave é tornar o processo claro e compreensível.

Colete feedback

Depois de mapear a estrutura da empresa, a hierarquia dos funcionários, as responsabilidades das equipes e dos cargos e o processo de entrega, compartilhe todas as suas descobertas com a organização e realize uma pesquisa, de preferência anônima. Esta linha de base destaca como sua empresa opera. Embora você mesmo possa ter preparado esta visão geral ou delegado algumas tarefas, é provável que desenvolvedores, designers e analistas não estejam diretamente envolvidos. O feedback deles é crucial para avaliar a precisão de suas descobertas.

Peça aos funcionários que avaliem a qualidade da sua documentação. O que eles pensam sobre o processo de entrega? Reflete verdadeiramente como as coisas são feitas? Onde eles veem impedimentos?

Espere uma variedade de reclamações e feedback que o ajudarão a refinar suas descobertas para melhor corresponderem à realidade das operações da empresa. Este feedback é vital, pois o contexto muitas vezes se perde em vários níveis de hierarquia, e a coleta de informações de todos os níveis fornecerá uma imagem mais clara e precisa da organização.

Estimar resultados

Agora que você tem uma descrição abrangente de como sua empresa ou seus departamentos operam, você pode começar a analisar e buscar possíveis problemas. Esta linha de base fornece um ponto de partida claro para a compreensão e resolução de problemas.

Aqui estão algumas áreas nas quais focar:

  • Seus departamentos estão estruturados? As linhas de subordinação são claras?
  • Os gerentes de linha podem realmente fornecer feedback sobre sua área de responsabilidade?
  • Existe confusão ou incerteza na transformação de requisitos de negócios em tarefas técnicas?
  • Existem dependências de outras equipes que causam atrasos durante o desenvolvimento?
  • Os colaboradores estão envolvidos em atividades que fogem à sua principal área de responsabilidade, dificultando as suas tarefas principais?
  • Quão bem a hierarquia dos funcionários se alinha com a estrutura da equipe?
  • A hierarquia de relatórios é eficaz ou existem lacunas na comunicação e no contexto?
  • Equipes diferentes estão trabalhando nos mesmos serviços, gerando conflitos e perda de tempo na decisão de propriedade das tarefas?
  • Existem equipes ou departamentos sem responsabilidades claramente definidas ou faltando participantes importantes?
  • Algumas equipes não estão integradas em nenhum departamento?

Ao final, você poderá preparar uma lista de problemas reais que sua empresa tem, é algo em que você estará trabalhando. Priorize-os desde os críticos que exigem interação imediata até melhorias “boas para se ter”.

Como fazer alterações

Você pode estar se perguntando: “Tudo isso parece ótimo, mas como posso realmente melhorar as coisas?” Essa é uma boa pergunta, e a resposta honesta depende dos problemas específicos que você identifica e das necessidades do seu negócio. No entanto, um conselho crucial é evitar tentar mudar tudo de uma vez. Em vez disso, implemente pequenas mudanças de forma incremental, avalie os resultados e repita. Lembre-se de que a abordagem ágil funciona não apenas no desenvolvimento de software, mas pode ser aplicada a qualquer tipo de mudança organizacional.

Aqui estão algumas etapas para orientar seu processo de melhoria:

  • Certifique-se de que os funcionários saibam exatamente o que suas funções envolvem e o que está fora de suas responsabilidades.
  • Crie departamentos ou domínios bem definidos e atribua equipes específicas a cada domínio.
  • Defina áreas de responsabilidade claras e minimize as sobreposições entre departamentos e equipes.
  • Considere familiarizar-se com a abordagem Topologias de equipe, que apresenta equipes de plataforma, alinhadas ao fluxo, de capacitação e de subsistemas complicados para cobrir vários aspectos do desenvolvimento de software.
  • Revise e ajuste a hierarquia de seus funcionários para alinhá-la com os domínios e equipes recém-estabelecidos.
  • Garantir que as estruturas de relatórios sejam claras e que o acompanhamento do progresso seja simples.
  • Escolha a metodologia ou estrutura que você usará para entrega de recursos e acompanhamento de resultados.
  • Teste as alterações em qualquer departamento, de preferência não crítico, e avalie o impacto, refine sua abordagem com base no feedback e nos resultados.
  • Melhore continuamente aplicando a mentalidade escolhida às mudanças organizacionais.


Seguindo essas etapas, você pode fazer mudanças incrementais e informadas que melhoram gradualmente a eficiência e a eficácia da sua organização.

Resumo

O objetivo foi destacar questões comuns que podem surgir em qualquer empresa ou departamento. Evitei intencionalmente recomendar estruturas ou abordagens específicas porque cada empresa tem objetivos e estruturas únicas e é crucial decidir o que funciona melhor para você.

Novamente, é fácil colocar a culpa nos desenvolvedores, mas lembre-se, eles podem não ter conhecimento das prioridades de negócios ou serem bloqueados por processos de entrega pouco claros. Às vezes, a própria empresa cria bloqueadores inconscientemente. Espero que este artigo ajude a dar os primeiros passos em direção à melhoria.