A palavra “pragmático” vem do latim pragmaticus – “habilidoso no trabalho”. Essa é a essência de quem desenvolve software ontem, hoje e sempre. Sobre isso é que trataremos aqui.
Programar é uma arte. As habilidades associadas a quem desenvolve software podem ser entendidas como tão próximas aos artesãos. Estes possuem cuidado e atenção a detalhes tão únicos que se tornam para nós exemplos ímpares de dedicação na criação de qualquer coisa. O questionamento que resta, portanto, é: qual é o nível de zelo e cuidado que precisamos desenvolver para nos tornarmos desenvolvedores e desenvolvedoras de software valiosos, prudentes e, simultaneamente, corajosos?
“The Pragmatic Programmer”, livro publicado em outubro de 1999, de autoria de Andrew Hunt e David Thomas, se propõe a este objetivo. De explicar, sem impor, maneiras de usar nossa inteligência a fim de aperfeiçoarmos nosso trabalho. Além disso, de continuamente nos preocuparmos em sermos melhores, bem como ensinar como atingir excelência, em diversos aspectos, no mundo da Tecnologia. Vamos abordar alguns dos principais aspectos abordados nesta obra para que você e eu possamos perceber a relevância de tais princípios.
Tais princípios utilizam o seguinte pensamento como base:
Se o machado está cego e sua lâmina não foi afiada, é preciso golpear com mais força; agir com sabedoria assegura o sucesso.
Eclesiastes 10:10
Princípio 1
Preocupe-se com seu trabalho
Isso é comum de gente que gosta de ver as coisas bem feitas. Que gosta de se sentir realizado(a) no fim de alguma iniciativa. Para tal, é necessário zelo contínuo por tudo que fazemos. E zelo significa: grande cuidado ou preocupação que se dedica a alguém ou a algo. Wow, forte essa expressão, não acha?
A preocupação com seu trabalho implica em se sentir autor de algo que leva um pouquinho de você naquilo. Como assim? Em tudo que fazemos, o que fica marcado na história é o final. Como terminou e que desfecho teve. O final – normalmente – é mais desejado que o começo. Logo, nossos nomes e quem somos ficam marcados em tudo que fazemos.
Nosso legado é o resultado de constância e trabalho duro em prol de algum objetivo. Portanto, perceba que preocupar-se com seu trabalho é uma mentalidade que vai muito além do pagamento financeiro que recebemos em nossas atividades laborais. É uma questão de honra. Pense o seguinte: este código que você escreve revela que você realmente se importava com o que estava sendo feito?
Princípio 2
Não tolere janelas quebradas
A teoria de janelas quebradas se baseia no seguinte: uma janela quebrada de uma casa pode implicar no entendimento que a casa está abandonada. Logo, quem vê a casa do lado de fora normalmente chega à conclusão de que não faz diferença jogar mais uma pedra na janela e quebrá-la mais um pouco. E assim sucessivamente acontece até que toda casa esteja com janelas quebradas. Para mais detalhes sobre a teoria, veja Broken Windows – The Atlantic.
Esta elucidação vem da área criminalística, porém possui grandes implicações no desenvolvimento de software e, em particular, no trabalho diário de quem escreve código. Temos que ter zelo constante sobre o que fazemos (como discutimos anteriormente) a fim de que nossos softwares tenham também a aparência de que estão saudáveis e manuteníveis, bem como diz aquele ditado da Roma Antiga: “À mulher de César não basta ser honesta, tem de parecer honesta”.
Portanto, técnicas de segurança e qualidade de software associadas ao desenvolvimento ágil são essenciais para que sejamos programadores(as) que continuamente buscam amadurecer no que tange a responsabilidade de criar e manter sistemas de software. Na Invillia, somos sempre impulsionados a pensar de tal forma. Segurança, qualidade e agilidade é o trio de práticas que baseiam o sucesso de nosso jeito de programar e inovar.
Princípio 3
Você é o que diz e o como diz
Sim, esqueça a imagem de que programadores são nerds que ficam reclusos em seus ambientes, sem ou com pouca interação social com as pessoas do trabalho e que só conseguem se comunicar por meio de uma linguagem técnica, puramente de computação. Desenvolvedores(as) pragmáticos(as) entendem a necessidade de melhoria em sua capacidade de comunicação e, portanto, sempre se esforçam para melhorá-la.
Tal tema é controverso. A comunicação é uma via dupla de relacionamento na qual não temos controle sobre o que o receptor da nossa mensagem irá entender a respeito daquilo emitido. Logo, é alvo de aprendizado e aperfeiçoamento constantes. Contudo, não queremos desvirtuar quem escreve código de sua personalidade. Cada um de nós é um universo à parte. Porém, diante disso, precisamos nos esforçar para que estes “universos” consigam entender suas vontades e intenções de modo claro e sucinto.
Não se engane: entender de paradigmas e linguagens de programação, bem como arquitetura de sistemas é algo muito mais perceptível (às vezes até mais fácil) do que se tornar uma pessoa comunicativa e que agrega outros ao redor de sua influência. Me arrisco a dizer que esta habilidade (normalmente chamada de soft-skill no mercado de trabalho) é a mais complicada de obter e manter em evolução. Entretanto, programadores(as) pragmáticos(as) sabem se virar. Entendem o que significa esforço e dedicação intencionais. Por isso, temos total capacidade para sermos melhores comunicadores a fim de potencializarmos os negócios nos quais nossos softwares estão inseridos.
Princípio 4
Não pense fora da caixa – encontre a caixa
Este princípio se baseia na seguinte conclusão: just do it! (Simplesmente, faça!). Há quem diga que não é criativo ou que tem dificuldade de ter boas ideias. Porém, perceba que as grandes invenções de nossa espécie vieram por meio de tentativa e erro, de insistência e perseverança. De afiar o machado a fim de que seu corte seja cada vez mais afiado! Logo, pensar fora da caixa implica em não impor a você mesmo “caixas mentais”, limitações que geram em você a incredulidade de que você é incapaz de resolver os problemas que se apresentam na vida real.
Diante de problemas complexos, vá até a causa raiz dos mesmos. Na motivação real do porquê tal problema existe e quais são os recursos disponíveis para resolvê-lo. Não solucionamos as questões de nosso cotidiano enquanto desenvolvedores recorrendo a achismos e sim a evidências que comprovem ações viáveis para as mais diversas situações.
Logo, práticas tais como documentação de software, observabilidade de microsserviços, indexação de logs, pair programming, PoCs (Proofs of Concepts) entre outras, são úteis para que, no momento em que problemas complexos surgirem, possamos estar preparados para as necessidades. E tenha certeza: quando os desafios chegam, eles não batem à porta. Normalmente, eles despencam. Às vezes, de modo surpreendente. Mas não tenha medo. Programadores(as) pragmáticos(as) usam as situações “fora da caixa” para atingir níveis maiores de maturidade e capacidade profissional.
Este livro de David Thomas e Andrew Hunt é sensacional. Possui diversas lições como estas que abordamos e que valem a pena ser observadas. Claro que há algumas coisas bem antigas, dada a época de publicação da obra (1999). Mas não deixa de ser uma obra essencial, na minha opinião, para quem quer ter uma carreira sustentável e com bases sólidas em Tecnologia, e não somente um trabalho.
Pela sua atenção, querido(a) leitor(a), obrigado!
Esse conteúdo faz parte do programa Invillia Tech Creators, que incentiva mentes inovadoras e brilhantes a produzirem e compartilharem opiniões, visões sobre tecnologia, tendência, diversidade e carreira. Contribuindo para o crescimento de toda a comunidade.
Se quiser descobrir mais como a Invillia pensa e acrescenta inteligência em todo o processo de desenvolvimento de produtos digitais para empresas que estão revolucionando seus segmentos, conheça nosso Global Growth Framework_
Agora, se quiser juntar seu talento a esses game-changers e colaborar com a próxima grande inovação, conheça aqui nossas vagas. Nos vemos em breve_