Monografia

Aluno: Marcos Wada
Empresa: iG - Internet Group
Período: fev/2001 - dez/2001
Supervisor: Antonio Galleão
Orientador: Marcelo Finger




1. Introdução

   O objetivo do meu trabalho de formatura da disciplina MAC-499 consiste em descrever as atividades realizadas, estrutura de trabalho, experiências obtidas e conclusões a respeito do meu estágio na empresa Internet Group do Brasil LTDA realizado no período de fevereiro à novembro de 2001.


2. Empresa

   A empresa Internet Group do Brasil LTDA, fundada em janeiro de 2000,  foi um dos primeiros provedores gratuitos a surgir no país. Adotando diversas estratégias de marketing e investindo em uma campanha publicitária ambiciosa, o iG se tornou o maior provedor de acesso e conteúdo gratuito do país. Ao contrário dos diversos outros provedores gratuitos que foram fechando um a um, o iG conseguiu sobreviver às crises sofridas pelas empresas pontocom, sabendo se adaptar aos tempos de vacas magras e evoluir dentro do ramo da Internet.
   Uma das medidas tomadas pelo iG foi a venda de toda a sua infra-estrutura de acesso (linhas telefônicas, servidores, cabos de conexão com a rede pública de telefonia, entre outros equipamentos) para a operadora Telemar, resultando uma melhoria na qualidade do acesso à Internet.  Da mesma forma, a empresa investiu bastante na área de conteúdo dos sites, tendo como destaque os sites
Morango , Babado , Último Segundo e Chic . O iG ainda conta com alguns tipos de serviços pagos, que se resume ao site de entretenimento adulto  RedSex e os serviços de banda larga  Super iGiG3 , que utilizam as tecnologias ADSL e RDSI, respectivamente. Além disso, em julho de 2001, o iG comprou o hpG, serviço que hospeda gratuitamente 786000 sites pessoais em português, visando atrair mais o acesso às páginas da empresa.
   Desde julho do ano de 2001, o iG tem apresentado lucro, um resultado bastante positivo para uma empresa pontocom que está a menos de dois anos no mercado. Adicionado a isso, segundo um relatório do mês de outubro de 2001 elaborado pelo Jupiter Media Metrix, um instituto especializado em determinar audiência na Internet, o iG assumiu a liderança de audiência da rede brasileira, superando o UOL, seu maior concorrente. Em outra medição feita pelo Ibope eRatings, o resultado indica que há empate técnico entre esses dois provedores.
   No futuro, o iG pretende aumentar a sua lucratividade no mercado e manter a liderança na Internet brasileira, ampliando seus investimentos em publicidade e serviços que aumente a popularidade da empresa.


3. Departamento

   A área que eu atuo dentro da empresa é o departamento de Desenvolvimento. Esse setor é responsável pelas implementações relacionadas ao segmento tecnológico da empresa, voltado principalmente a sua infra-estrutura. Atualmente o departamento é composto por aproximadamente 30 funcionários, divididos nas seguintes equipes:
   Atualmente, eu trabalho em um sub-equipe da equipe de Desenvolvimento que atua somente com os serviços pagos. Maiores detalhes sobre as atividades exercidas poderã ser vistos a seguir.


4. Atividades Realizadas

