DevSecOps

8 set, 2015

Liderança no desenvolvimento de software

Publicidade

Caro leitor,

[Nota do editor: Este é um editorial que foi publicado originalmente no Freshmeat, em 2000.]

Eu pra todo mundo: Oi, meu nome é Cal… e eu sou… Eu sou um gerente.

Todo mundo: Oi, Cal!

Eu sou um desenvolvedor que tomou a decisão consciente de mudar para gestão. Minha formação, minha experiência e o meu amor sempre foram o desenvolvimento de software. Eu trabalhei com gerentes de vendas, gerentes de negócios, e um CTO (arrepio) que acreditava que todos os bons softwares já tinham sido escritos e, por isso, não era preciso escrever nada; poderíamos simplesmente comprar tudo o que precisássemos. Eu mudei para a gestão por uma razão: tive um gerente que me “pegou” e me mostrou, com exemplos, que desenvolvedores podem se tornar grandes chefes para outros desenvolvedores (Obrigado, Paul M.!).

Durante a minha carreira como desenvolvedor, eu aprendi muitas coisas diferentes, mas a única que levei comigo é este axioma:

Se você nunca foi um desenvolvedor de software, você não tem nada a ver com o gerenciamento de desenvolvedores de software.

E eu fiz isso de novo. Pelo menos um terço de vocês agora está com raiva de mim. Mas, independentemente de seus sentimentos em relação à minha pessoa, mantenho a minha declaração porque, volta e meia, seja por meio da experiência pessoal de 24 anos ou de histórias de guerra dos outros, ela sobreviveu.

Antes de você soltar os cachorros em mim e me fuzilar, deixe-me ser rápido em apontar que eu não acredito que esta máxima seja universalmente aplicável a todas as situações ou estilos de vida. Não estou menosprezando qualquer pessoa ou ocupação, mas acredito que, na maioria dos casos, nós, como seres humanos, colegas de trabalho e de profissão, temos bastante experiência compartilhada para sermos capazes de nos relacionar com os outros. Eu não acredito que esta máxima seja aplicável a sexos ou raças. No entanto, existem algumas áreas onde ela se aplica, e as que eu conheço mais estão relacionadas ao desenvolvimento de software. Vou apresentar três pensamentos diferentes sobre por que eu acredito que isso seja verdade, o que eu acredito que causou a crise atual e o que eu penso que nós podemos fazer sobre isso.

Um exercício de equilíbrio – Por que estamos aqui.

Existem muito poucas profissões que combinam a criatividade envolvida no bom desenvolvimento de software e os prazos rigorosos, muitas vezes impostos. Se apresse e crie! As ideias têm que continuar fluindo, elas têm que ser agendadas e precisam que ser concluídas a tempo. Se você precisa descobrir alguma coisa, vá. Mas certifique-se de que você estará de volta depois do almoço e de que a sua programação não vai falhar. Os desenvolvedores, especialmente agora que nós trabalhamos nos anos da Web, estão sob a crescente pressão do “Lance rápido!”.

O rigoroso e detalhado trabalho do desenvolvimento de software de qualidade, no entanto, não mudou. Ainda leva tempo para desenvolver software de qualidade. Para os de fora, às vezes pode parecer que o que fazemos é fácil. A facilidade com que os desenvolvedores manipulam as ferramentas do ofício é muitas vezes mal interpretada como facilidade com que a tarefa pode ser concluída. Só um desenvolvedor compreende as incontáveis horas que leva para dominar novas ferramentas, novas linguagens e novos conceitos. Nesta época de desenvolvimento rápido, novos conceitos vêm para gente como uma mangueira de fogo do conhecimento. Devemos saber como absorver tudo e sermos capazes de usá-los no nosso próximo projeto. Esse fardo é quase suportável se a gerência entender com o que estamos lidando. O problema é que, sem nunca ter estado lá, a maioria dos gerentes pode não simpatizar (e a maioria nem liga mesmo).

O chefe do além – O que causou a crise atual.

