Papéis e responsabilidades na plataforma mainframe

Mainframes são computadores projetados para atender a milhares de usuários simultaneamente, em paralelo com outras centenas de processos batch. Para que isso seja possível, além de uma arquitetura diferenciada que garanta disponibilidade, segurança e performance, mainframes também precisam de uma equipe de profissionais com papéis e responsabilidades específicas.

As empresas e seus cargos

Cada empresa adota um plano próprio para designar as diversas funções necessárias em suas atividades de operação e apoio. Muitas vezes, os títulos atribuídos a cada profissional contratado tenta estabelecer não só a finalidade do cargo mas também o nível de senioridade daquele que o ocupa.

Independentemente do nome que aparece escrito na carteira de trabalho e no crachá, a área de TI ao longo do tempo adotou uma divisão de papéis mais ou menos comum.

O nome das funções em português nem sempre são uma tradução direta dos termos usados em inglês. Neste artigo, vou tentar associar os cargos que normalmente encontramos no Brasil com os nomes utilizados em países de língua inglesa.

Analista de Suporte (System Programmer)

O Analista de Suporte é responsável pela instalação, configuração, customização e manutenção dos sistemas operacionais e demais produtos de software disponíveis na plataforma mainframe.

Esse profissional normalmente responde pelas seguintes atividades:

  • Planejar upgrades de hardware e software básico
  • Planejar mudanças de configuração de harware e software básico
  • Multiplicar o conhecimento para os demais profissionais que atuam na plataforma
  • Desenvolver ou customizar ferramentas para automatizar, facilitar e/ou controlar o trabalho dos demais profissionais da plataforma
  • Planejar, ajustar e avaliar a capacidade de processamento e armazenamento
  • Orientar analistas de sistema e programadores quanto aos ajustes necessários em sistemas aplicativos para obter rendimento máximo e compatibilidade com os diversos produtos de software disponíveis na instalação

O Analista de Suporte é o primeiro profissional envolvido quando acontecem problemas de hardware e/ou software básico. Frequentemente ele é a pessoa que interage com os diversos fornecedores de equipamentos e sistemas do mainframe.

Dependendo do tamanho da instalação, pode haver Analistas de Suporte especializados em determinados produtos de software. É possível encontrar, por exemplo, analistas dedicados ao suporte dos gerenciadores de transação (CICS, IMS/DC e MQ-Series, por exemplo), outros aos gerenciadores de bancos de dados (DB2, IMS/DB, ADABAS…) e outros ainda aos sistemas operacionais (z/OS, z/VM etc.).

Administrador do Sistema (System Administrator)

O Administrador do Sistema é o profissional encarregado de manter a integridade das informações críticas da instalação, tais como: identificação dos usuários e seus níveis de autorização no sistemas de segurança e controle de acesso; dados corporativos nos sistemas gerenciadores de banco de dados; transações disponíveis nos sistemas gerenciadores de transação, e assim por diante.

O Analista de Suporte garante o funcionamento do equipamento e do software básico, enquanto o Administrador de Sistema acompanha como esses equipamentos e softwares são utilizados. Para ficar num exemplo prático: o Analista de Suporte instala, configura e resolve erros detectados no RACF; o Administrador do Sistema cria e define os níveis de autorização de cada usuário nesse produto.

Essa separação de funções tem o objetivo de aumentar a segurança da instalação e viabilizar auditorias futuras, restringindo ao máximo a quantidade de pessoas que têm acesso direto a informações sensíveis. Mas em instalações menores não é incomum que os papéis de suporte e administração de produtos sejam acumulados por um único profissional.

Analista de Sistemas (Application Designer)

A distinção entre analistas de sistemas e programadores tem desaparecido aos poucos. É cada vez mais frequente encontrar profissionais recém formados que são contratados como analistas de sistema, ou designados mais genericamente como “analistas/programadores”.

Na minha sincera (e muitas vezes politicamente incorreta) opinião, misturar os dois papéis é uma atitude demagógica de algumas organizações que querem atribuir mais responsabilidade para um profissional mais barato, muitas vezes despreparado para essa função.

O Analista de Sistemas é o profissional que visualiza uma operação de negócio da empresa como um todo, e entende como cada rotina, transação, programa, arquivo ou tabela de dados se encaixa num sistema para atender a essa operação.

Eu, particularmente (e vamos nós polemizar mais uma vez), não acredito em analistas de sistemas “não-técnicos”, ou que não têm experiência em programação. Ainda que as técnicas e ferramentas utilizadas para desenhar soluções sejam diferentes daquelas usadas para construir programas, só uma experiência real na atividade de programação permitirá ao analista especificar um sistema que não caia nas armadilhas de um programa mal projetado, uma tabela de dados mal definida, ou uma rotina excessivamente complexa. Mas essa é outra longa discussão…

As principais responsabilidades do analista de sistema são:

  • Desenhar soluções que atendam a determinada necessidade dos usuários dos sistemas aplicativos
  • Planejar as diversas atividades e tarefas necessárias para construção, teste, homologação e implantação dessas soluções
  • Interagir com os administradores de sistema para garantir a disponibilidade dos diversos recursos necessários para a solução: tabelas de dados, transações, scheduler para processamento batch, autorizações de acesso para a equipe etc.
  • Planejar a execução de testes unitários, testes de sistema, testes integrados e homologação da solução pelo usuário final
  • Orientar programadores para (ou participar diretamente na) atividade de construção, alteração e testes dos diversos programas envolvidos na solução
  • Acompanhar, endereçar e garantir a solução dos problemas encontrados nas fases de teste e/ou decorrentes de mudanças de projeto solicitadas pelos usuários
  • Planejar a implantação da solução juntamente com os administradores de sistema, analistas de produção e usuários finais
  • Acompanhar, endereçar e garantir a solução de problemas encontrados no período pós-implantação

