Ao contrário das fábricas de software, que estão constantemente concebendo novos sistemas, os desafios enfrentados por empresas de produto são muito mais focados na sustentação e evolução contínua do que na criação de novos produtos e inovação. Nem sempre a equipe técnica será desafiada a criar um projeto novo ou uma funcionalidade revolucionária. Muitas vezes, trata-se mais de ajustar parafusos do que construir casas novas. Nos desafios da sustentação, descobrir como escalar o negócio que seu produto apoia vai muito além de apenas "escovar bits". Trata-se de encontrar soluções mais simples, que demandem menos esforço e gerem um impacto maior (por mais clichê que possa parecer, é verdade). E você só consegue alcançar isso saindo da sua bolha técnica (que não é ruim, mas pode ser limitante) para enxergar as oportunidades que estão lá fora.
Já trabalhei em fabrica de software. 98% dos projetos são sobre dar manutenção em algo legado que muitas pessoas colocaram a mão e geraram o caos completo =). Sobre o encontrar a solução simples. Normalmente essa é a forma mais difícil e demorada de achar a solução. Pois exige que a base de código seja conhecida e que a solução não gere debitos técnicos ao ser implementada. Não podemos confundir solução simples com simplista. Nessa ordem: GoHorse: Solução simplista mais rápida Simplista: Solução rápida que resolve o problema o mais rápido possível e não se preocupa muito com efeitos colaterais Solução Boa: Solução que tenta evitar a criação de debitos técnicos e tenta minimamente achar um balanço entre resolver a dor do cliente e não quebrar regras de arquitetura de uma aplicação. normalmente leva mais tempo. Solução Simples: Essa solução avalia a arquitetura do sistema e busca corrigir o problema trocando os componentes defeituosos por componentes novos corrigidos. A ideia é que ela não gere nenhuma cicatriz no sistema e resolva o problema em sua causa raiz. Tende a levar muito tempo. A simplicidade é o último grau de sofisticação.
levando a discussão pra outro ponto de vista, imagino quão complicado seja manter o time dev engajado, sabendo que vão passar a maior parte do tempo iterando pedacinhos, refatorando código e resolvendo outras dívidas técnicas legadas do que construindo a nova start-up do momento.
Sênior Developer / Tech Lead
6 mpor aqui, acontece muito de o pessoal criar soluções, e quando está estabilizando, saem da empresa ou projeto. É um desafio achar quem queira atuar em projetos de outros. Até mesmo dar sustentação no projeto que ele(a) mesmo criou. Quando começa a aumentar a complexidade por estar com clientes reais usando, acabam desistindo. Costumo falar que eles estão "espanando". Se apertar um pouco mais, espana. É fato que é mais divertido criar do zero um projeto, mas o que de fato faz crescer e amadurecer como profissional é sim, otimizar processos já existentes com mínimo de custo e impacto possível. É questão de perfil, mas é um perfil mais difícil de encontrar a cada dia.