INDEX

A arte de entregar valor

By Marco Singer at

Durante muito tempo na minha carreira acreditei que, quanto mais conhecimento técnico eu acumulasse, mais qualidade o meu trabalho teria. Isso é verdade, mas só em partes.

Indiscutivelmente os quase 20 anos que tenho trabalhado nas mais variadas empresas e setores me deram uma bagagem muito grande para poder ajudar meus times a tomarem as melhores decisões dado o momento/contexto, mas a parte técnica é um aspecto bem pequeno do todo e muitas vezes superestimado.

Vou aprofundar.

Antes, te faço uma pergunta: Na sua visão, qual é o papel de um engenheiro de software?

[Pausa]

Na minha opinião é "entregar valor".

Muitas vezes temos a tentação de entregar um trabalho tecnicamente impecável, afinal estudamos árduamente para aprender escrever software cada vez melhor e usando as melhores práticas. Por outro lado, como diz um amigo, "o ótimo é inimigo do bom".

Nada do que fazemos na frente do terminal adianta se não estiver sendo usado por quem pediu.

Mas neste momento você pode estar se perguntando: "Mas esse não seria o papel de um Product Owner/cliente/dono? Como eu posso dizer quando algo está pronto se não sou eu quem manda?"

Resposta: bom senso e senioridade.

O mundo mudou bastante desde que coloquei a mão no meu primeiro computador. O que mudou pouco ou quase nada é o fato das pessoas acharem que sabem o que querem.

"Você é programador, né? Estou com uma ideia de projeto que vai ser espetacular! Quanto você cobraria para fazer uma rede social, coisa simples, tipo Facebook? Será que conseguiria mostrar algo funcionando para uns amigos bem influentes em tipo, 1 ou 2 meses?"

Forcei a barra, eu sei. Mas capaz que você tenha escutado uma história parecida.

Bom senso.

Trazendo para algo menos anedótico. Porque você deveria desenvolver um aplicativo React Native para a pessoa entrar e responder um questionário e aceitar um termo de uso para uma pesquisa, se você pode fazer um TypeForm e enviar o link por Whatsapp ou email?

Parece exagero ter que lidar com um time que saiba React, montar os layouts, desenvolvimento, infraestrutura, testes, deploy, atualizações de bibliotecas e patches de segurança, publicação do app nas lojas, correção de bugs, etc, etc para um simples questionário.

E sim. Esse caso é real. E sim. Bom senso manda um beijo.

Mas vamos deixar uma coisa clara.

Uma pessoa que não é da área de tecnologia pode não saber das complexidades que existem por trás de um "simples sisteminha". É nosso papel diminuir esse gap e ajudar na tomada de decisão.

Isso se liga com o meu segundo ponto: Senioridade.

Já sei! Vamos dizer "depende" para tudo. Parabéns, você virou sênior!

Brincadeiras à parte, obviamente que a gente só aprende a lidar com situações como essa com o tempo. Quanto mais focado em resultado e simplificador de processos você se torma, mais sênior você é. Pelo menos na minha humilde opinião.

No meu modo de ver, o que diferencia Jr, Pleno e Sênior vai muito além de tempo de carreira, quantas tecnologias ou frameworks conhece no detalhe, quantas APIs super performáticas você já escreveu ou qualquer outra métrica vinda do tecniquês padrão.

Entregar valor deveria ser nosso maior objetivo, inclusive para trilhar o caminho da senioridade. Durante o caminho, escolher as melhores formas de colocar o nosso projeto na rua, para ser usado o mais rápido possível, seja escrevendo um software de próprio punho ou contratando um de mercado. Porque não um mix dos dois?

Sempre usando o bom senso.

Isso porque a quantidade de sistema por aí que deveria ser só um Excel não é brincadeira! E a quantidade de sistemas que só precisam de mais um feature para ficar perfeito e nunca saem do papel devem ser ainda maiores que o primeiro caso.

Realmente, entregar valor é uma arte.