fbpx
As dificuldades de profissionalizar as soluções de software de uma Startup
Publicado em: domingo, 6 de jul de 2014
Categorias: Arquitetura
Tags: Startup

Olá, tudo bem com você? Então comigo anda tudo caminhando, o stress que anda me matando, no mais, a vida segue.

Hoje vou falar um pouco sobre as dificuldades de um dia-a-dia de uma empresa que quer se tornar uma ex-startup.

As primeiras dificuldades que você encontra estão relacionadas à falta de verbas que é comum nos primeiros anos de muitas startups, principalmente as que não tem uma grande ingestão de investimento, nos primeiros anos de existência. Essas empresas possuem características únicas e nocivas à própria empresa, podendo atrapalhar na evolução sustentável de seu parque tecnológico.

Os primeiros anos

Nos primeiros anos, vemos que a falta de dinheiro faz com que tudo na empresa seja visto como custo, isso também se aplica às equipes técnicas. Não é incomum vermos uma grande massa de estagiários e juniors nos primeiros anos da empresa, isso não seria um problema se houvessem seniors para direcionar as equipes, mas nem sempre essa é a realidade. Como na internet, nascem posts tecnológicos, como nasce grama no parque, é comum vermos em diversos cenários, implantações de overview.

Uma implantação de overview, é uma implantação inconseqüente, baseada na leitura de overviews e não na estruturação de um conhecimento sobre uma determinada solução. Para fazê-la, basta ler um overview, usar e colocar em produção, simples assim.

A gestão do caos

Outra característica comum nessas empresas é o clima de caos. Em diversas dinâmicas, a gestão do caos é a alternativa mais adotada para gerir toda a confusão de uma empresa sem recursos. Como não há mão de obra e recursos suficientes para a realização dos investimento estruturais, apagar incêndios passa a ser a única opção viável. O problema é que os débitos técnicos, são debitados de uma conta que dura tanto quanto a empresa, e uma hora, essa conta precisará ser paga.

A gestão do caos é um modos operandi de gerenciamento, no qual investe-se todo o esforço nos pontos onde há caos, abdicando da visão estratégica que poderia ter evitado o caos e evitará novas situações caóticas. Quanto mais caos, mais fácil é a gestão, afinal, optar entre uma Brasilia Amarela ou uma McLaren é uma decisão fácil de ser tomada, enquanto decidir entre uma Ferrari ou uma Lamborghini pode tirar seu sono.

Nesses cenários, é comum vermos o seguinte pensamento: “Se não há caos, está tudo bem“. Isso geralmente, não é verdade!

A necessidade de ser repensada

Durante o crescimento da startup, é necessário decidir se a startup quer ou não continuar sendo uma startup, ou se quer ganhar asas rumo ao destino almejado: Tornar-se uma grande empresa, uma corporação. Essa decisão implica diretamente na reformulação da forma como gestores pensam e a forma como enxergam problemas e tarefas. É preciso adicionar estratégia à gestão.

Na prática, sem recorrentes análises críticas sobre a estratégia, e atenção/empenho para aplicar essa visão, a empresa pode estar fadada ao fracasso tecnológico. Embora não se aplique a todos os casos, é preciso um pouco mais de lucidez e transparência. Essas falhas podem implicar, inclusive no nanismo da empresa, pois é possível que seu parque tecnológico, o mesmo construído pelos estagiários e juniors, sequer suporte o crescimento almejado pela direção da empresa.

A mudança na dinâmica

A mudança na dinâmica, que promove a transição de startup para uma grande empresa, é

Empresas pequenas tendem a modelos artesanais, sem muita padronização, é possível que performem, mas são amarrados às pessoas que o desenharam, pois geralmente possuem peculiaridades que fazem dela,uma empresa com poucas implementações e implantações by-the-book. SOA que não é SOA, OOP que não é OOP, IOC que não é IOC, DI que não é DI, uma série de implementações que são baseadas em em conceitos reais e práticos, mas que no fundo possuem diversas limitações, se contrastados com os modelos encontrados nos livros e materiais técnicos.

A liberdade para implantar uma solução, e a flexibilidade das empresas pequenas garantem a possibilidade de mudar de rumo com grande facilidade, mas ao crescer, esse modelo não pode ser mais adotado de forma inconseqüente, não disciplinada. Os impactos desse modelo de implantação, são desastrosos e já vi muitos fracassos assim. O tempo me mostrou que você precisa tomar decisões técnicas com base no skill de sua equipe, e inevitavelmente, tornar-se refém de algumas soluções que não são de domínio comum, cria calcanhares de Aquiles.

O crescimento da empresa e a maturidade chegam para mostrar que a empolgação é sadia, mas nunca em produção. É preciso mais que uma leitura para tomar decisões, nos posts Roadmap de Arquitetura – Um exemplo realComo definir Arquitetura de Software, detalho os princípios fundamentais para analisar cenários de implantação e tomar as decisões corretas. Não é uma questão meramente tecnológica, depende da sua equipe e dos recursos que sua empresa disponibiliza para você. E esses recursos podem ser de diversas naturezas, desde infraestrutura, passando por equipe e qualidade técnica da equipe, até mesmo autonomia é um recurso que lhe é entregue.

Como garantir o crescimento e o dia-a-dia

Não há uma receita de bolo, nem bala de prata, mas com certeza, garantir algum investimento em crescimento sustentável e revisão do parque tecnológico é fundamental para o sucesso. Se você tem uma visão clara, do que precisa ser reestruturado, é um grande passo, mesmo que você não o faça, com a velocidade que a equipe almeja, e para não desmotivar quem também enxerga os problemas, é necessária que a estratégia seja conduzida com total transparência. Existem milhares de pontos, outras abordagens, talvez mais completas, mas de qualquer forma, esta não é um discurso sobre a verdade, mas sobre minha opinião sobre essas questões.

Grande abraço pessoal!

O Cloud Native .NET é meu principal projeto.

Onde empenho energia para ajudar, acompanhar, direcionar Desenvolvedores, Líderes Técnicos e jovens Arquitetos na jornada Cloud Native.

Conduzo entregando a maior e mais completa stack de tecnologias do mercado.

Ao trabalhar com desenvolvedores experientes, eu consigo usar seu aprendizado com .NET, banco de dados, e arquitetura para encurtar a jornada.

Ao restringir à desenvolvedores .NET eu consigo usar do contexto de tecnologias e problemas do seu dia-a-dia, coisas que você conhece hoje, como WCF, WebForms, IIS e MVC, por exemplo, para mostrar a comparação entre o que você conhece e o que está sendo apresentado.

É assim que construímos fundamentos sólidos, digerindo a complexidade com didática, tornando o complexo, simples.

É assim que conseguimos tornar uma jornada densa, em um pacote de ~4 meses.

Eu não acredito que um desenvolvedor possa entender uma tecnologia sem compreender seus fundamentos. Ele no máximo consegue ser produtivo, mas isso não faz desse desenvolvedor um bom tomador de decisões técnicas.

É preciso entender os fundamentos para conseguir tomar boas decisões.

0 comentários

Enviar um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Luiz Carlos Faria

Mensagem do Autor

Espero que goste desse post. Não deixe de comentar e falar o que achou.

Se acha que esse post pode ajudar alguém que você conheça, compartilhe!

 

Lives

Fique de olho nas lives

Fique de olho nas lives no meu canal do Youtube, no Canal .NET e nos Grupos do Facebook e Instagram.

Aceleradores

Existem diversas formas de viabilizar o suporte ao teu projeto. Seja com os treinamentos, consultoria, mentorias em grupo.