DEV Community

Gabriel Lopes
Gabriel Lopes

Posted on

Engenharia orientada a produtos

A principal meta de uma empresa costuma ser unir várias áreas em torno de um objetivo comum de criar valor para o cliente final. Como membro dessa equipe, minha intenção é me conectar a esse propósito e contribuir para o processo de geração de valor.

Mas sendo um profissional de tecnologia, como fazer isso? Ainda mais estando em um cargo onde não tenho tanto poder de decisão estratégica e estou mais no dia a dia operacional?

Lógico que não existe uma única forma, mas aqui vou falar sobre uma delas que coloco em prática e tem dado certo para mim desde então.

Num primeiro momento podemos pensar nosso papel na geração de valor como uma pequena engrenagem na grande máquina de operações que é a organização. Desempenhando meu papel da melhor forma, escrevendo meus códigos, criando minhas pipelines, entregando software e chegando ao final do dia com a sensação de dever cumprido. Talvez essa seja uma forma, a depender do contexto de atuação, mas não consigo imaginar um dia a dia onde ser um apertador de botões profissional pode gerar impacto real na outra ponta, até mesmo porque tecnologia é um meio e não um fim. Tecnologia por tecnologia não faz nada se não tiver um objetivo claro atrelado ao seu uso.

Aí que entra o que acredito ser uma prática de engenharia orientada a produtos. Atuar como uma pessoa solucionadora de problemas, tendo em vista como as abstrações se conectam e como o pedaço de software que está entregando poderá ser utilizado pelo cliente. Ouvi uma frase do Eduardo Santos em um podcast do Data Hackers que acredito que traduz bem o que quero dizer. Ele comenta que: “O engenheiro de software deveria ser o cara na empresa que tem a capacidade de ter uma visão sistêmica sobre os processos organizacionais e como isso se transforma em software no final”.
Quando se desenvolve essa visão sistêmica, somos capazes de nos conectar com os processos e o produto de forma que muda complementarmente a forma como iremos desempenhar o nosso papel.

Uma parte da minha experiência profissional foi atuando como suporte em uma software house que o principal produto era um ERP e após os primeiros anos atendendo e treinando clientes tinha o sistema todo de cabeça. Atalhos, configurações e mais que isso, tinha o contato com o cliente e o que o software significava para cada um deles. Quando se tem essa visão do produto se torna muito mais simples desenvolver software, porque antes de pensar em criar classes, código desacoplado e arquiteturas complexas acabo pensando em que problema eu estou resolvendo, que informações preciso para resolver esse problema e para onde as informações vão depois. Quando comecei a desenvolver software nessa empresa, essa experiência prévia de contato com cliente foi essencial para conseguir desempenhar meu papel.

Com esse processo eu fico conectado com o produto, consigo ter visão do impacto que aquele desenvolvimento vai gerar e posso então dialogar com os envolvidos para entender melhor até onde vai esse impacto ou ainda propor outras soluções e tudo isso sem pensar em código. Uma vez que tenho a visão da solução na cabeça, agora sim é hora de planejar e executar. A diferença é que ao chegar no momento de implementar já adquiri um pouco mais de domínio sobre o significado do que estou fazendo e qual o potencial para gerar valor.

Nas outras empresas que atuei procurei fazer o mesmo e parecia uma receita de sucesso para ter um ramp-up significativo e conseguir me tornar produtivo de forma rápida. A diferença estava no processo de como conseguir essa visão do todo, uma vez que agora já não tinha a vivência do produto nem dos clientes.

Então como colocar isso em prática?

Na realidade não tem nada muito mirabolante, podemos partir de algumas premissas: Conexão (que pode ser interna ou externa) e abstração.

  • Conexão interna: Quando se é novo em um contexto (nova área, nova empresa, novo produto) não tem como adivinhar as coisas. É preciso perguntar. Conversar com quem vivencia aqueles processos para compreender como a solução pode se encaixar na vida daquela pessoa. E quando não se tem acesso a essa pessoa, precisamos buscar quem saiba, seus pares, seus líderes;

  • Conexão externa: A forma como a empresa ou o produto se apresentam e se vendem para o mundo exterior podem dizer muito sobre si mesmos. Podemos consumir o material divulgado em mídias sociais ou portais de conteúdo. Também podemos buscar compreender como os concorrentes operam. Isso ajuda bastante a vivenciar o ecossistema que a você está inserido;

  • Abstração: É preciso exercitar a capacidade de abstrair os processos do mundo real e como isso se traduz em solução no mundo digital. Programar é um exercício constante de abstração, agora precisa exercitar isso sem escrever código e usar essa potencialidade para ligar os pontos do que conseguiu extrair das suas conexões com o produto;

Portanto, ao adotar a mentalidade de um solucionador de problemas e desenvolver uma visão sistêmica dos processos organizacionais, você estará bem posicionado para gerar valor em sua empresa como profissional de tecnologia e esse valor retorna para você como experiência, conhecimento e currículo. Você não precisa ser apenas um "apertador de botões" - você pode ser um catalisador de mudanças e inovações.

Top comments (0)