Minha história

Onde tudo começou?

Comecei a trabalhar com 13 anos. Meu primeiro emprego foi como office boy (profissão extinta atualmente) no escritório de contabilidade do meu pai. Lá vivi o que eram passar três horas na fila de um banco esperando minha vez para ser atendido e/ou ficar correndo entre um órgão do governo e outro. Era comum ir na Receita Federal ou na Receita Estadual para entrega de documentos, apresentação de guias, solicitações e etc. Nesta época, tudo era off-line, era preciso ir fisicamente nos locais, lidar com protocolos, filas e perder muito tempo com tudo isso. A coisa é estranha atualmente, mas era assim que a banda tocava na década de 90.

Neste mundo do escritório, tive a minha primeira experiência com um computador. Nessa época o computador era compartilhado entre várias pessoas, comecei utilizando um software que controlava o arquivo do escritório. Arquivo era o nome de um departamento escritório, pense numa sala como se fosse uma biblioteca, onde tinham vários documentos, organizados em caixas e envelopes. O sistema do arquivo basicamente era um índice que contia onde cada documento estava guardado. Ex. Documento “Recibo da Conta de Luz” está armazenado na caixa 1000 e envelope 3. Quando alguém precisava procurar algo, se digitava o nome da empresa que para pesquisa e também o tipo do documento a ser procurado e o sistema retornava em qual a caixa e envelope estava armazenado. Meu trabalho era catalogar os documentos, inseri-los no sistema além de guardá-los fisicamente.

Meu primeiro código

Neste mesmo computador comecei a estudar/programar em BASIC. A linguagem BASIC é uma das primeiras de fácil acesso que se propagou com o MSDOS. Escrevi alguns programas básicos para melhorar processos corriqueiros do escritório. Um dos primeiros programas foi um sistema bem útil que ajudava a datilografar cheques. No sistema tinha um campo que você colocava o valor do cheque, a quem se destinava o valor e a observação. O sistema então “gerava a cópia do cheque”. Essas cópias eram impressas numa impressora matricial. Esse processo tinha dois objetivos, primeiro ajudava diminuir os erros de datilografia e segundo gerava um comprovante de como aquele documento foi pago. Posteriormente depois da ida ao banco para pagar esse documento e comprovante eram guardados no arquivo que descrevi anteriormente.

Nesta época também tive contato com planilhas eletrônicas, muito antes do Excel ou Google Docs, existia um sistema chamado Super Calc, algo bem primitivo comparado os dias de hoje, mas que me ajudou muito a entender melhor como estas máquinas funcionavam. Percebi ter facilidade com lógica, e logo virei uma espécie de suporte aos funcionários, comecei ajudar a criar planilhas para melhorar o fluxo de trabalho dentro do escritório.

Antes de programar

As empresas antigamente tinham um setor chamado CPD (central de processamento de dados). Nesta sala era onde normalmente ficavam todos os computadores. No escritório eram quatro no total (três ficam no CPD e um na sala do arquivo). Uma das minhas funções como Office Boy, era literalmente transportar os documentos de um departamento (contábil, fiscal e recursos humanos) para o CPD para que eles fossem digitados num sistema chamado Fiscal/Contábil.

Ficava lá observando o pessoal digitar notas fiscais e carimbar cada documento digitado, um processo arcaico, mas eficiente. O carimbo indicava que o documento já tinha inserido no sistema, depois deste processo o envelope com os documentos digitados mais uma impressão de uma listagem voltava para o departamento de origem para que fosse feito um processo chamado “conferência”.

Um dos funcionários que era um digitador na época e cursava segundo grau em processamento de dados nas horas vagas começou a me ensinar como programar em Clipper e me mostrar um software que ele estava desenvolvendo chamado “D/C Bank”.

Clipper 5.2