Durante o meu estágio no iG, eu participei de vários projetos. A seguir, descreverei  um cronograma com as principais atividades exercidas desde meu ingresso na empresa.

 - Serviços Gratuitos
     O primeiro sistema que trabalhei corresponde ao de serviços gratuitos. Esses serviços englobam o sistema de cadastro do usuário pela Internet, tanto para criação de e-mails como para a definição do perfil do usuário. Além disso, existe o sistema de atendimento online, onde o usuário pode modificar seus dados cadastrais, alterar ou lembrar a senha de acesso, criar e-mails adicionais e outras funcionalidades.
     No começo, para acostumar com a tecnologia utilizada no sistema (PHP, HTML, PL/SQL), minhas atividades se resumiam a arrumar erros e criar pequenas modificações e novas funcionalidades no sistema já criado.

 - Parceiros
      O iG promove um tipo de parceria com outros sites (Lancenet, Radio Hits, Árvore da Vida) que tem como objetivo atrair outros públicos ao iG. Para isso, parte do conteúdo desses sites parceiros se restringe a usuários cadastrados no iG. Dessa forma, é necessário uma interação feita entre o iG e seus parceiros tanto para a autenticação como para troca de dados cadastrais do usuário.
      Participei da criação do sistema de cadastro de usuário no iG realizado pela Lancenet, um de seus parceiros. Esse processo fez com que eu me aprofundasse mais no entendimento do sistema de cadastro do iG, principalmente na programação de PHP, HTML e javascript.
      Outra atividade feita por mim consistia no envio de e-mail para todos os usuários da empresa Medical Services, outro parceiro do iG, contendo a newsletter com assuntos principais do Último Segundo. Esse procedimento, feito em Perl, fez com que eu conhecesse melhor o acesso ao banco de dados e da geração de Newsletter do iG.
      Além disso, também fui responsável pela criação do sistema de cadastro de usuário no iG realizado pela Stellas Barros, mais um parceiro da empresa. Essa atividade foi interessante, pois durante a sua implementação, precisei estar me comunicando com um representante do parceiro localizado nos Estados Unidos. Este estava implementando a comunicação de troca de dados cadastrais do lado americano, precisando fazer constantes testes para nos certificar o funcionamento do sistema. Dessa forma, além de treinar meu inglês, obtive conhecimentos sobre a tecnologia XML, utilizada para troca de dados entre o iG e a Stella Barros.

 - Vignette
      Eu obtive uma rápida passagem na equipe do Vignette. Depois que dois funcionários dessa equipe saíram da empresa, meu supervisor solicitou que eu e um outro funcionário do Desenvolvimento integrassem a equipe Vignette. Essa mudança era necessária pois a página principal do iG precisava ser remodelada, e o deadline para essa mudança de layout estava próximo. Apesar de ter ficado pouco tempo na equipe (em torno de 3 semanas), foi interessante para mim conhecer o software Vignette e o sistema que essa equipe utiliza para manter o conteúdo dinâmico. Basicamente eles desenvolvem uma aplicação utilizando o Vignette para que o departamento que edita o conteúdo (Último Segundo, homepage principal, etc) necessite apenas digitar a notícia ou mensagem no espaço desejado, jogando em seguida no ar. A minha participação na elaboração da nova estrutura da homepage consistiu em apenas alterar algumas partes desse sistema criado, limitando-se a conhecer melhor o software.

 - Gerenciamento de Tarefas
       Logo após essa rápida passagem pelo Vignette, meu supervisor me solicitou a elaboração de uma ferramenta para o controle das atividades dos funcionários do departamento de Desenvolvimento. Pessoalmente, esse foi o projeto que eu mais tive responsabilidade para fazer, uma vez que as especificações permitiam diferentes formas de implementação. Basicamente eu tinha como seria a estrutura da ferramenta no banco de dados e quais as funcionalidades desejadas. Toda a parte de criação de layout e fluxo deveriam ser decidido por mim. Dessa forma, procurei utilizar o mesmo sistema do cadastro, feito em PHP, HTML e PL/SQL.
     Pela primeira vez comecei a programar em PL/SQL, precisando criar todas as funções, procedures e triggers utilizados pelo sistema. Esse processo me beneficiou bastante, pois pude ter maior contato com o banco de dados do iG. Além disso, o sistema era totalmente independente do que já tinha sido feito pelo desenvolvimento, não existindo vínculo com o que já existia.
       Um dos meus maiores erros foi não ter planejado direito como implementar o sistema. Basicamente a cada dia eu ia criando as procedures em PL/SQL que eu achava que o sistema ia utilizar e programando os PHP e HTML para cada funcionalidade de uma vez. No entanto, muitas vezes eu via que tal funcionalidade não estava boa, tendo que recriar tudo novamente.
     Outro erro que percebi foi não ter feito um cronograma do projeto, uma vez que não havia sido estipulado um prazo. Dessa forma, não controlei direito o tempo de produção. O projeto acabou se estendendo, na minha opinião, mais do que devia.
     O sistema levou um mês para ser concluído. No entanto, ele acabou não sendo ainda utilizado, pois o departamento de Tecnologia, que cuida da administração dos servidores, pretende integrar futuramente um sistema criado por eles com este elaborado. A implementação do sistema seria bem mais complexa, precisando uma reformulação no esquema já existente, o que acabou se tornando um projeto futuro.

  - Super iG
      O Super iG, em determinado momento, passou a ser o principal serviço pago do iG. Foi feito um grande investimento em publicidade para divulgar o serviço. Dessa forma, foi solicitado a reformulação de todo o processo de cadastro da assinatura Super iG. Esse projeto acabou definindo uma sub-equipe formado por eu e mais três funcionários do Desenvolvimento que passou a atuar exclusivamente dedicado aos serviços pagos.
     O primeiro passo do projeto foi reestruturar todo o fluxo de assinatura do Super iG, reprogramando os PHP, HTML e principalmente as procedures e funções em PL/SQL. Também foi criado um sistema de vendas de assinatura Super iG utilizado pelos atendentes de vendas do serviço pago. Um atendimento online exclusivo do serviço Super iG também foi elaborado no intuito de diferenciar o produto. A ferramenta de suporte, criada para dar suporte aos usuários utilizado pelos atendentes obteve várias funcionalidades imcrementadas para melhor atendimento ao usuário.
     Por se tratar de um projeto maior, composto de diversas atividades que deveriam ser feitas em um curto espaço de tempo, foi necessária uma melhor divisão de trabalho administrada por nós. Esse projeto estimulou bastante o trabalho em equipe, fato que pode ser confirmado pelas diversas reuniões e discussões geradas durante o processo.

