Sua próxima etapa na carreira como desenvolvedor de software
Foco da empresa
Quais opções você está levando em consideração ao fazer suas escolhas profissionais? Que tipo de empresa é mais adequada para você?
Você deve seguir o caminho aparentemente mais fácil e começar como freelancer, esperando obter lucros maiores no curto prazo? Ou você deve seguir o caminho padrão de júnior a sênior? O que essas classificações significam e o que vem depois delas?
Em meus 13 anos de carreira técnica, sempre procurei uma boa empresa. Mas o que faz uma boa empresa ser boa?
Para responder a essas perguntas, leia meus próximos posts. Neles, tentarei abordar alguns dos aspectos mais importantes a serem considerados:
- Foco da empresa: Que tipo de trabalho sua empresa ideal realizará?
- Tamanho da empresa: Você é uma startup, uma corporação ou algo intermediário? E como você pode subir na carreira da empresa?
- Propriedade: Você terá a oportunidade de assumir a responsabilidade e a iniciativa pelo seu trabalho?
- Além do recrutamento: O RH dará suporte a você durante todo o processo? Qual é a cultura da empresa?
Para um desenvolvedor inexperiente, pode parecer que a pergunta mais importante sobre a empresa é “qual linguagem de programação ou biblioteca de front-end você usa?” ou “você usa o Scrum em seus projetos?”
Mas logo você perceberá que, a médio e longo prazo, essas perguntas não terão muito impacto sobre sua experiência e carreira. Vamos começar com o que realmente importa – em primeiro lugar, o foco da empresa.
Em que você trabalhará?
Existem vários tipos de empresas de desenvolvimento de software, que diferem no que fazem diariamente.
Por exemplo, você pode trabalhar em uma empresa de produtos. As empresas de produtos variam de acordo com a definição do produto que estão criando – pode ser qualquer coisa, desde um plug-in até um grande SaaS.
Quando você trabalha em um produto de software, precisa lidar com a complexidade técnica e de processos. Ajuda o fato de você ter a oportunidade de trabalhar com outras pessoas que se preocupam com produtos e realmente se aprofundar na tecnologia que cria um produto.
Mergulhar fundo criará oportunidades de especialização, mas a introdução de novas tecnologias pode ser um desafio maior para uma empresa de produtos. É necessário um esforço adicional para introduzir uma nova tecnologia quando você já investiu muito na atual.
Além disso, o futuro de uma empresa de produtos está vinculado ao futuro do produto que ela está fabricando, e isso representa um grau de risco maior do que você encontraria, por exemplo, em uma empresa baseada em serviços.
Seria bom ter esses aspectos em mente quando você estiver procurando seu próximo local de trabalho e não hesitar em perguntar à empresa como é a visão, a estratégia e a administração do produto, ou como eles acompanham as novas tecnologias.
Em seguida, há as empresas de desenvolvimento personalizado. Essas empresas ajudam outras organizações em seus projetos, geralmente trabalhando com uma ampla gama de tecnologias. Às vezes, essas empresas trabalham com vários clientes em um negócio ou domínio técnico específico, ou podem até trabalhar para um único cliente e, nesse caso, estão basicamente fazendo desenvolvimento interno. Para você, isso significa mais amplitude em termos do tipo de trabalho que enfrenta todos os dias. Cada novo projeto pode representar a oportunidade de você experimentar novas tecnologias e conhecer novos domínios de negócios.
O orçamento e os prazos do projeto podem gerar compensações e compromissos que você, como engenheiro, não vai gostar. Além disso, a pressão para criar coisas de forma rápida e eficiente pode, às vezes, resultar em muita dívida técnica não tratada, e você também pode se ver fazendo várias tarefas entre projetos e lidando com correções de bugs antigos e solicitações de alterações.
Para evitar isso, procure empresas com especialização restrita e forte conhecimento do domínio.
Além disso, pergunte sobre as estruturas atualmente em vigor, pois as estruturas obrigatórias podem ajudar as organizações a garantir a padronização e a produtividade em todos os projetos. Mas isso também traz o desafio de evoluir as estruturas para acompanhar as tendências tecnológicas e mantê-las “adequadamente leves”. Você não quer trabalhar com uma estrutura excessivamente projetada que se tornou um fardo para os desenvolvedores.
Há outros fatores empresariais e organizacionais que podem impedir que as compensações mencionadas ocorram, e mencionarei alguns deles nos próximos artigos.
Já mencionei as empresas de desenvolvimento interno que são basicamente responsáveis por dar suporte aos seus negócios com software criado internamente. Algumas equipes de desenvolvimento interno tornaram-se tão boas no que fazem que expandiram seus serviços e os comercializaram. A Amazon AWS é um bom exemplo disso.
Trabalhar nesse tipo de empresa pode ser semelhante ao desenvolvimento de produtos de uma perspectiva técnica. Talvez o maior desafio que você enfrentará seja conseguir um entendimento compartilhado com a gerência sobre qual é a estratégia da empresa e como o desenvolvimento se encaixa nessa estratégia. Se os desenvolvedores continuarem a se referir à gerência como “eles”, que não entendem “nós”, os desenvolvedores, isso é um sinal claro de que grande parte da sua energia será gasta em políticas internas, em vez de fazer o trabalho real.
Tente perguntar ao seu gerente como os projetos dele ajudam a organização a atingir suas metas. Tente fazer com que ele fale sobre por que o software dele é importante e quem são seus clientes. Se você estiver trabalhando em um aplicativo de suporte ao processo de vendas, seus clientes devem ser os clientes da empresa, não as vendas em si. Se esse for o caso, você saberá que essas equipes estão alinhadas com a estratégia.
Existem outros tipos de empresas de desenvolvimento de software, mas vou mencionar um último exemplo. Desenvolvimento de plataformas, geralmente associado à consultoria de negócios.
Considero que se trata de uma empresa que trabalha com plataformas de software existentes e geralmente oferece suporte a processos comerciais específicos. Por exemplo, uma empresa especializada em implementar e ampliar plataformas como Salesforce, Customer Relationship Management (CRM), SharePoint, Document Management System (DMS) ou Enterprise Resource Planning (ERP).
Descobri que, nesse tipo de empresa, os limites entre as funções são mais tênues. Às vezes, espera-se que você use um chapéu de analista ou consultor de negócios, além de ter sólidas habilidades de programação.
De uma perspectiva técnica, você precisa adquirir mais conhecimento específico da plataforma. Você deve ter uma compreensão profunda dos recursos avançados da plataforma, por um lado, e das opções e limitações de personalização, por outro. O desenvolvimento na plataforma deve ser sempre considerado como o último recurso, e você deve tentar implementar os processos de negócios usando os recursos configuráveis da plataforma.
Ao implementar recursos na plataforma, os processos de negócios dos clientes provavelmente serão afetados e modificados. Esse tipo de situação exporá você ao aspecto de consultor do trabalho. Mesmo que você tenha uma função dedicada de consultor de plataforma em uma equipe, ainda precisará ter um pouco de mentalidade comercial para uma boa colaboração com os consultores e os clientes.
Aconselho considerar esse tipo de empresa para uma especialização de longo prazo se você gosta de otimizar processos comerciais com plataformas complexas altamente evoluídas.
Quando você considerar esse tipo de empresa, pergunte quantas funções eles têm em uma equipe e como é o processo de integração. Isso lhe dará uma ideia de quanto suporte você pode esperar enquanto segue uma curva de aprendizado íngreme da plataforma.
Onde você se vê mais?
Trabalhei em todos os quatro tipos de empresas mencionados acima e, para mim, as empresas de produtos sempre foram as mais agradáveis e gratificantes. Melhorar e dimensionar continuamente produtos, processos e equipes é onde me sinto mais desafiado e capaz de colocar minhas habilidades em prática.
Por exemplo, aqui em Microblink, temos uma dúzia de equipes de P&D trabalhando em apenas um de nossos produtos. Elas lidam com tudo, desde a preparação de dados em nossa plataforma de IA, o desenvolvimento de aprendizado de máquina, a integração específica da plataforma até o design de UX (você pode ver como é isso aqui).
É claro que cada empresa de desenvolvimento de software é diferente e este artigo serve apenas para que você tenha um ponto de partida em sua próxima jornada.
Dito isso, onde você acha que se encaixaria melhor? Eu adoraria saber – sinta-se à vontade para me enviar uma mensagem com suas ideias.
Darko Ilić-Šikelj
Diretor de soluções principais e produtos da Web