Business: Deveria o desenvolvedor se preocupar com isto?

Será que um desenvolvedor, forjado no aço da computação deveria ir além da sua formação e buscar entender o business da organização onde trabalha?

Como muitos, meu primeiro contato com a computação se deu mais pelo lado da curiosidade e do entretenimento do que outra coisa.
Não sei se alguém teve uma experiência similar a minha, principalmente aqueles da Geração X. Eu aprendi a programar por volta dos meus 12 anos, ensaiando meus primeiros passos com um rudimentar conhecimento de linguagem Basic no meu velho TK85. Naquela época, embalado pelas páginas da velha revista Input, eu só queria saber mesmo era de como criar games. 
Não tinha a menor idéa de como um computador era utilizado em uma empresa, e muito menos da importância dos aplicativos comerciais para os negócios. Mesmo algum tempo depois, quando começei a trabalhar como digitador e posteriormente como operador em uma distribuidora de medicamentos, confesso que ainda dava pouca importância para o business da empresa.
Quando iniciei como programador minha rotina se limitava a fazer manutenção de código. Correção de erros e pequenas implementações chegavam até mim por meio de requisições feitas pelo analista de sistemas da empresa. A coisa já vinha meio mastigada, com informações do programa e o erro a ser corrigido. Problemas de lógica, variáveis mal definidas, erros de sintaxe eram os tipos de solicitações mais comuns. O business da empresa ainda não era algo que me incomodava. Se bem que não era incomum pessoas me perguntarem sobre a empresa onde trabalhava. Me limitava a falar o básico! As vezes me surprendia quando alguém na roda de conversa sabia mais da empresa do que eu. Coisa do tipo, fundação da empresa, seu principal produto, concorrentes, inserção da empresa no mercado, etc. Apesar disto, meu Mundo de OZ eram os bits e bytes. 

Ir além dos bits e bytes ajuda a resolver o seu problema

No meu caso, houve uma situação que me fez ter que sair do meu mundinho e encarar a realidade a minha volta. Eu já tinha um tempo na empresa, estava lidando bem com as requisições e resolvendo os problemas de forma satisfatória. Meu chefe entendeu naquele momento que estava pronto para lidar com novos desafios. O sistema legado da empresa era algo que hoje chamamos de ERP. Este sistema era composto de vários módulos como vendas, financeiro, estoque, etc. Mas ele não tinha um módulo que pudesse controlar o ativo fixo da empresa. Pois é, acho que já entendeu a parada! 
Fiquei encarregado de desenvolver este novo módulo no sistema da empresa. Basicamente, a única informação que eu tinha era o nome do módulo a ser desenvolvido, o nome da pessoa responsável pelo departamento de ativo fixo e o numero do seu ramal. Para dizer a verdade eu não sabia nem onde ficava o departamento de ativo fixo. E para ser sincero, eu nem sabia que existia um departamento chamado ativo fixo. O que são? Onde vivem? Do que se alimentam? Pois é, tipo isto.
Começei pelo tradicional, levantamento de requisitos, dados a serem armazenados, relatórios, etc. E quando tinha algo substancial, ainda sem me preocupar muito com o business fui desenvolvendo o tal módulo. E então começaram as idas e vindas. Não é bem isto que eu disse! Você não pode fazer isto! Isto esta errado! Tem que ser cozido e não assado! Eram as frases que eu mais ouvia. Embora ativo fixo ainda fosse um buraco negro na minha cabeça, eu achava que tinha informações suficientes sobre o “problema” para poder entregar a solução. Ledo engano!
Eu estava muito desconfortável com aquela situação. Então percebí que precisava mais, precisava entender o business da coisa. Fui buscar entender não apenas o “que” mas também o “porque”. Isto me ajudou a abrir a mente, entender qual era o papel daquele departamento dentro da empresa, o porque as informações precisavam ser armazenadas e processadas de determinada forma. Quando entendi o business da coisa o trabalho começou a fluir. Foi naquele momento que nasceu meu interesse por administração.
Quando entendemos o negócio da empresa, o porque das coisas, nosso trabalho como desenvolvedor fica mais fácil. Saímos da condição passiva e podemos ser mais propositivos. O que nos dá melhores condições para discutir o problema e a solução proposta. Alguns pensam que o programador não precisa entender o que esta fazendo. Alguns imaginam o programador como um soldado, que apenas deve executar um comando sem questionar. Embora respeite opiniões diferentes, eu particularmente acho que o programador tem que saber não apenas o que esta fazendo, mas também porque esta fazendo. Indo além, ele precisa entender não apenas o porque das coisas, mas até mesmo implicações éticas e morais que por ventura estejam envolvidas num determinado trabalho.
Isto não quer dizer que além da necessária formação na área, seja também necessária uma segunda formação em administração ou algo do tipo. Porém, quem puder investir numa formação complementar ou cursos que possam lhe ajudar a entender melhor o business, será um bom investimento, algo que com certeza lhe dará um diferencial.

Enterder o business pode abrir portas  

 A tecnologia esta cada vez mais presente em nossa rotina de trabalho. A Inteligência Artificial esta aí, mudando a forma como fazemos as coisas, inclusive eliminando alguns postos de trabalho. Não vai demorar muito para que as maquinas também programem. Isto por sí só já é algo que deveria nos fazer pensar sobre nossa zona de conforto, este maravilhoso e tranquilo mundo de OZ.
Porém, outra coisa a ser levada em consideração é de que a tecnologia estando mais presente, aquele desenvolvedor inascessível antes recluso no CPD, agora precisa dialogar com os departamentos da empresa. Dependendo da empresa, o desenvolvedor precisa dialogar com gestores de alto nível dentro da organização. Sendo assim, conhecer o business se torna um diferencial e pode abrir portas. 
Confesso que esta mentalidade tem me ajudado muito na minha carreira profissional. Fiz um mestrado em Computação Aplicada a Agricultura, o que envolveu ter aulas sobre agricultura. O conceito é muito simples, como alguém pode propor soluções computacionais para agricultura se não tem o mínimo de conhecimento sobre a área. Meu doutorado em Gestão Urbano também percorreu um caminho semelhante, pois fui buscar entender os problemas relacionados a gestão pública municipal para propor soluções tecnológicas. Me lembro que quando estava fazendo pesquisa na Universty of Regina, uma das maiores dificuldades para os mestrandos e doutorandos de computação era saber onde aplicar determinado conceito ou que tipo de problema poderia ser resolvido com alguma abordagem computacional. Quando você conhece o business, você também sabe dos problemas que estão relacionados. Entendendo os problemas ,você estará melhor capacitado para buscar soluções que possam resolvê-los. E isto sem dúvida é um grande diferencial que pode lhe abrir portas. 
Por este motivo, como professor dos cursos de computação e administração, tenho procurado ensinar meus alunos a terem uma visão muito mais interdisciplinar do que aquela visão tradicional de cada um no seu quadrado. Esta é uma característica que tento imprimir em meus cursos e livros com o objetivo de propagar esta idéia.