- Reformulação da Estrutura de Serviços Pagos no Banco de Dados
   Com o início da prestação de serviços pagos pelo iG, foi criado uma estrutura no banco de dados para suprir esses novos tipos de assinaturas. No entanto, essa estrutura criada era bastante simples, não visando um maior crescimento de serviços.
   Com o surgimento de outros serviços pagos, como o RedSex e principalmente o Super iG,  uma estrutura bem mais complexa no banco de dados era exigida para poder comportar tais serviços. Por outro lado, os prazos da entrada desses serviços no ar era curto, o que resultou em reutilizar o sistema de banco de dados já existente, apenas o "remendando" conforme a necessidade: novos campos eram inclusos nas tabelas, novas tabelas foram integradas no sistema, novas regras eram estabelecidas para o funcionamento do sistema. O resultado foi que a estrutura cresceu de tal forma que o banco de dados passou a ficar ineficiente e obsoleto.
   O projeto de reestruturação da estrutura de serviços pagos visava arrumar todo o sistema de banco de dados referente a esses serviços. Dessa forma, a mesma equipe formada para a reformulação do cadastro do Super iG juntamente com a equipe de Banco de Dados passaram a ser os responsáveis pelo projeto.
   Esse projeto era bem mais complexo de se realizar, pois não se tratava apenas de reprogramar códigos já existentes. Precisamos revisar todo o sistema já criado, rever todas as regras existentes neles e, pela primeira vez dentro da empresa, documentar esse processo. Como o projeto contava com diferentes equipes em seu desenvolvimento (além da equipe do Desenvolvimento e do Banco de Dados, o sistema também envolvia o departamento Financeiro da empresa, responsável pela cobrança das assinaturas), diversas reuniões foram feitas para discutir como ficaria a nova estrutura do banco de dados.
   Uma das maiores dificuldades encontradas foi em definir qual a melhor forma de estruturar o banco de dados. Várias mudanças foram feitas até chegar em um modelo definitivo, o que causou um prolongamento nesse projeto.
