Engenharia orientada a produtos
Tags: softwareengineering, career
Published: 2023-10-02 13:57:53

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](https://www.linkedin.com/in/eduardosan/) em um [podcast do Data Hackers](https://open.spotify.com/episode/1JlNxcHMPhpzpT8bpzLMo6?si=5e5db988374147a0) 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.