Muito me interessou essa possibilidade de conviver com os mais diversos tipos de pessoas, que não conhecem a fundo computação e ter como desafio se fazer claro, quando se explica o porquê de uma solução para um dado problema ser melhor que a outra, sem o uso de muitos termos técnicos. Isso é especialmente importante para completar a formação de um aluno do Bacharelado em Ciência da Computação na Universidade de São Paulo, que ficou a desejar não no aspecto de gerar soluções tecnicamente ótimas para problemas computacionais dos mais complexos, mas no sentido de saber avaliar todas as soluções cabíveis e decidir qual delas é a mais apropriada dentro do prazo, orçamento e benefício trazido por cada uma delas.
Outra coisa que me atraiu e conhecer e ter uma resposta de como os usuários avaliam e utilizam nossos programas, pois, enquanto na faculdade, o usuário dos nossos programas, são, basicamente, nós mesmos, o que não nos dá uma idéia muito boa de como reagiria uma pessoa àquele programa caso ele não conheça seu funcionamento interno.
Por fim, trabalhar com dados reais, plausíveis a erro de entrada,
de comunicação,com a necessidade de tratar todos os possíveis
erros e com uma quantidade de informação grande o suficiente
para que realmente faça uma diferença significante o uso
da solução adequada para os problemas computacionais.
A Synercomm é uma empresa de desenvolvimento de soluções para a área de IT (Tecnologia de Informação, em inglês) que também presta serviços de consultoria para algumas empresas, como era o caso da BCP Telecomunicações , que por sua vez é uma grande empresa de telefonia celular que opera em São Paulo, a cerca de 3 anos, na banda B, tendo como maior concorrente a Telesp Celular.
A BCP Telecomunicações é uma empresa nacional fundada em 9 de julho de 1997, quando foi assinado o contrato de licitação. Para operar a telefonia móvel celular da Banda B no Nordeste (Alagoas ao Piauí) a BCP pagou R$ 555 milhões. E em São Paulo, foram pagos mais de R$ 2,67 bilhões.
A tecnologia utilizada pela BCP é a TDMA. Por ser digital, o sistema proporciona diversos benefícios, tais como recepção nítida, com melhor qualidade voz; maior segurança contra fraude e aumento da duração da bateria.
Evito aqui maiores detalhes sobre as empresas em si, por serem empresas
conhecidas pelo grande público, mas quaisquer informações
complementares sobre as mesmas podem ser obtidas através de seus
sítios na Internet, que podem ser visitados clicando-se sobre o
nome delas aqui nessa página.
Nesse início, as informações técnicas que estávamos recebendo não apresentaram muita novidade aos adquiridos durante o curso da graduação, porém foi de fundamental importância porque foi nos apresentada a maneira que os serviços eram apresentados e executados e qual o tipo de projetos que teríamos pela frente.
Esse treinamento se baseou, enquanto na parte técnica, em aulas teóricas ministradas por um consultor da Synercomm que posteriormente viria a ser nosso companheiro de trabalho dentro da BCP. Esse primeiro contato com alguém que trabalhava na empresa, foi muito bom, pois mesmo nos intervalos da aula, a turma (eram por volta de 12 estagiários fazendo esse treinamento) teve a chance de conversar bastante com essa pessoa, o que nos possibilitou ter uma idéia muito boa do ambiente que nos esperava, assim como os problemas que poderiam ser enfrentados ao mesmo tempo que já nos serviria de um contato seguro e já familiar na nova empresa, o que facilitou muito meu entrosamento inicial quando comecei a trabalhar na BCP, propriamente dita.
A parte de negócios da BCP dada no treinamento, foi lecionada por gerentes ou analistas da BCP que perderam um dia trabalho para nos apresentar todas as áreas relacionadas a Tecnologia de Informação da empresa, uma a uma, cada gerente falando da sua área, nos aspectos de qual sua utilidade dentro da empresa, qual os serviços relacionados, quais os softwares envolvidos na produção, quantas pessoas teriam na equipe e qual a possível ajuda que nós, como estagiários, poderíamos oferecer.Essas palestras, não foram profundas o suficiente (no caráter técnico do funcionamento das partes) pois nesse momento, ainda não se sabia para qual área cada estagiário seria alocado inicialmente, mas o que teria ficado certo é que uma vez alocado, teríamos a oportunidade de mudar de área, caso não agradasse a nós ou nossos supervisores.
Nessa separação de estagiários pelas áreas (que eram muitas, entre elas Bill Mediation, Billing, Plataformas, Infra-estrutura e Office Automation), eu fui escalado para trabalhar na área de Plataformas. Essa é a área da empresa que cuida de tratar as informações que vêm diretamente dos Switches da empresa (normalmente os logs de todas as ligações efetuadas pelos clientes BCP) e repassá-las às outra áreas de maneira que a informação se tornasse legível para elas e também algumas outras coisas, como os servidores que cuidam das caixas postais de cada linha telefônica, do sistema Anti-Fraude da empresa (que visa evitar e remediar casos de clonagem de celulares ou mesmo detectar alterações no comportamento de usuários para prever possíveis roubos ou clientes do serviço pós-pago que não terão como pagar suas contas no futuro, do sistema de ScanDoc, que cuida de digitalizar, armazenar e disponibilizar informações referentes a contrato de clientes ou qualquer outra informação relevante que esteja em papel, do sistema de envio de mensagens de texto curtas (SMS) utilizada no serviço Digimemo e também de toda a plataforma Pré-Pago, que é o sistema inteiro de telefonia pré-paga da BCP. Cada área dessas é chamada de plataforma por serem coisas independentes uma das outras e razoavelmente pequenas, funcionando para o resto da empresa, como caixas-pretas, que precisam estar funcionando muito bem.
Essa área, em princípio, não era a que eu tinha preferência imediata, que seria a área que cuida do sistema SAP (famoso sistema de administração de grandes empresas), porém logo de cara percebi que dentro da equipe de Plataformas, eu também ficaria muito satisfeito pelas pessoas envolvidas na equipe e também pelo fato de eu poder ser muito útil para ajudar a equipe como um todo no que ela precisasse. Isso se deu, pelo fato da equipe ser constituída por 6 pessoas (5 analistas e 1 gerente), das quais o gerente e dois analistas eu já conhecia, pois eles deram algumas palestras durante o treinamento, e também pelo fato que muitas das coisas que se desenvolviam por lá eram feitas em Perl, linguagem que eu gosto muito e já era fluente, porém apenas uma pessoa da equipe conhecia bem a ferramenta, o que deixava a plataformas do Pré-Pago muito carente de recursos, e foi onde eu fui inicialmente alocado devido à essa habilidade. Formalmente, eu fiquei alocado para a área de Plataformas como um todo, por isso eu sempre era requisitado pelo gerente ou pelos outros analistas eu atendia de prontidão, mas ocorriam bem menos requisições na outras áreas.
Outra coisa que me deixou muito contente foi o tratamento que recebi de todos da minha equipe. Fui muito bem recebido por todos, que se dispuseram logo de início a ajudar em tudo que possível e disponibilizaram para mim, já tudo o necessário para que eu pudesse trabalhar logo na primeira semana, tanto micro computadores, quanto baia, manuais, ramal telefônico e principalmente muita ajuda em conhecer a BCP e também como funcionavam grandes empresas a nível político e administrativo. Todos também se mostraram compreensivos na minha situação de estagiário, primeiro emprego e sempre me apoiaram, fazendo que eu ficasse bastante confortável e tranquilo para realizar minhas atividades.
Foi uma grande oportunidade de lidar com muitas tecnologias e áreas
diferentes,como por exemplo servidores HPUX, Digital (Compaq) e Windows
NT, provendo a chance de trabalhar em vários Sistemas Operacionais
distintos e em problemas reais, que demandavam agilidade e corritude nas
soluções encontradas por estar em jogo, entre outras coisas,
a reputação da empresa perante o público alvo.
- Principais Atividades Desenvolvidas
Como descrito nas atividades indexadas por semana, abaixo relacionadas, forma muitas as atividades desenvolvidas durante o estágio, algumas relacionadas a trabalhos puramente de pesquisa, outros muito simples e braçais, mas de extrema importância para a empresa alguns difíceis, outros mais fáceis, usando muito do conhecimento adquirido no curso de graduação,ou mesmo quase nada. Mas entre eles, eu gostaria de destacar duas realizações que me deram muita satisfação em vê-los funcionando e sendo usados por clientes internos e externos da BCP e que exigiram muito esforço e algum conhecimento técnico. Uma visão geral e imagens de telas e relatórios podem ser vistos no cartaz feito para esta disciplina, assim como em sua apresentação, ambas no formato powerpoint, nesse mesmo diretório sob os nomes de cartaz-formatura.ppt e apresentacao-formatura.ppt.
PAGINA DE ENVIO DE DIGIMEMO:
O Digimemo é o serviço de SMS (Short Message System) que a BCP oferece a seus clientes. Com ele, os clientes podem enviar através de um site mensagens curtas de texto diretamente para algum celular, digitando o número deste celular. A parte de engenharia do serviço, já estava implantada, restando, então, para nossa equipe, disponibilizar o site aos clientes BCP e tratar suas informações, mandando-as para um servidor específico no formato correto com tratamento para verificar se o cliente realmente paga o serviço através de uma consulta a um banco de dados, verificação anti-spam para proteger nossos clientes de mensagens em massa e verificação se o pedido foi realmente feito através da página da BCP e não através de um outro mecanismo, pois nesse caso terceiros poderiam oferecer esse serviço em suas páginas na internet sem pagar nada para a empresa, além de manter um detalhado log de todas as atividades para consulta e verificação posterior.
Na prática foi nos dada pronta a parte gráfica da página, que foi desenvolvida pela equipe de marketing da empresa e fizemos todo o mecanismo que roda "por baixo" da página em CGI-Perl. Esse foi o primeiro serviço que os clientes externos (clientes da população em geral e não funcionários internos) da BCP utilizariam que eu desenvolvi e foi muito interessante a sensação de fazer algo realmente útil para a empresa, ao mesmo tempo que o funcionamento do sistema não poderia de forma alguma não agir conforme o esperado pelo usuário e havia um prazo a ser comprido mais rígido que o habitual. Houve uma extensa fase de testes e correção de bugs em várias situações distintas e o resultado ficou muito bom, além do satisfatório.
Depois de aproximadamente dois meses, com a popularização do serviço, o servidor destinado para essa função (um HPUX) começou a apresentar alguns problemas devido à grande carga de mensagens enviadas. A solução que havia sido decidida pelos analistas foi de comprar uma nova máquina para ajudar a primeira em sua tarefa, porém, com uma análise mais cuidadosa dos scripts, percebi que algumas buscas e logs que estávamos realizando eram desnecessárias, por haver jeito muito mais rápido e prático, mantendo informações em menos arquivos e também arquivos menores, que era o gargalo do sistema, tanto pelo fato se ser uma operação de I/O mas também pelo fato de que com o grande volume de mensagens, havia grande espera dos processos devido à proteção do sistema à concorrência. Com essas alterações a algumas otimizações no código, aprendidas com o extenso uso de Perl durante o estágio, o envio de mensagens ficou de 10 a 20 vezes mais rápido, evitando assim a compra de uma nova máquina.
Esse mesmo sistema foi usado cerca de dois meses depois para enviar extratos
e saldos bancários para clientes dos bancos Safra e Itaú,
de acordo com contratos firmados entre as empresas. Nessa parte a experiência
nova foi a participação de algumas reuniões com grandes
clientes, como os analistas e gerentes do Itaú durante a negociação
desse sistema de envio de saldos e extratos.
GERADOR AUTOMÁTICO DE RELATÓRIOS:
Um problema que consumia muito do meu tempo era a geração de relatórios detalhados de celulares pré-pagos. Esse relatórios eram pedidos por clientes internos, que chamávamos de REP, que são as pessoas que atendem os clientes quando eles ligam para a BCP reclamando ou perguntando algo. Sempre que um cliente da BCP contestava alguma ligação, ou suas durações o REP abria uma CAU (Chamada de Atendimento ao Usuário), que chegavam até nós através de um software que abríamos sempre que lembrávamos. Daí, logávamos em uma máquina HPUX, rodavámos um script que percorria todos os arquivos de log do período selecionado, que contém todas as ligações realizadas por todos os clientes da BCP São Paulo e Nordeste, separando-as num determinado arquivo. Esse processo demorava aproximadamente 5 dias, caso ninguém reiniciasse o servidor sem avisar. Uma vez isso feito, transferia-se o arquivo para a Workstation Windows NT 4.0, Service Pack 5 e através do software Microsoft Access, se convertia isso num relatório legível e imprimível de aproximadamente 600Kb, que era encaminhado ao solicitante anexado em um e-mail, cerca de uma semana depois, em média.
Esse era um processo que era nitidamente mecânico e deveria ser automatizado, mas ninguém ainda tivera tido tempo para tanto. Por ser um projeto muito interessante, útil e relativamente fácil, sugeri aos meus supervisores, que disseram que contanto que não atrapalhasse minhas outras atividades eu poderia e deveria fazê-lo, e adotei-o como meu objetivo antes de sair da empresa.
Foram muitas as atividades realizadas até que ficasse pronto o projeto, começando por disponibilizar máquina, que seria no próprio servidor HPUX, onde eram guardados os logs das chamadas, onde foi desenvolvido inicialmente, que por sinal, surgiram muitas dificuldades provenientes disso, uma vez que nesta máquina existia apenas o Perl 4 e não a versão 5 como era esperado. Isso impossibilitou o uso de ponteiros e algumas estruturas de dados mais eficientes, embora o desempenho final do sistema tenha ficado muito bom. Ao final do projeto, depois de pronto, fui obrigado a converter o necessário para tudo funcionar em um ambiente Red Hat Linux, uma máquina especialmente para isso que ficaria fisicamente situada no Nordeste, pois o gerente de lá gostou muito e resolveu implantar por lá para acesso da empresa tanto do nordeste quanto de São Paulo.
O processo consistia em alguns scripts que foram adicionados ao cron da máquina para filtrar e comprimir os arquivos de log diariamente (com isso os arquivos originalmente de cerca de 600Mb ficariam reduzidos a 10% de seu tamanho, mas ainda muito grandes para poder jogar tudo para a memória da máquina, o que me obrigou a desenvolver novos métodos de programação, obrigatoriamente com arquivos, mas com o mínimo de acesso possível a eles). Além disso, foi criado uma página com todo o tratamento da entrada feito por JavaScript, onde o REP informaria o celular desejado, o período do relatório e seu e-mail. Assim, automaticamente, era iniciado um processo CGI-Perl que vasculha esse novos arquivos de log, separando as informações do dado celular, no dado período em um novo arquivo. Esse arquivo, assim que concluído, era inteiramente lido e então, uma último arquivo era criado, um arquivo onde as informações eram formatadas em formato de uma tabela HTML, exatamente com a mesma aparência do antigamente gerado pelo Microsoft Access, porém com aproximadamente 40kb, que era anexado, instantaneamente pelo sistema a um e-mail contendo as informações do relatório pedido que era mandado ao endereço fornecido na página pelo REP no início do processo. Todo esse processo demorava cera de 2 horas.
Como resultado do projeto depois de implantado, foi minha profunda alegria
em ver algo que fiz sendo largamente utilizado pela empresa, e o enorme
ganho de tempo que resultaria, no fim, em maior satisfação
dos clientes internos e externos da BCP.
Levantamento dos Servidores BCP relacionados com a área de Plataformas para Auditoria
Estudo da Ferramenta de Análise de Performance da máquina de Bill Mediation
Administração de redes Windows NT (4.0). Esse curso foi bastante teórico e muito útil, porém, faltaram máquinas para a parte prática, que ficou debilitada.
Diversos cursos de funcionamento dos sistemas da empresa. (GEMCO, GGS, Switch Control, Price Plan, MPS, MAF, Guide Rating, Billing, AR, DETRAF (interconexão), que não acho que convém comentar aqui, pois são coisas muito específicas da empresa e do negócio (telecomunicações))
Trabalho:
Alteração no ftp_cdr para que houvesse tratamento de erros e envio de e-mail em caso de falha.
Continuação
de estudo da ferramenta de performance. A idéia desse estudo é
conhecer a nova ferramenta, que até agora era desconhecida para
com um controle de utilização de recursos nas máquinas,
podermos saber com certa antecedência quando precisaríamos
comprar novos componentes, como discos rígidos, memória,
outro CPU, placas de rede, novos softwares, descobrir possíveis
processos que prejudicam o bom andamento de outros, para que esses possam
ser terminados, ou executados em horas de menor demanda da máquina.
Estudo sobre a possibilidade de implementar de maneira segura e eficiente a troca de mensagens entre servidores e clientes da BCP. Para isso realizei uma pesquisa na área, procurando por métodos de implantar o PGP ou o RSA nas comunicações. Concluí que não era viável, pela perda de performance, mas principalmente porque os clientes não estavam preparados para entender essas mensagens.
Levantamento sobre características físicas dos telefones celulares disponíveis no mercado para um futuro estudo sobre o desenvolvimento em tecnologia WAP, Internet sem fio.
Concatenação
de arquivos na área de ScanDoc da empresa. Um problema bastante
interessante, embora seja uma tarefa um tanto pedante, que passei algum
tempo depois procurando uma solução melhor do que a utilizada
no momento.
Script Perl para tratamento de arquivos vindo do Banco Safra, com informações de clientes, que deveriam ser tratadas antes de passar para outras áreas da empresa, como por exemplo, a área de Marketing.
Desenvolvimento do ftp_cdr, explicado acima.
Desenvolvimento
do zzz.cgi, explicado acima.
Script para adicionar um bônus promocional na plataforma Pré-Pago para clientes do Bradesco.
Trabalho
no ScanDoc, com a concatenação de arquivos.
ScanDoc.
ScanDoc
Shell
script para manter a consistência da base de clientes habilitados
a receber mensagens texto (Digimemo) no celular em todos os servidores.
Instalação da máquina de Test Call. Uma máquina um pouco diferente dos PC's comuns, pois essa máquina da Dell possui uma pequena antena que a possibilita de se comunicar com todas as bases de retransmissão da BCP (Switchs) e realizar chamadas celulares e fixas dentro da rede BCP para os mais diferentes testes e consultas. Infelizmente, depois de algum tempo, a máquina foi transferida para outra sessão e não pude aproveitar muito dela.
Princípio
da documentação do relatNTC.pl, que seria futuramente passada
para o DataCenter de São Paulo e à área de Atendimento
ao Cliente do Nordeste.
Produção de relatórios.
Começo
do desenvolvimento do bkpdata.pl, que hoje é responsável
por todo o Backup dos CDR (Call Detailed Record), que é o registro
diário de todas as ligações feitas na rede BCP, priorizando
preservar ao máximo as informações, que não
podem nunca serem perdidas e por isso foi preciso um alto nível
de tratamento de erros e também tomar o cuidado de deixar
que seja mandado um e-mail automaticamente aos responsáveis em caso
de falha. Esse script seria no futuro utilizado para auxiliar o relatNTC.pl.
ScanDoc
Reunião
com nova diretoria.
Produção de relatórios.
Com
a saída de alguns membros da equipe, tive nessa semana que apresentar
as tarefas e soluções aos novos integrantes, o que foi até
que bastante bom, pois aprendi um pouco do trabalho dos meus companheiros
de trabalho.
Também
tive que parar um pouco com o desenvolvimento para acertar minha situação
legal no estágio, pois a partir do dia 19/06 eu estaria sendo contratado
pela BCP como estagiário e não mais pela Synercomm. Mudança
apenas de salário e benefícios, continuaria no mesmo serviço.
Treinamento
formal para novos ingressantes BCP, apresentando a empresa e negócio
de telecomunicações em si.
- 23a. Semana (24/07 - 43 horas)
Estudo de desenvolvimento
de API's para uso em conjunto com o Oracle.
Desenvolvimento
do PPG_REMOVE.
- 24a. Semana (01/08 - 27 horas)
Implantação do Gerador de Relatórios.
Visita ao Switch Jaguaré.
PPP_Remove.
PPP_Ajuste.
- 25a. Semana (07/08 - 27 horas)
Implantação do Gerador de Relatórios.
Assistência para o novo contratado para minha vaga.
TOTAL DE HORAS: 677
Com minha entrada na BCP como estagiário dessa vez, e não mais como consultor externo, foi feita uma programação, um plano de estágio bastante simples, visando a chegada da nova Plataforma Pré-Pago que chegará e será implantada em Agosto (embora a implantação tenha futuramente sido adiada para janeiro de 2001 e eu tenha saído da empresa no decorrer de agosto), que eu exponho a seguir:
Julho 2000:
Treinamento em Pré-Pago para implantação da nova plataforma em Agosto de 2000. (adiado)
Curso em ASP e desenvolvimento
de aplicações ASP. (adiado)
Agosto 2000:
Curso SQL-Server e desenvolvimento
de aplicações com SQL-Server.
Outubro 2000:
Curso Oracle para desenvolvimento.
Curso Visual Basic para desenvolvimento.
Novembro 2000:
Conhecer e desenvolver relatórios
gerenciais.
Dezembro 2000:
Integrar a equipe de
desenvolvimento do Produto.
- Lista das Disciplinas Consideradas mais Importantes para o Estágio