Outro fator que dificultou bastante foi o processo de estipulação de regras dos serviços pagos. Como a documentação em relação a isso era bastante precária, foi necessário analisar códigos de PHP, funções, procedures e triggers para podermos analisar e reformular essas regras.
   Mais uma vez não foi criado um cronograma concreto das atividades a serem realizadas. O projeto se prolongava cada vez mais, sem existir um prazo final. Como foi a primeira vez que procuramos planejar as mudanças a serem realizadas antes de programar, diversos erros foram encontrados para estabelecer qual a melhor maneira de documentar o que deveríamos a fazer.
   No fim, apesar de conseguirmos documentar as regras desejadas e já ter estruturado como seriam as mudanças necessárias, o departamento Financeiro não chegou em um consenso a respeito dessa reestruturação, necessitando rediscutir novamente todo o sistema. No entanto, com o surgimento de  outras pendências envolvendo serviços pagos, esse projeto acabou se interrompendo, para que seja retomado futuramente quando as novas pendências forem resolvidas.

- Verificação da Consistência do Banco de Dados

   Atualmente as atividades em que estive envolvido consiste na implementação de scripts para a verificação e conserto de inconsistência do banco de dados. Esses scripts, feitos em Perl, visam gerar relatórios e arrumar erros encontrados a respeitos das regras do sistema de serviço pago.
   Pessoalmente, esse tipo de programação me beneficia mais do que as outras realizadas na empresa, pois através dela em ponho mais em prática o meu aprendizado na faculdade e foge um pouco das tecnologias PHP-HTML-PL/SQL, que se tornaram um pouco repetitivas com o passar do tempo.


5. Estrutura de Trabalho

   Como pode se notar nas atividades descritas acima, nossa função dentro da empresa consiste principalmente na programação das páginas e aplicações referentes aos serviços gratuitos e pagos. Boa parte das aplicações criadas utilizam a seguinte tecnologia:
PHP - manipulação de dados fornecidos pelo usuário
HTML e javascript - layout das páginas
PL/SQL - funções, procedures e triggers que servem para manipular os dados no banco.
   Para a realização das páginas, existe um ambiente de desenvolvimento e outro de produção, tanto dos servidores que ficam localizados as aplicações criadas como do banco de dados. Dessa forma, as aplicações são realizadas e testadas no ambiente de desenvolvimento, e após verificar o seu funcionamento, essas são aplicadas no ambiente de produção, podendo ser acessadas pelos usuários.
   Um dos problemas enfrentados nas atividades realizadas, como se pode ver nos relatos acima, é rapidez que certas aplicações devem entrar no ar. Constantemente precisamos interromper alguma atividade de prioridade mais baixa para nos concentrarmos em elaborar outra mais importante. Muitas vezes, a especificação não está bem definida, mudando requisitos na fase de implementação, ocasionando perda de tempo. Como conseqüência, acabamos não realizando testes suficientes, precisando arrumar conforme vão surgindo os erros. E, em alguns casos, como no projeto de gerenciamento de tarefas e na reestruturação do banco de dados, as atividades que estavam sendo realizadas acabam se tornando projetos futuros.
   Toda semana participo de uma reunião para discutir o andamento das pendências e pra informar e receber novas atividades a serem feitas. Nessa reunião participam os integrantes da sub-equipe do Desenvolvimento responsável pelos serviços pagos (eu e mais três funcionários) e o supervisor. Apesar de considerar essa reunião importante, ela nos limita a conhecer somente as atividades realizadas a respeito do serviço pago. Seria interessante se fôssemos informados das atividades realizadas pelos outros funcionários. Além de conhecer melhor as aplicações desenvolvidas pelo Departamento como um todo, evitaríamos erros ocasinados por eventuais alterações de outras equipes na funcionalidade do sistema.


