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.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.