A complexidade da TI aumentou muito nos últimos anos. Hoje, algumas das atividades listas acima são exercidas por profissionais especializados, com responsabilidades ainda mais específicas. É comum em empresas grandes e médias que existam, por exemplo, “analistas de teste” responsáveis pela qualidade das soluções implantadas. Sinceramente, algumas dessas especializações mais complicam do que ajudam. Mas enfim, de novo…

Programadores (Application Programmer)

Em última análise, o programador é o profissional responsável pela construção ou alteração de cada um dos componentes que fazem parte de uma solução projetada pelos analistas de sistema. O programador atua também na análise e correção de eventuais problemas provocados por um programa no ambiente de produção.

A melhor equipe de projeto do mundo é aquela que consegue combinar analistas experientes com programadores experientes, com um profissional complementando e agregando valor ao trabalho do outro. Já vivi situações trágicas onde o programador se limitou a “fazer o que o analista queria”, sem conseguir antecipar problemas evidentes na solução especificada. Também já passei por experiências em que o analista não acompanhou (ou não conseguiu acompanhar) o trabalho de construção, alegando que “fez a sua parte” quando tudo deu errado.

O programador precisa ter experiência e conhecimento técnico para implementar as funcionalidades especificadas pelo analista de sistemas. Enquanto o analista olha para o todo, o programador garante que cada engrenagem da solução funcionará da forma mais perfeita possível.

Programadores, por opção própria ou pelas circunstâncias da organização, normalmente se especializam em poucas linguagens e ferramentas de programação. Por mais experiência que tenham em, digamos, COBOL ou NATURAL, raramente poderão dizer que conhecem 100% do potencial dessas linguagens. O bom programador continuará estudando e testando formas de implementação para que o próximo programa seja sempre melhor do que o anterior.

Operador (System Operator)

O operador é o profissional responsável por monitorar e controlar o funcionamento do ambiente. São eles que iniciam e encerram tarefas e acompanham as consoles dos sistemas para intervir em situações incomuns.

São esses profissionais que executam os processos definidos pelos analistas de suporte e administradores do sistema para funcionamento do hardware e software básico. São eles, por exemplo, que iniciam os procedimentos de backup, interrompem sistemas para manutenção, emitem alertas para a comunidade de usuários etc.

Em caso de falhas ou situações inesperadas, normalmente são os operadores que acionam os analistas de suporte e/ou os administradores de sistema da instalação.

Analista de Produção (Production Control Analyst)

Um mainframe normalmente possui centenas ou milhares de processos batch para serem executados. Esses processos podem ser rotinas periódicas dos sistemas aplicativos (jobs para processar todas as transações financeiras do dia anterior, por exemplo) ou procedimentos exigidos pelos próprios produtos de software básico (uma rotina para bloquear usuários que não utilizam o equipamento por “x” dias).

A execução de todos os processos batch é planejada em schedules, que preveem não só quando cada um deles será executado, mas também as relações de dependência entre eles. O schedule estabelece, por exemplo, que o job Y só pode ser executado depois que o job X terminar com sucesso; e que não pode ser executado junto com o job Z.

A execução dos jobs, propriamente dita, é disparada por softwares específicos, tais como o Control-M (da BMC), o ADC2 (da Computer Associates) ou o Tivoli Workload Scheduler (da IBM).

O Analista de Produção é o profissional responsável por configurar e acompanhar o schedule de jobs. Para isso, ele interage frequentemente com analistas de sistema e administradores do sistema, para garantir que os recursos de processamento batch do equipamento sejam consumidos da forma mais eficiente possível.

Em instalações com boa comunicação entre analistas de sistema e analistas de produção, o ambiente batch é enxuto e otimizado. Muita burocracia, rivalidade ou distância entre essas duas áreas, porém, podem prejudicar tanto o desempenho dos sistemas aplicativos quanto a performance do ambiente como um todo. Em grandes instalações onde essa comunicação é ruim, não é incomum que nem os analistas de sistema nem os analistas de produção saibam exatamente quais são os jobs que rodam em cada sistema.

Comparações com outras plataformas

Naturalmente, o número de pessoas envolvidas está diretamente associado à quantidade de servidores, interconexões, produtos, sistemas, transações e processos suportados pela instalação.

Plataformas distribuídas necessitam praticamente dos mesmos papéis e responsabilidades que vimos neste artigo. Talvez a diferença seja que com mainframes as funções de cada um sejam mais bem definidas e estanques, para o bem e para o mal.

Cabe aos gerentes de TI garantir a harmonia, a comunicação e a colaboração mútua de cada um desses profissionais. E é aí que está o grande desafio!

Publicado por

P.A.Dias

Paulo André tem mais de 30 anos de experiência em desenvolvimento e manutenção de sistemas em plataforma mainframe. Atuou como programador, analista, coordenador técnico, gerente e executivo de projetos em uma multinacional da área de Tecnologia da Informação.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *