Reorganizando uma Software House: Como Mudar seu Perfil Tecnológico e Escolher uma Especialização no Mercado de TI?

Publicados: 2023-03-06

Cada empresa de software tem seu próprio perfil tecnológico. Muitas vezes, para o pessoal técnico, isso é mais importante do que o perfil de domínio da empresa. Isso ocorre porque os desenvolvedores de TI preferem se ver pelo prisma da tecnologia em que trabalham, por exemplo, sou um programador de sistemas construídos em C#. No entanto, se eles estão fazendo um projeto para uma empresa que lida com treinamento ou produção de caixas é de importância secundária. É claro que o conhecimento do domínio é sempre útil para os programadores, mas não muda a percepção que eles têm de si mesmos por meio da dimensão tecnológica – afirma Robert Marek, cofundador e CTO da FINGO.

A FINGO é uma software house polonesa que fornece serviços de programação há mais de 20 anos. Em 2022, a organização mudou com sucesso seu perfil tecnológico. Além dos serviços de programação oferecidos nas tecnologias Java e .NET, adicionou Node.js e concluiu todos os projetos criados até então em PHP.

Por que esse movimento foi feito? Como é o processo de mudança auto-organizada? E qual foi o resultado? Descubra lendo nossa entrevista com Robert Marek.

Antes de começarmos a falar do processo de mudança de perfil tecnológico em si, você poderia nos contar como era a empresa antes da reorganização?

Se você acompanhar o portfólio de 20 anos da FINGO, encontrará projetos para os setores financeiro, imobiliário, automotivo, e-commerce e muitos outros, mais ou menos relacionados entre si. É um pouco por coincidência - ao longo dos anos esses projetos surgiram e fomos desenvolvendo nossa equipe. Mas este estado de coisas foi muito influenciado pelo nosso perfil tecnológico (Java, .NET, PHP), sob o qual procurávamos novas encomendas.

No entanto, senti que não era bom para o nosso negócio. Uma grande difusão tecnológica geralmente não é boa para uma software house do tamanho da FINGO. Pode ser mais fácil encontrar um projeto, mas mais difícil garantir a permutabilidade das pessoas. Vou te dar um exemplo. Suponha que você precise de 5 desenvolvedores para seu projeto. São 6 pessoas sentadas na bancada, mas apenas 2 conhecem a tecnologia necessária no projeto. Este estado de coisas significa que ainda existem 4 especialistas altamente remunerados desempregados, para os quais você precisa fornecer trabalho. Além disso, você precisa familiarizar 3 pessoas com a tecnologia necessária para garantir a equipe do projeto.

No entanto, o conforto de ter um negócio funcionando bem nos impediu de implementar as mudanças. Tínhamos projetos, clientes regulares de longo prazo e programadores experientes. Em tal ambiente, é difícil tomar a decisão de começar a mudar alguma coisa.

Então, o que o levou a mudar o perfil tecnológico da FINGO?

No início da pandemia, o mercado congelou. As empresas, sem saber o que aconteceria a seguir, abstiveram-se de continuar os projetos atuais ou iniciar novos. Era uma época em que até os programadores temiam perder seus empregos. Nós nos perguntamos o que fazer. Não queríamos demitir pessoas, mas, por outro lado, precisávamos de algo que nos destacasse da multidão.

Por volta de maio de 2020, como proprietários da empresa, descobrimos que, sem tomar decisões ousadas, a situação pode piorar. Tínhamos mais projetos e, portanto, experiência no setor financeiro. Além disso, tínhamos uma parte de produto que oferecia um software que possibilitava a implantação da obrigatoriedade de prestação de contas no setor bancário. O setor financeiro foi uma escolha natural para nós.

Naquela época, parecia-me que a FinTech e o setor financeiro dificilmente usariam PHP em seus projetos. Então presumi que focando neste setor, iríamos nos afastar do PHP e ficar apenas com Java e .NET. Com essa informação, fomos para a equipe na assembleia geral da empresa.

Então foi a eclosão da pandemia que o obrigou a decidir mudar o perfil tecnológico do FINGO?

