Taverna /dev/All

Gestão: como escalar a empresa desenvolvendo de forma customizada

Quando falamos em desenvolver software, penso em dois caminhos (pode haver mais):

  • desenvolver de forma customizada
  • criar um produto

Cada um deles tendo suas vantagens e desvantagens. Não falarei aqui (agora) sobre criar produtos de software, coisas de prateleira ou colocar um serviço no ar. Estou refletindo sobre o modelo em que trabalhei durante toda minha vida como desenvolvedor, seja freelancer ou em empresas: atender demandas específicas de clientes.

Para quem usa o software, ter sua necessidade específica atendida é o melhor dos mundos, ainda que o preço seja mais salgado. Mas não vejo muito sendo falado sobre como é isso do lado do desenvolvedor.

O que tenho observado são as empresas focando em realizar cada vez mais vendas e fechar novos contratos, sem muita preocupação com a capacidade da firma de dar vazão às tarefas assumidas, provocando sobrecarga nos desenvolvedores. No pior cenário, que comigo já aconteceu mais de uma vez, é a empresa fechar um contrato de longo tempo com o cliente e permitir que ele demande livremente, sem crivos de estimativa e priorização (a.k.a. métodos ágeis). Enquanto a carteira de clientes (e a receita) escala a certa velocidade, a quantidade de desenvolvedores permanece contante por longo tempo. No início são 5, dali a pouco 10, 20, … projetos de desenvolvimento contínuo, como se a empresa fosse o “setor de TI” de cada um desses clientes. O cliente quer, estrala os dedos e deve ser atendido.

Estou errado em pensar que esse (extremamente comum) modelo vai contra todos os princípios da boa gestão e até contra os mais conhecidos métodos ágeis de desenvolvimento de software? Cria um ambiente extremamente caótico, gera alta rotatividade, enfim, dane-se o peão. A empresa precisa mesmo assumir quantidades descomunais de trabalho para pagar contas e salários?

Chega de desabafos (eu sei que o relato foi “deveras específico”), a pergunta objetiva é: existe forma sustentável de escalar uma empresa que desenvolve software customizado? Já dando minha opinião, uma melhor aplicação dos métodos ágeis (no caso de contratos por tempo) ou a negociação por tarefa.

Caso não haja, creio que minha vocação seja trabalhar em produtos, e não em customizações de software. Porque deixar dezenas passarem pela porta de uma pequena equipe para pedirem o que querem, para quando querem, para mim não é gestão.

3 Curtidas

Eu tinha escrito uma resposta aqui mas foi péssima, então vou melhorar.

Acho que aqui a gente tem na realidade um mega conflito Éderson: por um lado você tem a empresa que precisa crescer, e especialmente nos primeiros anos é tudo muito difícil.

Do outro você muitas vezes tem contratos que não permitem que seja mantida uma equipe por um longo prazo. E aí entra toda a questão do conflito CLT x PJ.

Agora, dá pra escalar: prova disto é que você tem consultorias enormes aí que mostram muito bem isto.

Eu pessoalmente vejo alguns pontos aqui:

  • Tem de investir na formação da equipe o máximo possível. E aqui entra um mega desafio para muitas empresas: muitas temem investir na equipe e ver estas pessoas partindo (e muitas inclusive tem contratos de retorno de treinamentos que são ilegais (já vi)).
  • Tem de investir na gestão, e quem gere a empresa (o famigerado GP/Product Owner, etc) tem de ter a mentalidade que está ligando com pessoas e não “recursos”.
  • E se possível, tem de conseguir manter as pessoas focadas em projetos específicos a maior parte do tempo. Isto também é muito importante.
1 Curtida

Olá, obrigado pela resposta. Poderia detalhar melhor o terceiro ponto? O que entendi é o que você realmente quis dizer?
Entendi que tem a ver com evitar ao máximo o excesso de dispersões – se Fulano está trabalhando em X, Y e Z, procurar garantir que ele possa se manter focado nisso.
É isso mesmo? Pois talvez a minha interpretação esteja enviesada pelas minhas frustrações com o modelo de customizações, pois isso é o que mais gostaria de ter visto durante esse tempo e, bem, não foi o que aconteceu.

Exatamente,você chegou no ponto aí. E é onde mora a dificuldade.

