10x Programadores: Mito ou Realidade?

10x Os programadores são um tópico quente a discutir na indústria de software hoje em dia, por isso pensei que seria uma boa ideia partilhar o meu ponto de vista a este respeito.

Honestly I donestly I donestly know the exact definition of a 10x programmer, but I assume it refers to hyper productive programmers (which may not map to exactly 10 times productivity, but to a significant level near or more than 10 times).

Baseado em poucos sucessos que tive enquanto entregava peças de software ultra-grandes para startups e corporações, e experiência de trabalho com alguns desenvolvedores de alto nível, posso compartilhar algumas idéias sobre este tópico.

O programador 10x Então

Software desenvolvido há 20-30 anos era muito mais simples em comparação com software moderno, com respeito à funcionalidade, segurança, desempenho e escalabilidade. Por outro lado, apenas um punhado de bibliotecas ou frameworks estavam disponíveis naquela época para implementar quaisquer funcionalidades.

Assim, software escrito 20-30 anos atrás envolvia um esforço significativo na programação.

Definir um programador 10x nesse contexto é comparativamente fácil. A diferença entre a quantidade de esforço de programação central dada para implementar o mesmo conjunto de funcionalidades por 10x e programadores regulares.

10x dev

O 10x Engineer Now

Antes de entrar em detalhes adicionais, deixemos uma coisa clara: o desenvolvimento de software é um processo complexo, e a programação é apenas uma das áreas a contribuir para o software moderno.

Por causa do aumento do uso de software, especialmente pela Internet, tanto pelos consumidores quanto pelas organizações, software é muito complexo, e pode ser uma decisão insana construir algo a partir do zero. Honestamente, a menos que seja uma plataforma ou sistema operacional completamente novo, a programação central necessária para desenvolver software moderno é menos intensa em comparação com esforços mais antigos.

Embora o conhecimento e esforço de programação ainda seja muito importante, a quantidade de esforço necessária para construir um grande software (livre de bugs, seguro e comercializável) está na engenharia.

Então no contexto atual, um programador 10x pode não trazer muito valor na indústria, mas um engenheiro 10x cria um impacto muito amplo no processo de desenvolvimento.

Eu gostaria de adicionar meus 3 centavos aqui.

1. Eles fazem o melhor uso de ferramentas

O desenvolvimento de software é um processo complexo, que envolve muitos tipos diferentes de esforço. Além da codificação, envolve esforços desde o processo de documentação, à formatação de dados, da leitura de dados de log, ao envio de relatórios, de testes automáticos, a testes manuais, de depuração complexa, à investigação manual de problemas, e assim por diante.

Um enorme esforço pode ser feito extremamente eficiente usando o conjunto certo de ferramentas e plataformas (que são apropriadas ao orçamento de um cliente e outras restrições).

Editores

O software de escrita envolve um ou mais editores, alguns dos quais também referidos como IDE (Integrated Development Environment). IDEs modernas, como o Visual Studio ou Eclipse, oferecem uma grande quantidade de funcionalidades para tornar os desenvolvedores produtivos, mas uma quantidade significativa dessas funcionalidades não é conhecida pela maioria dos desenvolvedores.

IDEs populares também possuem plugins comerciais e gratuitos (como o Resharper), que permitem ainda mais produtividade aos desenvolvedores.

Besides IDE’s, outros editores como NotePad++, MarkdownPad, etc. também são muito úteis num contexto relevante.

Utilitários e Serviços Online

Utilitários e serviços online como ler ou pesquisar grandes ficheiros de log, depuradores http como o Fiddler, ferramentas de compilação e implementação, etc.

Ferramentas próprias

10x engenheiros também fazem seus próprios conjuntos de ferramentas para executar ações repetitivas para as quais o software apropriado pode não estar disponível externamente.

Em muitos casos, os proprietários de uma empresa de desenvolvimento de software não parecem estar interessados em investir muito em ferramentas para desenvolvedores, mas usar o conjunto certo de ferramentas permitirá uma surpreendente quantidade de produtividade.

Para desenvolvedores de software, que são algumas das pessoas mais caras para contratar, vale a pena gastar dinheiro no ferramental certo para eles.

Como uma equipe de desenvolvedores .net lidera, desenvolvendo um núcleo ASP.NET & O modelo inicial do Visual Studio, seguindo as mais recentes práticas de codificação .net, ajudou minha equipe a aumentar a produtividade geral três vezes.

2. They Don’t Reinvent the Wheel

A indústria de software tornou-se muito madura nas últimas três décadas. Quase todos os problemas que os desenvolvedores estão tentando resolver através de codificação foram resolvidos e estão disponíveis como APIs (seja como binário ou serviços web), alguns dos quais são comerciais, enquanto outros são gratuitos.

Besides, frameworks de código aberto também oferecem grande flexibilidade para entender o comportamento ou customização das APIs subjacentes, conforme necessário pelos usuários.

Antes de saltar para a programação, 10x engenheiros realmente se certificam que este problema não foi resolvido totalmente (ou parcialmente) antes ou, se for o caso, eles não estão disponíveis para serem usados.

3. Eles (Continuamente) Escrevem Código de Bela Engenharia

Escrever grandes softwares requer a definição de uma boa arquitetura que não só siga bons padrões e princípios de design, mas também tire vantagem das infra-estruturas modernas. Produzir código bem desenhado não só permite escrever novas funcionalidades mais rapidamente, mas também reduz significativamente os bugs.

But, beautiful engineering requires continuous improvement.

Eu tenho visto uma quantidade surpreendente de código de baixa qualidade em diferentes projetos de software em minha carreira profissional, o que continuamente adiciona débito técnico. Um simples projeto que começou há 5 anos atrás está cheio de código feio não projetado e requer mais de 20 pessoas para lidar com o ciclo de desenvolvimento (onde elas estão gastando 80% do seu tempo realmente corrigindo bugs).

Uma das principais razões por trás desta situação horrível, eu descobri, é o “medo”.

Organizações, especialmente entidades empresariais, em sua maioria temem mudanças.

O desenvolvimento de software é uma disciplina incrivelmente rápida em termos de ferramentas, frameworks e engenharia, e requer mudanças contínuas para chegar ao lugar certo.

A mudança é assustadora, mas não é tão perigosa quanto parece, especialmente na indústria de software (com os conjuntos certos de ferramentas e pessoas). Mas se não for feito como esperado, não vai levar muito tempo para que o projeto seja totalmente abandonado algum dia.

Deixe uma resposta

O seu endereço de email não será publicado.