Sim e não. Depois de compartilhar informações sobre a especialização, nomeamos uma equipe de trabalho composta por vários programadores experientes e com talento para os negócios. Sua tarefa era verificar quais são as tendências, tecnologias e soluções populares em cada país quando se trata do setor financeiro. A análise deles confirmou minhas suposições anteriores de que o PHP era uma raridade em projetos financeiros. Ao mesmo tempo, recomendaram o desenvolvimento de competências em Node.js, o que é valorizado, mesmo no mundo das start-ups.

Em nossa empresa, prezamos pelo conceito de gestão turquesa, onde, entre outras coisas, consultamos abertamente projetos significativos para a organização com toda a equipe. Graças a isso, as pessoas sentem o impacto no desenvolvimento da empresa, mas também se sentem co-responsáveis ​​pelas decisões tomadas.

Portanto, a iniciativa de mudar para o Node.js, que veio de baixo para cima, ainda precisava ser aprovada pelo restante da equipe do FINGO. No entanto, logo descobriu-se que havia um forte desejo de se desenvolver nessa direção. Talvez tenha sido um momento especial em que todos tínhamos medo do futuro em várias dimensões (aspectos económicos, de saúde, etc.). Paradoxalmente, isso aumentou a aceitação da decisão de aceitar o desafio.

Quantas pessoas tiveram que adquirir novas competências tecnológicas?

No total, a mudança envolveu 15 pessoas. Eles tiveram que decidir se queriam desenvolver como desenvolvedores de front-end ou permanecer como desenvolvedores de back-end e criar soluções em Java, .NET ou Node.js.

Uma dessas pessoas era um desenvolvedor full-stack que já havia se declarado desenvolvedor frontend, então no caso dele a decisão foi fácil. Consequentemente, 2 pessoas escolheram Java e as 10 restantes escolheram Node.js.

Dois testadores também participaram da reorganização e também tiveram que aprender a nova tecnologia. A política de nossa empresa é escrever testes na mesma tecnologia do produto fabricado. Quando o testador está temporariamente indisponível, essa abordagem nos dá uma sensação de segurança; testes de redação podem ser assumidos temporariamente pelo programador.

Também houve afastamentos, mas foram decisões individuais. Uma pessoa se demitiu do FINGO rapidamente, mas foi devido ao fato de estar desenvolvendo a comunidade PHP em Wroclaw. Era natural que nossas expectativas de cooperação começassem a divergir. Durante o processo em curso, por motivos diversos, mais 2 pessoas saíram da empresa.

Tomar uma decisão é apenas o começo do caminho.A empresa ajudou de alguma forma os programadores a adquirir novas competências?

Um projeto estratégico foi criado para apoiar os desenvolvedores na preparação para a prestação de serviços mais rápida possível em projetos comerciais. No início, pedimos-lhes que determinassem subjetivamente quanto tempo precisariam para adquirir o conhecimento necessário, de forma que lhes permitisse realizar trabalhos para clientes externos com confiança, assumindo 2 cenários. A primeira delas com o apoio de um colega mais experiente, a segunda sem esse apoio. Em resposta, obtivemos várias estimativas.

Alguns declararam que, com o apoio de um desenvolvedor Node.js experiente, poderiam ingressar em um projeto comercial mesmo depois de apenas um mês, e outros apenas depois de alguns meses. Tudo dependia de qual experiência anterior (particular ou profissional) você tinha e quanta coragem você tinha em si mesmo. Vale ressaltar também que também tivemos experiência com esse ambiente na FINGO. Então nós tínhamos uma base.

Porém, não impusemos a eles uma forma de adquirir conhecimento. Todas essas pessoas são programadores experientes que desejam aprender constantemente. Eles têm seus próprios estilos de aprendizagem preferidos. Em geral, a aquisição contínua de conhecimento está de alguma forma inscrita na indústria das novas tecnologias. Portanto, decidimos que a solução mais razoável seria simplesmente fornecer a eles os recursos e o tempo para aprender.

Também reorganizamos a empresa. Foram criadas guildas auto-organizadas, onde pessoas que trabalham em uma determinada tecnologia, mas não necessariamente nos mesmos projetos, trocam conhecimentos adquiridos. Como parte da guilda Node, também foi criado um projeto interno, onde se pode testar os conhecimentos recém-adquiridos. Foram organizados cursos externos para voluntários.