Tem de saber lidar muito bem com esta situação: você quer por um lado evitar o stress decorrente da mudança contínua de contexto. Por outro lado, tem de balancear com as restrições:

  • A pessoa quer ficar só em um projeto mesmo? Ou será que não seria legal navegar por no máximo 2 ou 3 (ou sei lá quantos, depende muito do tamanho da demana)? (pense em alguém no início da carreira, por exemplo: contextos diferentes podem ser maravilhosos)
  • O contrato consegue dar conta de manter esta pessoa focada apenas nas demandas presentes neste?

É uma balança muito difícil de se chegar a um equilíbrio. Há pessoas, por exemplo, que se dão super bem com uma mudança enorme de contexto (eu, por exemplo). Outras tem uma dificuldade monstruosa.

E aí entra o próprio desenvolvimento do indivíduo na empresa (e profissionalmente FORA desta, o que é igualmente importante). E se você for parar em um projeto que odeia e, pra evitar o seu stress por mudança de contexto, o gestor opte por te manter nele achando que está tudo bem?

Observe que não é todo mundo que diz claramente na empresa o que lhe incomoda com quem realmente deve (o gestor) por infinitas razões (timidez, medo, até mesmo desonestidade em alguns casos (rola muito)).

Então é saber lidar com esta equação. Enquanto gestor, acho saudável a pessoa estar em dois contextos distintos. Por que assim, se um te estressa, há outro no qual você pode se tornar produtivo e vice-versa. E também até por que te agrega técnicamente (abre os horizontes, mostra possibilidades).

Por outro lado: ficar em um contexto só te permite um aprofundamento muito maior. E aí entra outra questão: e no longo prazo, pro indivíduo? Vale realmente à pena?

O desafio é este. Cada caso é único, não há fórmula.
A única coisa que sei com certeza é que pra se ter sucesso a comunicação tem de ser clara com a gestão. Direta, nas duas direções.

2 Curtidas

Eu já sou do tipo que, quando estou em profundo foco em uma tarefa exigente, uma mudança de contexto brusca é demasiado estressante. Por outro lado, quando lidando com coisas fáceis elas vêm bem a calhar, espantam o tédio.
Mas a raiz do problema do foco relacionada aos clientes é quando estes têm livre acesso à empresa para pedir coisas e a mudança de contexto passa a ser caótica. Você não tem mais 2, 3 ou 4 coisas para navegar, você acrescenta a essas mais trocentas coisinhas (sendo que algumas no meio do caminho acabam se tornando coisonas).
Em mim isso gera alto estresse e, sim, fiquei questionando se é um problema só meu, mas acho que todos nós aqui sabemos (estudos comprovam) que programadores são mais produtivos em ambientes quietos, livres de interrupções.
Claro que o ambiente “ideal” não existe, mas o que discuto é a frequência com que empresas sequer se empenham em se aproximar desse ideal para sua equipe, levando esses pontos em consideração.
Pelo que entendi de sua resposta, é algo que seria possível mas mundo difícil devido ao famigerado conflito entre as necessidades da empresa e a possibilidade de entrega dos empregados – então aquela só pode crescer se submeter estes a altas cargas de trabalho sob alto estresse, pois não poderia se dar o luxo de dizer um “não” ou ao menos um “espere um pouco” para um cliente? Ou simplesmente é possível e viável, mas estamos com deficiência de gestores competentes no mercado?
Assim toda economia é inviável, não é à toa que nos países desenvolvidos as pessoas morrem de problemas cardiovasculares, câncer e não fome. Problemas que têm como fator de risco períodos prolongados de estresse e ansiedade.

É; você mostra bons pontos aí Éderson.

Sobre relação com o cliente: você simplesmente tem que ser profissional aqui, e ser profissional implica em não ser subserviente. É seu papel enquanto técnico negociar aqui como as coisas devem ser feitas, chegar a um acordo quando devem ser feitas e mesmo se podem ser feitas.

Um grande problema que vejo aí é que não raro o gestor por pura insegurança (especulação minha) vira um escravo do cliente. E aí perde o sentido qualquer consultoria: qual o sentido de uma consultoria quando você só diz sim?

Por outro lado, eu acredito e defendo que o cliente tenha acesso total a absolutamente tudo no processo pois isto evita especulações dos dois lados e torna a coisa muito menos eficiente.

Eu acho que é possível e viável, mas infelizmente estamos com muito poucos gestores eficientes no mercado. Não só gestores, em todas as áreas.

1 Curtida

itexto