Fiquei bem empolgado nesta época. Lembro de ir à livraria Ghignone encomendar um livro de programação e outro de referência da biblioteca de funções do Clipper, que demorou mais de 20 dias para chegar. Como falei na década de 90 as coisas eram um pouco diferentes, tudo muito analogico e alguns processos demorados. O Brasil vivia a mudança de moeda (o que conhecemos como Real), e mantínhamos a esperança de ser tetracampeão mundial com a seleção Brasileira de futebol.

Com Clipper 5.2 aprendi a desenvolver softwares CRUD (cadastros simples como adicionar um registro, modificar ou excluir) hoje algo tão normal e simples, mas naquela época era bem mais complicado do que parece. Controlar a pilha, memória do sistema e o que era impresso na tela era necessário. Se você fizesse um software muito grande, tinha estouro da pilha, a memória não aguentava e por aí vai. Não existiam ferramentas IDEs que facilitavam o desenvolvimento, você precisava decorar todas as funções, lembrar dos parâmetros de entrada e de saída. Era mais complexo de fato. Lembro que eu utilizei o wordstar um software que era um editor de texto tipo Word, que editávamos os programas por ele, porque tinha funções avançadas como copiar e colar. Isso hoje é comum e até no celular você executa esses comandos com certa frequencia.

Estes dois livros foram meus companheiros por um bom tempo no ônibus entre escola, casa e trabalho. Ficava lendo e ouvindo música no meu walkman.

Segundo grau

Chegou a hora de ir para o segundo grau, nessa época já tinha certeza de como seria o meu futuro então decidi fazer o curso técnico em informática numa escola em Curitiba chamada Opet. Ali aprendi mais profundamente os conceitos de informática, sistemas operacionais, programação e lógica. Para a conclusão do curso técnico era necessário estagiar em alguma empresa.

Nesta época meu pai, contador até hoje, prestava consultoria para uma empresa de Cascavel, que havia mudado sua sede para Curitiba. A EBS (abreviação de Empresa Brasileira de Sistemas) era uma software-house que criava soluções com foco para escritórios de contabilidade. Como meu pai prestava consultoria lá, ele conseguiu um estágio.

Em 1995 comecei meu estágio trabalhando meio período.

EBS

1995 a 1998

O estágio na EBS começou meio como qualquer estágio em qualquer empresa, sem muita definição e sem saber muito bem o que fazer. Nesta época a EBS tinha pouco mais de 20 pessoas, divididas em suporte ao cliente, desenvolvimento dos produtos, área financeira e uma área comercial que cuidava de vendas para os novos clientes.

Estes três anos foram intensos. O Brasil estava começando a ter resultados na economia por conta do Plano Real, e a EBS surfou a onda da estabilidade da moeda. Comecei a estudar programação para Windows. O Windows foi lançado a algum tempo, e já existia a tendência que iria substituir os antigos sistemas em MSDOS para algo mais moderno e gráfico.

Já existiam iniciativas dentro da EBS para isso, estavam convertendo o sistema de gestão para uma linguagem chamada SQL Windows. Inicialmente desenvolvida pela Gupta, era uma forma bem diferente de programar. Talvez uma das IDE mais fáceis para você aprender, porque ela era uma linguagem de alto nível e bem visual (tem ainda muita referência disso no Wikipedia). Esta linguagem tinha um porém era extremamente pesada e lenta para os computadores da época. Vale lembrar que nesta época estamos no auge dos 386/486, com pouca memória e quase nada de processamento. Se comparado hoje um celular simples tem muito mais capacidade que o maior computador da época. Por esse motivo, optamos pela troca da ferramenta e começamos a desenvolver para Windows com o Borland Delphi. Esse sim teve um papel crucial na evolução dos sistemas para Windows.

Uma nova lei criou uma demanda de mercado, tinha sido aprovado o projeto de lei que criava a obrigatoriedade que todo ponto de venda (PDV) tivesse uma um impressora fiscal (essas impressoras que estão hoje presente em qualquer loja, posto de gasolina, supermercados ou farmácia). Como todo bom estagiário curioso, fui alocado nesse projeto e começamos a trabalhar para uma grande rede de livrarias daqui de Curitiba.

