Trabalho de formatura

- Estágio na PCA Engenharia de Software -

Nome: Ricardo Koga Pegoraro

 

Prof. Supervisor: Dilma Menezes

Prof. Responsável pela disciplina: Carlos Eduardo Ferreira


 

1 - Introdução
 

Meu trabalho de formatura é baseado no estágio que realizei na empresa PCA Engenharia de Software, no período de Maio a Novembro de 2000. Com carga horária semanal de 20 horas.

Durante o estágio participei de um único projeto desenvolvido para o Grupo Abril.


 

 

2 - A empresa                        


 

2.1 - Introdução
 

A PCA Engenharia de Software é uma empresa de pequeno porte que tem como principal área de atuação o desenvolvimento de sistemas de informação para corporações e grandes empresas de diversos ramos de atividade.
 

A PCA foi fundada em 1992, originalmente como uma consultoria em sistemas de informação. Mas rapidamente ampliou seu leque de serviços, passando a desenvolver soluções completas para os clientes desde a fase de análise e planejamento até a implementação da solução e treinamento dos usuários, passando pela escolha de hardware e software mais adequados a necessidades do cliente. Completando o ciclo de desenvolvimento de soluções, foi implantado um provedor de aplicações de Internet, que é utilizado para hospedar as aplicações desenvolvidas para os clientes.
 

Além disso, a PCA desenvolveu sistemas nas mais variadas plataformas como, por exemplo, UNIX, Windows e MVS e também em diversos modelos como cliente/servidor, intranet, Internet e aplicações standalone. Sendo que a área de intra/Internet se tornou umas das áreas de excelência da PCA, devido a sua importância vital nos atuais sistemas de informação.
 

Com isso a PCA adquiriu uma grande experiência em várias áreas, especialmente em redes, servidores de banco de dados, sistemas operacionais, Internet e no desenvolvimento de ferramentas e aplicações. 
 

2.2 - Estrutura Interna
 

Com relação à estrutura interna, por ser uma empresa de pequeno/médio porte (por volta de 30 colaboradores) a PCA é bastante dinâmica. Entre seus colaboradores estão estagiários, funcionários e sócios distribuídos entre os setores administrativo, comercial e, principalmente, de consultoria/desenvolvimento.


 

    Uma característica da PCA é sua forma de organização horizontal, isto é, apesar de obviamente existir uma hierarquia de cargos, não há uma hierarquia de comando rígida, ou seja, todos os colaboradores 


 

A PCA tem como filosofia valorizar o profissional interno. Isso pode ser notado pela política de contratação, a não ser em condições extraordinárias, é sempre a de contratar estagiários, que serão treinados e avaliados, para possivelmente serem efetivados, e dependendo de seu desempenho podem, posteriormente, serem convidados a sócios da empresa. A impressão passada através do texto de que a PCA tem uma alta taxa de efetivação é correta, mas o principal motivo para isso é a grande capacitação dos estagiários contratados, que são principalmente da Unicamp, da USP e da PUC. Um aspecto interessante é que praticamente todos os funcionários e sócios da PCA também se formaram nessas universidades.


 

2.3 - Organização no Desenvolvimento

Para o desenvolvimento, em geral é formado um grupo que será responsável por todas as etapas do desenvolvimento da solução. Esse grupo é normalmente formado por 3 a 5 pessoas, sendo uma a responsável pelo projeto (em geral um sócio) e os outros participantes são escolhidos por suas especialidades e experiência profissional(tanto conhecimentos técnicos quanto capacidade de relacionamento inter-pessoal), exceto por estagiários (pois normalmente não possuem conhecimentos específicos) que são alocados para aprendizado e análise de potencial.
 


 

3 - O projeto
 

3.1 - Introdução
 

O departamento de recursos humanos (RH) do grupo Abril sentia a necessidade de uma ferramenta que permitisse um maior controle dos custos relacionados a recursos humanos (ex: contratações, demissões, aumentos individuais e coletivos, treinamento, etc.), dado que o atual sistema utilizado pelo RH por ser um pacote comercial não oferece (apesar das inúmeras personalizações) a flexibilidade necessária para o RH da Abril.


 

A solução encontrada foi manter o sistema atual de RH que continuaria responsável pela folha de pagamento, contratações, demissões, etc. E desenvolver um novo sistema que seria responsável em prover o RH do cliente com um extenso leque de informações, tais como:

·Qual o impacto financeiro de uma contratação ao longo de dois anos? 

·Qual o salário indicado para uma pessoa que se destaque em alguma função? 

·O que acontece caso ocorra um reajuste sindical de 5% em Maio? o custo permanece num valor compatível com o orçamento?


 

Para se ter uma idéia da complexidade do sistema. Aqui estão alguns números sobre o grupo Abril.

9 Mil Funcionários 