O folclore que é geralmente aceito na comunidade de TI diz que os gestores são gestores porque não conseguem fazer mais nada. O que nos levou a este estado: um clima no qual os desenvolvedores não respeitam seus gestores, e os gestores tentam gerenciar uma equipe de desenvolvimento de software como um departamento de contabilidade. Muita coisa foi escrita sobre quando e por que as pessoas são promovidas a posições que não são qualificadas para manter. Eu não vou refazer isso aqui. Tenho uma opinião diferente sobre isso.

A pergunta que fazemos não deve ser “Por que gerentes não entendem desenvolvimento de software?”, e sim “Por que aqueles entendem o processo não chegam à gestão?”. A resposta óbvia é que existem muito poucos desenvolvedores que desejam ser gerentes.

No passado, os desenvolvedores tinham negar as promoções para gerenciamento (e às vezes aumentos) para que eles pudessem permanecer no desenvolvimento. Atualmente, eles acham outras empresas para trabalhar que os pagarão mais e permitirão que continuem a desenvolver (mas isso é uma história para outro dia). O problema se agrava. Quanto mais desenvolvedores evitam os cargos de gestão, mais infelizes as equipes de desenvolvimento de softwares ficarão com os candidatos que se tornam seus gestores.

Nós, a comunidade de TI, temos os patrões que temos porque nos recusamos a dar um passo à frente e aceitar o trabalho. Não estou defendendo que todos os desenvolvedores subam a escada de gestão; longe disso. Na maioria dos casos, um desenvolvedor forçado a ser um gerente não vai fazer um trabalho melhor do que um contador forçado a fazer códigos. Mas até a comunidade de desenvolvimento aprender a treinar a sua própria estrutura de gestão, estamos condenados a ser geridos por PHBs.

Gerenciando no caos – o que podemos fazer sobre isso?

Portanto, agora estamos todos no mesmo “carrossel do inferno”. O que podemos fazer para sair? Pelo menos parte da resposta é óbvia. Nós, como uma comunidade, temos que treinar nossos próprios gestores. Para mim, como um gestor, isso significa que à medida que entrevisto candidatos a cargos de desenvolvimento, tenho que manter meus olhos abertos para os gestores em potencial. Eu preciso ter a certeza de que eu oriento da mesma forma como fui orientado. Eu tenho que perceber que, se eu não treinar os novos gerentes de desenvolvimento, eu sou grande parte do problema de gestores que não são de desenvolvimento.

Para mim, como um desenvolvedor, e todos os outros desenvolvedores que estão lendo isto, nós temos que garantir que nós educamos os nossos gerentes.

Temos que lhes ensinar conceitos como:

  • Os prazos não podem ser definidos do lado de fora sem a participação da equipe de desenvolvimento que está sendo imposta a esse prazo.
  • Às vezes, a inspiração simplesmente não vem para você, e você não pode forçá-la.
  • Você não pode executar a maioria das IDEs modernas em um hardware porcaria!

Descobri que, em muitos casos, eles podem aprender. Eles querem aprender. Eles são PHBs, porque nunca foram ensinados a não ser. Existem alguns que não aprenderão ou, pior ainda, acharão que você tem muito a aprender sobre negócio. Se você estiver sob a gerência de um desses e trabalha nos Estados Unidos, mude de emprego! A vida é muito curta e o mercado de trabalho está muito apertado para lidar com zé manés assim.

Encerramento

Para corrigir a situação atual, nós, como desenvolvedores, temos que escolher uma das duas opções. Podemos tomar uma posição em nossos trabalhos atuais e educar a gerência de modo que não trabalhemos para PHBs, ou podemos achar outros empregos. Mas não se enganem sobre isso; em última análise, depende de nós corrigirmos o problema.

Até a próxima,

= C =

***

Cal Evans faz parte do time de colunistas internacionais do iMasters. A tradução do artigo é feita pela redação iMasters, com autorização do autor, e você pode acompanhar o artigo em inglês no link: http://blog.calevans.com/2009/01/25/leadership-in-software-development/