Ainda não tínhamos uma biblioteca para programação com a impressora, era necessário escrever e programar diretamente com a porta serial, pela limitação do hardware toda comunicação era feita praticamente byte a byte, não que isso não seja assim hoje, mas hoje você não precisa mais programar tão baixo nível. Hoje USB é padrão e tomou conta de toda a comunicação micro periférico. Mas com os x86 da década de 90, a comunicação era feita muitas vezes fazendo JUMP nos periféricos e configurando suas interrupções. Vale a pena ler quem quiser se aprofundar.

Os próximos anos seriam ainda mais intensos. Era necessário muito desenvolvimento para construir um framework que seria a base para os novos produtos da empresa. Engraçado olhar para isso hoje, mas não existiam frameworks ou modelos de desenvolvimento, pesquisas e referências eram tudo muito restrito, assim como eventos do setor. Tudo era acadêmico, processos e padronização cada um tinha o seu. Lembro que escrevemos um documento que era uma espécie de mantra dos Devs, o nome do documento era: “10 mandamentos dos dev da EBS”. Começou num tom de brincadeira, mas era tipo uma constituição, e tentava resumir princípios básicos para ser dev na EBS. Um deles era “siga o padrão de nomenclatura já adotado”. Ou “Procure perguntar antes de fazer”, e outros mais engraçados como “Se não aguenta, por que veio?”.

Windows 95