R$ 1,488 Bilhão de Receita Líquida em 1999 

R$ 924 Milhões em Investimentos nos Últimos Seis Anos 

Mais de R$ 200 Milhões em Tributos e

Contribuições Pagos a Cada Ano

R$ 46 Milhões Investidos em Benefícios e

Treinamento Para os Funcionários em 1999

dados obtidos do site http://www.abril.com.br/


 

O projeto do qual participei consistia parcialmente no desenvolvimento de um sistema de planejamento e controle orçamentário de recursos humanos (conhecido por PCRH) que suprisse as necessidades do departamento de RH do grupo Abril.


 

Digo parcialmente pois o sistema foi definido para ser implementado no ambiente de intranet da Abril(os motivos para isso são descritos posteriormente). Com isso foi decidido que o PCRH seria integrado a um sistema on-line que já existia na intranet da Abril: o GTA (Gestão de Talentos Abril), que também foi desenvolvido pela PCA. Em linhas gerais o GTA é um sistema de acompanhamento profissional de todos os funcionários do grupo Abril.


 

O projeto como um todo foi chamado de ISRH (Integração de Sistemas de Recursos Humanos) que consistia de duas fases distintas:

·migração do sistema GTA implementado em PL/SQL para ASP

·desenvolvimento do PCRH, também utilizando a tecnologia ASP


 

3.2 - Desenvolvimento


 

O processo de desenvolvimento iniciou-se em Fevereiro/2000.
 

Primeiramente, foi iniciada a migração tecnológica do GTA, isso pois todo o sistema já estava funcionando (não era necessária especificações de funcionalidades nem de interface) e ainda a tecnologia ASP estava sendo absorvida pela PCA, sendo uma ótima oportunidade de aprimoramento do conhecimento dessa linguagem.
 

Junto com o processo de implementação da primeira etapa do projeto, estava sendo terminada (pelo menos em teoria) a especificação da segunda fase.
 

Minha entrada na empresa ocorreu no início de Maio de 2000. Entrei na parte de finalização da migração do GTA e início da implementação da segunda parte.


 

3.3 - Problemas


 

Vários foram os problemas enfrentados durante o desenvolvimento do ISRH.
 

Um dos mais sérios, senão o principal, foi uma especificação que foi negligente em vários pontos, em especial na documentação. O problema da documentação foi sentido em toda sua extensão quando o coordenador inicial do projeto retirou-se da empresa, e junto com ele, grande parte da especificação do PCRH.
 

Isso serve para ilustrar outro problema sério ocorrido durante o projeto, a alta rotatividade dos membros da equipe, apesar de ser um projeto longo, creio que houve uma troca excessiva dos membros da equipe (em sua grande maioria por fatores que a PCA não tinha controle), sejam por que profissionais se retiraram da empresa ou foram remanejados para outros projetos. Aliando-se esse problema com uma documentação pobre durante o desenvolvimento, tem-se um verdadeiro problema.
 

Outro fator que comprometeu os prazos dos projetos foram problemas ocorridos devido à interação com a empresa responsável pelo sistema de RH do cliente. Aqui os principais problemas eram devidos a atrasos e a diversos erros na base de dados de conversão.


 

 

4 - Tecnologias e Ferramentas


 

As tecnologias com as quais tive contato foram:

·HiperText Markup Language (HTML 4.0)

·Active Server Pages (ASP)

·JavaScript

·VBScript

·Visual Basic 6.0

·ActiveX

·Oracle 8i

·SQL


 

E as ferramentas foram:

·Microsoft Visual Studio

oSource Safe

oInterdev

·Home Allaire

·Ferramentas Oracle

oSQL*PLUS

oOracle Worksheet

·SQL Navigator


 
 

5 - Treinamento


 

Durante meu estágio na PCA, não participei de nenhum curso. Pois como entrei no meio do projeto, todos os outros integrantes já haviam recebido o treinamento necessário nas tecnologias envolvidas.
 

Por isso, meu aprendizado foi baseado em basicamente leitura (livros, artigos e sites) e na prática. 
 

Outros pontos importantes foram a ajuda e as dicas (sem mencionar a paciência) fornecidas pelos companheiros da equipe e da empresa que sem dúvida foram muito importantes para uma rápida absorção das tecnologias empregadas e grande aumento de minha produtividade.
 

Além da falta de um treinamento inicial, não tive tempo para estudar de maneira satisfatória (pelo menos do meu ponto vista) as tecnologias envolvidas. Isso se deve aos prazos do projeto e, principalmente, a minha quase total falta de conhecimentos sobre as tecnologias e ferramentas utilizadas. 
 

Em minha primeira semana tive de aprender o Active Server Pages, Oracle, JavaScript, HTML avançado e relembrar meus conhecimentos de SQL obtidos no IME. Além de utilização de ferramentas como o Interdev da Microsoft e ferramentas da Oracle. Obviamente só consegui aprender o básico (o que era suficiente para minhas atribuições iniciais), mas com o passar do tempo meus conhecimentos foram se aprimorando continuamente.
 