No entanto, o que mais deu foi a oportunidade de ingressar rapidamente em projetos. O melhor exemplo disso foi um dos pedidos em que estávamos trabalhando, onde precisávamos de todas as mãos possíveis. Após obter o consentimento do cliente, juntou-se ao projeto um experiente desenvolvedor PHP, também trabalhando em JavaScript, que não tinha experiência com Node.js propriamente dito. No entanto, já havia programadores experientes no projeto que puderam apoiar um colega e garantir a qualidade do código.

Vamos falar um pouco mais sobre seus clientes.Como eles reagiram à sua decisão de se afastar do PHP?

A maior resistência interna e tristeza que tivemos foi com um projeto criado para um cliente de 10 anos. É muito engraçado, porque um de nossos programadores trabalhou nisso desde o início. Naturalmente, ele sabia mais sobre o sistema do que muitos gerentes daquela empresa. Foi difícil para nós explicar nossa decisão a eles. Mesmo com um mês de antecedência, queríamos cuidar bem desse cliente. Concordamos em ficar à disposição deles por mais seis meses. Curiosamente, após 3 meses, o próprio cliente encerrou a cooperação, devido a uma reorganização interna da empresa. Isso também mostrou que você não deve se debruçar sobre as coisas por muito tempo. Eles devem ser feitos e é isso.

Tem sido mais fácil com outros projetos. Como outros eventos, aconteceu de forma bastante natural. Por exemplo, tínhamos um cliente desenvolvendo parte do sistema em Node.js. Concordamos que nossos programadores, que já haviam apoiado o projeto em tecnologia PHP, forneceriam seus serviços a preços mais baixos nos primeiros meses. De certa forma, isso foi uma compensação pela suposta menor eficiência da equipe que havia mudado recentemente de tecnologia.

Como você acha que os desenvolvedores veem essa mudança agora?

Acho que estão felizes. As pessoas nesta indústria gostam de aprender. Na época, eles tinham tempo e dinheiro para estudar. Eles estudavam em tempo integral, recebiam salário integral e podiam se beneficiar de bolsas de estudo. Isso certamente teve um efeito positivo em seus sentimentos.

Node.js é melhor que PHP? Claro que isso é discutível. Certamente, esta tecnologia é popular agora, então entramos em um período de tendência ascendente.

Algumas pessoas inicialmente se arrependeram de deixar um projeto PHP de longo prazo. Mas depois de um curto período de tempo, eles admitiram que haviam saído de um certo tipo de estagnação. E sentiram a brisa empolgante de novos desafios. No geral, acho que correu bem.

Quanto tempo durou a mudança?

Todo o processo se arrastou ao longo do tempo. A verificação do mercado demorou bastante. Trabalhar na reorganização da empresa e na separação de clientes também levava muito tempo. No total, quase 2 anos se passaram desde a criação da tarefa em Jira e seu encerramento.

Vale a pena notar, no entanto, que o intervalo mais longo entre a transição de um desenvolvedor de um projeto PHP para o Node.js foi de apenas 3 meses. Isso estava relacionado à sua declaração do tempo que sentiu que precisava para ingressar no projeto com colegas mais experientes.

Qual foi o aspecto mais difícil?

Acho que só chegando à decisão de que era hora de mudar alguma coisa. No entanto, a consciência de que se não mudarmos agora, e daqui a um ou dois anos não haverá nada para mudar, ajudou significativamente na tomada de decisão mais rapidamente.

Também era difícil separar-se de clientes quando nenhuma alternativa era claramente visível no horizonte e a situação econômica não era estável.

Ao longo deste processo, quisemos cuidar dos nossos clientes de longa data, fazer com que encontrassem uma alternativa com tranquilidade, mas também cuidar de nós próprios. Garantir a preparação dos programadores e sua prontidão para receber pedidos rapidamente na nova tecnologia.

Se o CTO de outra empresa viesse até você e dissesse que também está pensando em mudar o perfil tecnológico da empresa, quais 3 conselhos você daria a ele?

Tenha uma visão. Saiba por que você quer fazer isso e deixe claro para sua equipe para onde está indo e por quê.

Coopere com sua equipe. Converse com as pessoas, adapte suas ações ao que ouve e leve em consideração suas capacidades. Faça tudo com as pessoas.

Faça tudo de forma consistente, apesar dos momentos de hesitação.