Em agosto de 1995 a Microsoft lançou o Windows 95, quem não lembra da tela azul de Bill Gates no lançamento (https://www.youtube.com/watch?v=IW7Rqwwth84). Tirando este fato o Windows 95 era uma mudança enorme e de quebra de paradigmas na arquitetura de hardware de 16 bits para 32 bits. Era o começo do desenvolvimento do padrão USB da Intel, e a padronização de hardware e drivers entre fabricantes e Microsoft. Só quem configurou uma placa de vídeo ou som antes de 95 sabe o quanto era complexo fazer o jump das interrupções corretamente no sistema operacional e BIOS.

O Windows 95 foi um capítulo à parte da minha carreira, um divisor de águas no ambiente computacional. Em 1995 estava no primeiro ano do segundo grau quando ele foi lançado. Lembro que eu e mais um colega, saímos da escola e fomos a pé na Alltech Informática, o lançamento do 95 foi um evento mundial. E a Alltech era uma distribuidora de software na época. Lembro que eles tinham as caixinhas para você comprar. Isso é algo muito longe hoje, mas era assim que os softwares eram distribuídos na época pre-internet. Teve até matéria no Jornal Nacional, muito antes de Apple criar o frenesi do iPhone, a Microsoft fez isso com o 95. Ao som de Rolling Stones fomos para a casa do de um amigo da escola instalar os 12 disquetes do Windows 95. Estes dias num encontro ficamos relembrando esta época e a batalha de mais de 6 horas até conseguirmos enfim “bootar" o micro e observar a primeira experiência com o “Botão Iniciar”.

Internet

Vivi toda a transformação dos micros irem para a rede e depois internet. E tudo aconteceu muito rápido, em menos de uma década tudo mudou numa velocidade alucinante. Em 1996 a EBS colocou internet no escritório. Isso só foi possível porque no prédio que a EBS estava, tinha um provedor de acesso à internet. Com isso foi possível passar um cabo ligando a EBS a este provedor. Nessa época você precisava pagar para um provedor para ter acesso à Internet, você utilizava um “modem” que conectava na sua linha telefônica para isso. Era muito engraçado, na EBS haviam conexão 3 vezes por dia na Internet, que podíamos baixar e-mails e acessar algum site. Isso era meio esquisito, porque não tinha muito o que acessar, bem como não tinha muito e-mails para ler. Começamos a usar este período para conectar em redes de faculdades americanas para postar dúvidas e trocar informações em fóruns.

Este som era a abertura para um novo mundo que mudou com certeza a forma de como fazemos praticamente tudo.

Hoje é comum qualquer dev ter acesso a vários frameworks ou bibliotecas que já resolvem boa parte do problema. Repositórios de códigos (ex. Github) ou sites de referências técnicas (ex StackOverflow) fazem parte do cotidiano.

Aqui tem um fato bem interessante. Quando começamos a desenvolver em Delphi, colocamos os fontes num servidor de arquivos (por segurança e backup), todos os programadores “mapeavam” um drive (era “G:") e salvam os fontes no servidor. Como tinha mais de um pessoa acessando o código sempre havia sobreposições, ou ainda o que era pior, se alguém salvasse o código com erro, você na sua máquina não conseguiria compilar o programa, até que este programador arrumasse. Eram comuns os gritos no meio da sala: “Quem está alterando o arquivo xxx.pas”. Tempos difíceis mas divertidos. Criamos um software que fazia este controle – o nome do software era CICO (Check-In / Check-Out), este software rodou na EBS até a gente migrar para o SVN em 2001. Hoje todo mundo já sabe o que é um GIT.

Hoje em dia para mandar um e-mail em C#, por exemplo, basta acionar a classe do .NET SmtpClient, repassar seus parâmetros e chamar o método Send. Em 98 tive que implementar a RFC 821, muitos hoje até desconhecem o que é uma RFC. Olhando nesta ótica, tudo era mais demorado: codificar, testar, fazer deploy, colocar em produção. Absolutamente tudo era em ciclos maiores ou mais complexos. Quando foi preciso atualizar essa biblioteca que mandava um e-mail simples para que anexava um arquivo, foi necessário refazer tudo, e assim se foi quando adicionei a feature para enviar textos no formato HTML.

Outro exemplo foi que em Delphi não tinham nada satisfatório para resolver o problema de Relatórios. O Windows introduziram uma nova realidade para os sistemas. O conceito de WYSIWYG What You See Is What You Get, algo bem comum hoje ao visualizar um PDF ou documento no Word. Tivemos que desenvolver uma solução em casa que conseguia ao mesmo tempo, lidar com impressões de grande volume e ter um baixo consumo de memória e modernizá-la com o passar do tempo, implementando novas funcionalidades como salvar em PDF e exportar para Excel. Esta biblioteca (com nome de TEBSPrint) está rodando até hoje nos milhares de relatórios que os sistemas imprimem.

Uma máxima no desenvolvimento de software é que ele sofrerá modificações e/ou melhorias, não importa o quão bom é seu código ou quão complexo ele é. Melhorias e bugs sempre vão existir. E esse sistema ficará ativo por mais tempo do que você previu.

1999 a 2001

A partir de 1999 tivemos um dos maiores problemas da computação moderna. Para quem viveu esta época deve lembrar ou ouviu falar sobre o bug do milênio. Muitos programas e código não foram escritos pensando que um dia o sistema iria avançar além dos anos 2000. Para nós, na EBS, não foi diferente. Houve uma força tarefa na empresa para atualizar todos os códigos fontes, para que o sistema não tivesse problema com a entrada de datas superior a “01/01/2000”. Pode parecer bobo isso hoje, mas no passado uma data era armazenada no formato “dd/mm/yy”, logo um “31/12/99” era maior que “01/01/00”. Então imagina o problema para você atualizar e testar tudo.

Nos anos que se passaram, continuamos a nossa saga de desenvolvimentos em Windows, cada vez mais aumentando nossa capacidade e lidando muito com as limitações de hardware e software que tinham para a época. Neste período o Windows 98 já fora lançado, com uma proposta de atualizar e modernizar o 95, e a Internet já começava a dar sinais na forma como iria mudar a sociedade e as empresas. Portais na internet surgiam a cada momento, novos programas também. Quem viveu esta época com certeza tem lembrança do ICQ e Naspter, e da lembrança da bolha da Internet.

Com apenas 18 anos já tinha uma posição importante no time de desenvolvimento, não havia uma definição específica como é hoje programador Front, Backend, Design, Test, Arquiteto ou Engenheiro. Éramos todos fullstack, fazíamos de tudo, mas eu acabava ficando com toda parte de desenvolvimento mais ligado à pesquisa e coisas que fugiam do padrão.

Chegou à virada do milênio, estava com 20 anos. A EBS continuava crescendo muito, tanto que isso motivou a construção de uma sede própria. Nesta altura era umas das principais desenvolvedoras de software de Curitiba e do Paraná, talvez até do Brasil no que tange softwares para Escritório Contábeis. Como toda startup que cresce, os problemas operacionais começaram aparecer. Ainda neste período a EBS tomou uma grande decisão, parar com seu sistema “carro chefe” MSDOS e investir somente no Windows, que ficou conhecido como Cordilheira. No final dos anos 2000 a EBS tinha duas grandes frentes de negócios: Cordilheira e Everest. Everest era um ERP que primeiramente foi desenvolvido em 4GL/Informix e depois foi migrado para Delphi. Cordilheira era a conversão para Windows dos sistemas MSDOS de Folha de Pagamento, Contabilidade, Livros Fiscais e Correção Monetária.

A EBS tinha dois sócios, um comandava a área de desenvolvimento e outro a operação com vendas, financeiro e suporte. Existia uma divisão das equipes de desenvolvimento conforme os produtos. A equipe maior era do Everest, até porque o sistema era enorme e o backlog era bem grande e a cada nova venda aumentava a pressão por novos desenvolvimentos e novos módulos. Lembro vivermos atrasados, neste período começamos a olhar para planejamento e ferramentas de gestão. Ainda pode parecer muito louco, mas não havia nada. Eu me organizava com agendas e anotava as coisas que precisa fazer. Mas cada programador tinha seu próprio jeito organizar-se.

2001 a 2006

O ano de 2001 foi extremamente importante e definiu o rumo que tomei na minha carreira. A EBS passou por uma cisão. A empresa foi dividida ao meio. Cada sócio ficou com um produto e sua respectiva equipe. Lembro que ficamos com 33 funcionários (idade de Cristo). Eu fiquei na EBS, pois já estava atuando no desenvolvimento do Cordilheira. Neste período fui convidado para assumir toda área de desenvolvimento do Cordilheira, éramos incríveis 4 programadores responsáveis por tudo e por todos os produtos. Ainda existiam mais 3 pessoas que trabalhavam com os sistemas legados DOS, que apesar de não vender mais para novos clientes, era responsável por boa parte do faturamento da EBS.

Cordilheira

Toda minha família tem vínculo com contabilidade. Eu sou o único que não era contador ou estava estudando para isso, mas acabei caindo na contabilidade por outro caminho. Coisas da vida.

Quando assumi o Cordilheira, ele ainda não era a principal receita da EBS. Porém, toda venda nova, o Cordilheira era a opção a ser instalada. Com o crescimento da empresa, várias decisões sobre arquitetura do sistema foram tomadas de formas equivocadas. A principal delas foi tentar reescrever os sistemas DOS no Windows. Tipo usar um martelo para aparafusar um parafuso. Basicamente convertendo o sistema em DOS para Windows, e não re-escrevendo ele para uma nova experiência. Isso gerou um problema enorme para nós na época. A EBS foi pioneira em software Windows para sistemas contábeis, sendo assim pagou um preço alto por inovar. Os sistemas tinham muitos desafios, era um caos lidar com a quantidade de suporte e de problemas e, ainda consertar os problemas de arquitetura que tínhamos (chamamos isso de débito técnico e, como tinha débito para se pagar).

Logo tive que aprender a planejar e fazer gestão. Como os sistemas tinham muitos bugs (erros) , começamos a criar controles e formas de priorizar as coisas. Investir em teste, em planejamento, conceitos básicos. Também foi perceptível que era necessário integrar as áreas da empresa, logo assumi toda área de suporte ao cliente, uma coisa acabava dependendo da outra. Com o passar dos meses era perceptível a melhora dos indicadores. Controlava dois indicadores basicamente: quantidade de bugs abertos vs fechados, e quantidade de chamados com os clientes. Assim começamos a traçar planos de ação específicos para cada área. O que pude aprender nesta época:

Projeto Da Vinci

Em 2003 nasce o projeto Da Vinci, que seria a próxima versão do Cordilheira.

A ideia era quitar os débitos técnicos que fizemos no decorrer do desenvolvimento do Cordilheira (nesta altura o código já tinha mais de 5 anos) e introduzir inovações que seriam determinantes para o futuro da EBS e Cordilheira.

Um dos principais problemas que existiam, era a topologia de como utilizávamos o banco de dados. A decisão em 97 foi de utilizar o Microsoft Access como banco de dados. Quando se avalia uma decisão técnica tomada é preciso considerar os aspectos da época em que ela foi feita. Difícil julgar o certo e o errado. Para época era a decisão correta. Porém com o passar dos anos e a evolução das redes e computadores, percebemos que o MS Access não conseguiria chegar aonde era preciso ir. Começamos a pensar em possibilidades e novas ideias. Acabamos tomando a decisão de seguir com o SQL Server Express, uma versão mais light do Banco da Microsoft com algumas limitações de tamanho de base de dados e memória. Um dos problemas deste modelo, era que ele quebrava um diferencial competitivo da EBS. Era necessário ter um servidor com SQL Server num escritório de contabilidade. Isso envolveria custos extras e mudar a forma como o mercado pensava.

Optamos por assumir o risco e o DaVinci nasceu híbrido. Ou seja, o cliente que optasse por ter mais performance teria que investir em sua infra com SQL Server ou manter a versão em Access. Os desafios de manter um software rodando em duas stacks de bancos completamente diferentes são enormes. A decisão correta para época foi sempre escrever o código para Access e criar um “conversor” (compilador) que entendesse a sintaxe do Access e gerasse código TSQL para SQL Server. Éramos os únicos que fizemos isso na época, fomos diferentes e inovamos no modelo de desenvolvimento.

Também conseguimos inovar muito com o projeto DaVinci, várias regras de negócios foram implementadas que tornaram o Suíte do Cordilheira um dos melhores e mais poderosos do mercado. Isso contribuiu com o crescimento exponencial que a empresa teve. Até hoje as inovações de usabilidade são referência no meio.

Inovar só foi possível porque conseguimos estancar os problemas anteriormente. Foi necessário muito trabalho, mas a recompensa foi enorme. Todos que trabalharam comigo nesta época hoje são heads, gerentes ou líderes e carregam cargos de muita importância onde estão. Sou muito grato a esta equipe por ter me ensinado tanto e termos passado por tantos desafios juntos. Até hoje lembramos com muito carinho deste período e com um sentimento de missão cumprida.

A despedida

Em abril de 2006 tomei a decisão de empreender e sair da EBS, uma empresa que me acolheu por 12 anos. Nesta altura era um dos três funcionários mais antigos da empresa.

Serei eternamente grato a tudo que aconteceu lá. Hoje, sem sombras de dúvidas, sou o profissional que sou por conta da experiência adquirida na EBS. Serei eternamente grato a todos que participaram da minha jornada.

Optei por razões pessoais não compartilhar o nome das pessoas, mas quem me conhece sabe o carrinho que tenho por cada uma delas.

Empreender

Sempre trabalhei na EBS com a sensação de dono do negócio. Sempre quis empreender e era chegada a hora de partir para o próximo desafio que vou detalhar melhor no próximo post.