Apesar de ser um pouco inconveniente no início, essa falta de treinamento não acarretou maiores problemas para a absorção do conhecimento necessário para o projeto. Aliás, eu, como todos os alunos do IME, já estou acostumado em aprender sozinho o que é necessário.


 

 

6 - Bibliografia


 

Alguns dos livros utilizados no projeto:

·Oracle 8 - The Complete Reference 

autor: George Koch e Kevin LoneyEd. Osborne

·HTML 4

autor: Tittel et alEd.Idg Books

·Beginning Active Server Pages

autor: Alex Hommer at alEd. Wrox

·Professional Active Server Pages

autor: Brian FrancisEd. Wrox

·Professional JavaScript

autor: Nigel McFarlane et alEd. Wrox

·MicroSoft VisualBasic 6.0

autor: Michael HalversonEd. MicroSoft Press


 

OBS: Para obter o conhecimento necessário para o projeto foram consultadas inúmeras outras fontes, como diversos sites na internet, outros livros de referência e várias listas de discussão.


 

 

7 - Desafios Encontrados


 

Trabalhar na PCA foi interessante, pois um pequeno (ou nem tão pequeno} 
 

Desafio era encontrado praticamente todos os dias. Seja uma consulta SQL que a princípio parece muito complexa, aspectos administrativos do Oracle, ou descobrir alguns ?truques? para trabalhar com Active Server Pages.
 

Mas um desafio constante e nada trivial que encontrei foi o desenvolvimento de interfaces de usuário eficiente utilizando páginas Web. As limitações do HTML (mesmo utilizando uma linguagem script) foram críticas em algumas interfaces do projeto, tanto que a solução adotada em alguns pontos foi a utilização de controles ActiveX, que permitiam uma interface muito melhor, sendo mais poderosa e familiar ao usuário. Mas por outro lado, a utilização de controles ActiveX exige muito mais processamento por parte do host cliente, além de ser uma solução mais complexa e só é utilizável em máquinas com browser da Microsoft. Por esses motivos uma solução alternativa o HTML puro só era utilizada quando estritamente necessária.


 

8 - Frustrações Encontradas


 

Um ponto que foi bastante frustrante foi os diversos atrasos que o projeto enfrentou durante seu desenvolvimento. Isso acaba ocasionando uma certa ansiedade pelo término do projeto, com o passar do tempo isso vai se tornado cada vez mais aparente entre os membros da equipe e, até mesmo, por parte do cliente.
 

Mas o que me deixou mais frustrado foi não ter podido acompanhar um projeto desde seu início, e acompanhar sua modelagem, que é uma parte dos projetos que me atrai bastante.


 

 

9 - Disciplinas mais relevantes


 

As disciplinas tiveram seu conteúdo aproveitado de forma mais direta no estágio foram:

·MAC 332 - Engenharia de Software

Esta disciplina é fundamental para o processo de planejamento e desenvolvimento de qualquer projeto de software. Todo profissional da área de computação deveria conhecer o básico sobre metodologias de desenvolvimento tanto quanto estrutura de dados e algoritmos. No estágio da PCA, infelizmente não tive participação nos estágios iniciais de desenvolvimento, mas esta disciplina serviu para que eu pudesse fazer uma análise própria dos fatores que prejudicaram o andamento do projeto, e, portanto, aprender com as dificuldades encontradas e tentar evitá-las.

·MAC 426 - Sistemas de Banco de Dados

A importância dessa disciplina foi óbvia durante meu estágio, pois grande parte de meu trabalho era realizar diversas consultas (e alterações) em SQL na base de dados. Ter uma sólida base Álgebra Relacional facilitou muito meu aprendizado de SQL. Além disso, ter um conceito de um sistema de banco de dados facilitou o entendimento do banco Oracle e permitiu compreender melhor como otimizar as buscas realizadas no mesmo.

·MAC 446 - Princípios de Interação Homem Computador

Esta foi uma disciplina a qual pude facilmente avaliar sua importância, pois desenvolvi uma interface nos padrões utilizados até então no projeto sem pensar em todas as necessidades do usuário final, moral da história tive de refazer toda a interface. Mas o ponto importante é que ao refazer a interface já havia cursado mais da metade da disciplina e eu sabia como avaliar a interface que esta (re)criando e construí-la de um modo a suprir melhor as necessidades do usuário final.

·MAC 448 - Redes de Computadores

Esta é uma matéria de grande importância atualmente. Pois os conceitos aprendidos são utilizados no dia-a-dia. Saber o que é o protoloco TCP/IP e como funciona é essencial para qualquer um que trabalhe num ambiente de rede.