Uma sensação de desconforto começa a tomar conta de algumas das maiores instalações de TI do planeta. Onde estão os novos profissionais de mainframe que vão substituir aqueles que estão se aposentando?
"O futuro é o Clipper"
Quando me matriculei no meu primeiro curso de COBOL, em 1984, um amigo também interessado em computação me avisou:
– Cara, o COBOL tá morrendo! O futuro é o Clipper!
Para quem chegou a menos tempo, o Clipper era uma linguagem desenvolvida pela Nantucket no início dos anos 1980 e que permitia o desenvolvimento rápido de pequenas aplicações para MS-DOS. Demorou para fazer uma transição eficiente para a plataforma Windows e foi completamente atropelada por Visual Basic, Delphi e Powerbuilder em meados dos anos 1990.
De lá para cá trabalhei (e continuo trabalhando) com COBOL em bancos, seguradoras, empresas de telefonia, grandes redes varejistas e institutos de previdência.
Já dei manutenção em sistemas mais velhos que eu. Já reconstruí (em COBOL) programas que foram codificados antes do "advento" da programação estruturada. Participei de alguns projetos que tentaram reescrever alguns desses sistemas em outras plataformas e fracassaram num pesadelo de restrições técnicas, falta de performance e dificuldades de governança… Também participei de alguns projetos que jogaram fora o sistema antigo e reescreveram tudo… em COBOL.
Por que o COBOL se recusa a morrer?
Linguagens de programação às vezes se parecem com jogadores de futebol. Têm um desenvolvimento rápido quando saem das divisões de base, chegam ao auge no mercado profissional e depois começam a perder desempenho. Sofrem pressão de "jogadores mais jovens" que estão despontando, vão para o banco de reserva e terminam num time da segunda divisão do Acre, quando caem no esquecimento da mídia.
O COBOL, estranhamente, parece seguir outra trajetória. Uma pesquisa encomendada pela Micro Focus e realizada pela Harris Interactive mostrou que o COBOL está presente em 70% das grandes empresas, 90% de todas as transações financeiras (incluindo operações em caixas eletrônicos), 30 bilhões de transações eletrônicas por dia, 200 bilhões de linhas de código em processamento…
Voltando à nossa analogia esportiva, é como se um jogador de quase 60 anos ainda estivesse jogando no Manchester, no Barcelona ou no PSG.
Uma das muitas explicações para esse fenômeno (que a cada ano parece incomodar mais e mais as publicações especializadas) está no fato de que o COBOL ainda está no centro nervoso das grandes empresas. Muitos sistemas departamentais migraram do mainframe para plataformas distribuídas. Muitas aplicações novas surgiram, em outras plataformas. Mas o COBOL permaneceu no coração dos sistemas de missão crítica das grandes empresas.
E substituir sistemas críticos, como dezenas de milhares de programas, outros milhares de funcionalidades e milhões de linhas de código, não é um projeto simples nem seguro. Sendo mais objetivo do que isso, o investimento realizado para fazer essa substituição não teria um ROI que o justificasse.
Ficou em dúvida se o ROI realmente não justifica? Vejamos de forma bem simplista o que significa substituir um sistema crítico:
Contratar uma nova equipe para levantar requisitos funcionais e não funcionais, desenhar, construir, testar e homologar o novo sistema (a equipe antiga precisa dar manutenção no sistema anterior)
Disponibilizar infraestrutura (servidores, instalações, energia, integração…) e suporte (administradores, operadores…) para desenvolvimento, teste e implantação do novo sistema
Redefinir procedimentos operacionais (políticas de segurança, backup, auditoria, produção, sustentação…)
Treinar todos os usuários
Planejar um roll-out gradual para migrar clientes e operações de um sistema para o outro (ninguém vai querer virar a chave de uma vez)
Congelar (ou duplicar) todas as manutenções evolutivas (inclusive necessidades de negócio) enquanto durar o roll-out
Anos de CapEx pesado investido num projeto que só seria aprovado se prometesse um ganho pagasse todo o investimento no médio prazo, cinco anos no máximo.
"Vender" um projeto desses não seria fácil: dizer que o Java é mais moderno e mais legal só faria a diretoria achar graça. Demonstrar uma eventual (mas não garantida) queda no TCO deixaria muita gente na dúvida. E na dúvida, deixa como está.
A eutanásia esteve próxima
Se houve um momento na história da computação em que o COBOL teve sua sobrevida discutida, esse momento sem dúvida foi o bug do milênio.
Naqueles dois ou três anos que antecederam o ano 2000, muitas das grandes empresas usuárias do COBOL cogitaram seriamente a possibilidade de substituí-lo. Afinal, se havia necessidade de varrer todos os programas fonte em busca de anos com dois dígitos, alterar todos os programas, testar, homologar e dar suporte pós-implantação, por que simplesmente não jogá-los fora e escrever tudo de novo? Ou comprar um pacote, se houvesse um?
Muitas propostas comerciais milionárias foram apresentadas nesse período. Mas o que fechou a decisão foi o preço e o retorno. Renovar o código para trabalhar com ano de quatro dígitos não foi barato. Mas reescrever tudo (ou preencher os gaps de um pacote) seria muito mais caro.
O bug do milênio serviu não só para mostrar a inviabilidade econômica de uma migração de sistemas em massa. Naquele momento acendeu-se uma luz amarela, inicialmente pequena, mas que vem ficando mais intensa a cada ano: onde estão os "novos" programadores COBOL?
Quem vem nos substituir?
Em 1998/1999 não havia profissionais suficientes no mercado mundial para atender à demanda por COBOL (e NATURAL, PL/I, Assembler, Easytrieve…) para projetos do bug do milênio. Conheço muita gente daqui que foi contratada em Portugal, nos Estados Unidos, na Austrália, na França… E vi muita empresa brasileira tendo que encontrar e oferecer emprego para profissionais já aposentados ou que haviam mudado de profissão. O valor/hora oferecido valia a pena tentar de novo.
Nunca se pagou tão caro. Nunca se produziu tão pouco. Vi antigos analistas se esforçando para voltar à ativa. Só que eles não sabiam usar um mouse… nem o Windows, nem o Office, nem nenhuma outra ferramenta de apoio tão comuns naquele momento… Deixaram seus empregos e seus terminais 3278 para trás e quando voltaram se viram na sala de comando da USS Enterprise com o Capitão Kirk falando uma língua que eles não entendiam…
O ano 2000 passou. Os sistemas foram adaptados e, por isso, nenhuma das desgraças anunciadas nos anos anteriores se confirmou. A demanda pelos programadores COBOL voltou ao normal e o tempo foi passando.
Em 2013, outra pesquisa global encomendada pela Micro Focus mostrou que 73% das universidades com cursos de computação não tinham mais nenhuma disciplina específica para o COBOL.
Em 2014, uma pesquisa da Bloomberg mostrou que mais da metade dos programadores COBOL tinham mais de 50 anos e estavam próximos da aposentadoria.
Traçando as duas retas é fácil ver onde elas vão se encontrar no futuro próximo: vai faltar gente no mercado, de novo.
Essa já é uma preocupação, por exemplo, da Office of Personnel Management (OPM), agência do governo americano responsável pela gestão da mão de obra civil no governo federal. Em março de 2014, a OPM divulgou um relatório chamado "Strategic Information Technology Plan", onde sinalizava um crescimento de 10% a 15% no salário dos programadores COBOL, uma vez que "os profissionais com experiência na linguagem estão se aposentando e não podem ser substituídos com facilidade". A agência responsável pela seguridade social nos EUA, por exemplo, declara ter 60 milhões de linhas de código em sistemas críticos em produção.
Em 2012, a Computerworld publicou um artigo especificamente sobre a crescente falta de profissionais qualificados em COBOL e o quanto essa preocupação vinha aumentando entre os CIOs.
Toda vez que leio um daqueles artigos que falam "nas 5 linguagens de programação que vão bombar no ano que vem", eu me lembro do meu velho amigo de colégio garantindo que o futuro era o Clipper.
Eu torço para que o Java – linguagem que por acaso gosto muito – tenha uma vida tão longa e próspera quanto o COBOL. Acho mesmo que o PHP é uma mão na roda pra quem gosta de client-side e front-end…
Mas se um dos meus filhos, um dia, demonstrar algum interesse por programação, vou começar falando assim:
– Um programa tem quatro divisões…
Publicado em 2 de dezembro de 2016 Autor P.A.DiasCategorias ReflexõesTags Carreira, COBOL, NVLa, Programadores
2 comentários em "Será que já é hora de aprender COBOL?"
CLAUDIO ALOISIO PEREIRA disse:
6 de abril de 2019 às 23:48
Paulo Andre boa noite.
Adorei saber de todas essas mudanças que estão tentando com o nosso Cobol, tenho 65 anos trabalhei cerca de 30 anos com o antigo RmCobol, me aposentei cerca de dois anos por problemas da empresa não evoluir numa melhora em compiladores Cobol.
Hoje tenho saudades e vontade de programar, pois as empresas acho que não aceitam por que é preciso Db2 outras atualizações.
Você acho que com uma cabeça boa e vontade programas tem vaga no mercado pra um cidadão de 65 anos,
Olá Claudio. Ao contrário do que muita gente fala, acho que no mercado de Cobol e Mainframe a idade vai (ter que) ser um fator cada vez menos impeditivo. E por um motivo simples: não existe renovação nessa área e os grandes sistemas estão muito longe de passarem por uma reengenharia completa. Um grande abraço e boa sorte.