6. Ambiente de Trabalho

   Um dos tópicos que vale a pena ressaltar da empresa é o ambiente de trabalho. Por nunca ter trabalhado em uma empresa de grande porte, fiquei um pouco apreensivo de como seria todo o processo de admissão no iG.
   No primeiro dia na empresa, já percebi que o ambiente era bem descontraído. Apesar de ter me vestido socialmente para ser entrevistado, eu notei que os funcionários tinham liberdade de usar qualquer tipo de roupa. Estranhei um pouco, pois a visão que eu tinha era que, quando começasse a trabalhar, teria que renovar todo meu armário comprando roupas sociais, deixando de usar bermudas e camisetas. Resultado: aquele foi o único dia que fui pra empresa vestido socialmente.
   Outro aspecto interessante se refere ao local de trabalho. Novamente imaginava que em empresas de grande porte as pessoas trabalhavam em pequenos gabinetes formados por uma mesa, computador, telefone e a foto da família pendurada na parede. No entanto, no meu departamento, as equipes trabalham em um ambiente aberto e descontraído, formado por bancadas, sendo que cada funcionário tem fácil comunicação com o outro.
   A empresa também conta com uma mesa de ping-pong (bastante utilizada, por sinal) e oferece um café da manhã todas as sextas. Aulas de yoga também já foram oferecidas e atualmente existe um programa de exercícios físico realizado no próprio departamento visando o bem-estar dos funcionários.
   Certamente eu me adaptei bem rápido nesse ambiente de trabalho. Dificilmente encontraria um lugar onde posso trabalhar ouvindo música e me vestir da maneira que desejar. O horário de trabalho também é bastante flexível, não existindo hora pra chegar ou sair. Essa liberdade dada aos funcionários certamente estimula melhor o trabalho, pois diminui a pressão e stress existente em um ambiente de trabalho mais rígido.


7. Desafios e Frustrações

   Meu maior desafio enfrentado ao entrar no iG foi entender a tecnologia utilizada pelos sistemas desenvolvidos no setor. Não existe uma documentação explicando como funciona as aplicações e a única maneira de aprender é lendo os códigos já existentes e perguntando pros funcionários que já conhecem. Apesar de não conhecer as tecnologias utilizadas (PHP, HTML, javascript), eu estudei por aproximadamente um mês os códigos sem participar de alguma atividade propriamente dita. Um fator que auxiliou nesse processo foi a presença de dois colegas do IME na equipe (Anderson Ricardo Bueno e David Paulo Pereira) que já faziam parte do desenvolvimento a dois meses. Nessa época, eu observava as atividades executadas por eles, enchendo-os de perguntas e acompanhando nas suas paradas para tomar cafés (que não eram poucas).
   Outro desafio relevante é a dinâmica que os projetos devem ser elaborados. Geralmente os prazos de entrega são curtos, e nesse espaço de tempo temos que elaborar as atividades desejadas e testar exaustivamente antes de jogar no ar, fato que nem sempre é possível. Esse processo faz com que tenhamos mais responsabilidades em nossas atividades, exigindo mais atenção na elaboração dos sistemas.
   Por outro lado,  como frustação posso citar a falta de investimento de treinamento dos funcionários. Desde que entrei na empresa, participei apenas de um treinamento de uso do banco de dados Oracle. Acredito que seria interessante o treinamento da equipe nas tecnologias já existentes e mantendo-nos mais informados a respeito de novas tecnologias, o que motivaria mais o setor de Desenvolvimento. Além disso, algumas atividades exercidas acabam ficando repetitivas, não existindo uma diversificação nos conhecimentos absorvidos. O aprendizado acaba se limitando à tecnologia utilizada nos sistemas elaborados.



8. Faculdade

   Várias situações que vivenciei durante o curso no IME puderam ser constatadas no estágio. Um fator interessante é a pressão exercida pelos professores no curso do BCC, solicitando sempre diversos trabalhos, EPs e listas a serem entregues em prazos pouco dilatados (adiando alguns dias quando chega a véspera da entrega). No estágio, apesar dos prazos não poderem ser aumentados (na maioria das vezes...), o que pude notar é que já estava acostumado a receber uma atividade a ser entregue um curto prazo e conseguir terminar a tempo. Também percebi que mesmo não conhecendo algum tipo de tecnologia ou linguagem, bastava apenas um pequeno estudo para que pudesse já utilizá-la em alguma aplicação. Acredito que o curso no BCC me preparou para isso, permitindo me adaptar em qualquer trabalho, independente de tecnologia ou linguagem utilizada.
   Também é interessante ressaltar a importância em saber trabalhar em grupo. Apesar de, no IME, não haver uma grande interação entre os componentes dos grupos na realização dos EPs, no estágio, percebemos que esse fator é bastante importante na conclusão do trabalho. Como os projetos são compostos por diversas atividades, precisamos saber dividir bem as tarefas e procurar cumprir seus prazos para não interferir no trabalho dos outros. Nesse ponto, a comunicação é bastante importante para que o projeto seja elaborado de maneira correta.
   A carga horária do meu estágio consistia em trabalhar 6 horas diárias. Dessa forma precisei conciliar melhor meu tempo entre o estágio e a faculdade. No entanto, curiosamente o meu desempenho na faculdade teve um certo aumento durante esse período. Acredito que essa melhoria foi ocasionada pelo aumento de responsabilidade, pois notando mais falta de tempo, procurei me dedicar antecipadamente nas matérias cursadas, sem deixar tudo para a última hora.
   Sobre as matérias que foram mais relevantes no estágio, destaco Redes e Banco de Dados, pois minhas atividades estavam inteiramente ligado a essas duas áreas. Obviamente, matérias responsáveis pela formação básica para programação como Introdução à Computação, Fundamentos de Algoritmos e Estruturas de Dados também foram essenciais no estágio. 
   Também percebi a importância da matéria Engenharia de Software. Muitos de meus erros cometidos tratavam de um mau planejamento de projeto e cronograma de trabalho. Vários problemas ocorridos em aplicações do iG ocorrem devido a falta de conceitos e princípios estudados nessa matéria.


9. Conclusão

   A escolha de realizar o estágio no iG trouxe diversos benefícios na minha formação. A empresa está em ascensão e exerce suas atividades em uma área bastante promissora. O meu trabalho dentro da empresa permitiu colocar em prática vários conceitos aprendidos no curso do BCC e aprofundar melhor meus conhecimentos no ramo da Internet.
   No futuro, pretendo estudar e pesquisar mais sobre as novas tecnologias existentes no mercado, coisa que eu não faço atualmente. Espero que depois de formado, eu não me acomode dentro da empresa em que esteja trabalhando, procurando sempre as melhores oportunidades para que possa atualizar meus conhecimentos e crescer profissionalmente.
   O estágio foi um importante passo em minha vida. A experiência profissional que adquiri na empresa foi bastante gratificante, complementando o aprendizado que obtive na faculdade. Acredito que o estágio possui um papel bem importante na formação do aluno, preparando-o não só para o competitivo mundo profissional como também para a sociedade: na faculdade, você cresce horizontalmente, adquirindo uma base teórica para enfrentar o mercado de trabalho; no estágio, você cresce verticalmente, obtendo mais conhecimento e experiência para enfrentar a vida.

   That´s all, folks...



Última Atualização: 10/12/2001 Marcos Wada <mwada@linux.ime.usp.br>
Bacharelado de Ciências da Computação
IME - USP