Vinicius de Paulo Bellino

Estágio na Jurídica Informática

Supervisionado pelo Prof. Dr. João Eduardo Ferreira

Instituto de Matemática e Estatística - USP – 2003

 

1.     Introdução:

O estágio que realizei foi feito durante todo meu curso no BCC, na realidade eu já trabalha na Jurídica Informática  quando ingressei no IME. Como conseguimos encontrar uma forma de conciliar o estágio com o curso no BCC, onde eu definia quais seriam minhas horas disponíveis para trabalhar nos próximos meses, priorizando meu estudo, eu pude me formar em quatro anos e, o mesmo tempo, adquirir experiência profissional participando do desenvolvimento de um sistema corporativo desde sua concepção até sua implantação.

 

2.     Parte técnica:

2.1             Sobre a empresa:

A Jurídica Informática é uma empresa de pequeno porte que desenvolve um único produto, o Avvocati Enterprise, utilizado para administrar o departamento jurídico de grandes empresas, além de prestar consultoria buscando encontrar soluções que, através da análise dos dados gerados pelo sistema, minimizem o contencioso jurídico dos seus clientes. O produto existe há cerca de oito anos, porém em 1998 ele foi reformulado, para atender a crescente demanda no mercado corporativo.

Atualmente a Jurídica Informática possui entre seus clientes empresas de grande porte, tais como Eletropaulo, Elektro, Multibrás Eletrodomésticos, entre outras.

 

2.2             Especificação do sistema:

O sistema foi idealizado por Ivan César Ribeiro, presidente da Jurídica, bacharel em administração (FEA), mestrando em métodos quantitativos da informática (FEA) e graduando em direito (FADUSP), ele foi nosso gerente de negócios. Além dele, existia um analista desenvolvedor, que especificava a parte técnica do sistema e eu, que inicialmente atuava apenas como programador e, após algum tempo, passei a atuar também como analista. Além disso, no inicio foram contratados outros estágios para agilizar a programação, já que o volume de trabalho, nesta etapa, era muito grande.

 

2.3             Principais funcionalidades do sistema:

    As principais funcionalidades do Avvocati são:

o       Controle da agenda dos advogados, permitindo redistribuição das atividades caso haja sobrecarga.

o       Notificação automática via e-mail dos principais andamentos ocorridos.

o       Classificação dos valores envolvidos permitindo futura análise.

o       Atualização automática e criação de juros para cada valor.

o       Criados a partir de uma ferramenta que permite realizar buscas bastante detalhadas.

o       O usuário define quais campos serão apresentados e qual será o layout do relatório.

o       O usuário define quais totalizações e estatísticas serão apresentadas.

o       Permite comparação com os resultados obtidos anteriormente.

o       Permite navegação através dos valores do gráfico gerado.

2.4             Metodologia de desenvolvimento:

Primeiramente foi modelado, pelo analista de sistemas, um banco de dados relacional que atendesse as necessidades do núcleo do sistema. O núcleo é composto de um módulo de pessoas e um de processos, que inclui os  prazos e valores.

Definiu-se então um padrão gráfico para as interfaces que seriam implementadas. Houve muita preocupação em criarmos um padrão de fácil uso, com recursos semelhantes aos encontrados em softwares normalmente utilizados pelos usuários, como o Windows Explorer, Outlook, etc. Além disso, foram definidas rotinas padrão em cada interface, de modo que o código de uma interface genérica pudesse ser reutilizado para implementação das interfaces específicas. Algumas dessas interfaces podem ser visualizadas nos links abaixo:

 O código fonte do sistema ficava num repositório comum na Internet (CVS). A divisão de tarefas, no inicio do projeto, era da seguinte forma: o analista definia as próximas atividades e distribuía entre mim, ele próprio e algum outro estagiário que havia na época. Eu então avaliava quanto tempo levaria para desenvolver as minhas tarefas, sendo esta estimativa aprovada pelo nosso gerente. Inicialmente, tive muitos problemas com este tipo de métrica, mas após alguns meses, tendo um histórico razoável, já conseguia estimar os prazos com pouca variação em relação ao resultado final.

Uma vez desenvolvido o núcleo do sistema, passamos a criar módulos separados, que atendem necessidades específicas, por exemplo:

Hoje o sistema possui cerca de 15 destes módulos, sendo que o total de módulos licenciados em cada cliente varia conforma a sua necessidade, tornando o sistema bastante flexível.

Todas etapas de desenvolvimento, tanto do núcleo quanto dos módulos adicionais, foram feitas através da criação de protótipos, apelidados de “fakes”, que eram validados pelo nosso gerente. Normalmente ele sugeria alterações, os protótipos eram corrigidos, gerando uma nova validação, este ciclo se repetia até chegarmos uma versão consolidada.

Dessa forma, nós fazíamos o levantamento de requisitos com o nosso gerente de negócios, uma vez que ele possui um grande conhecimento na área jurídica. Foram poucas as exceções onde detectamos novos requisitos diretamente com os clientes. Nestes casos, eles passavam pela aprovação do nosso gerente, que verificava a viabilidade para implementação dos mesmos. Muitas vezes eles eram solucionados utilizando alguma funcionalidade já implementada, pois o usuário não havia percebido que poderia ser feito desta forma, caso trata-se de algo realmente novo, então tentávamos generalizá-los de forma a permitir que por outros clientes também os utilizassem.

Conforme adquiria mais experiência, passava a realizar atividades de análise, como, por exemplo, modelagem do banco de dados  e  criação das interfaces “fakes”  do novos módulos. Passava também a participar do processo de distribuição das atividades.

Um dos mais importantes módulos do sistema, dos últimos a ser implementado, no qual minha participação foi fundamental, foi o módulo de análise dos dados, que gera relatórios e gráficos analíticos bastante flexíveis, auxiliando os diretores do departamento jurídico na tomada de decisões e análise contínua da evolução dos valores e quantidades de processos. Após a criação deste módulo, o Avvocati deixou de ser um sistema apenas para administração de processos, para se tornar um sistema de gestão do departamento jurídico. Atualmente, este módulo extrai os dados do banco operacional, estamos estudando a viabilidade de implementarmos um Data Warehouse para otimizar esta funcionalidade. Alguns exemplos das interfaces e dados gerados pelo módulo analítico podem ser visualizados nos links abaixo:

 

2.5             Ferramentas e técnicas utilizadas:

O sistema foi desenvolvido utilizando-se a arquitetura cliente-servidor e a ferramenta RAD Delphi. Cada cliente possuía seu banco de dados, em sua maioria Oracle da versão 8.0 à 9i, instalado na sua rede local.

O programa cliente era instalado em cada uma das estações, na realidade ele era composto de duas partes, um pequeno programa que verificava na rede a última versão da outra parte do programa, esta chamada de kernel, e a atualizava caso necessário, feito isso ele executava o kernel, que era sistema propriamente dito.

Além do Delphi, foi bastante utilizada  a linguagem Oracle PL/SQL, para validar algumas das regras de negócio, que por questões de otimização, foram implementadas diretamente no próprio banco de dados. Utilizamos também geradores de relatórios para Delphi, como o Report Builder e Quick Report. Como ferramenta de modelagem do banco de dados, modelo entidade relacionamento (MER),  nós utilizamos o ERWin.

Além disso, foram executadas tarefas como levantamento de requisitos, implantação e testes nos clientes, que por se tratarem de grandes corporações, possuíam uma metodologia bastante detalhada de testes, normalmente dividida entre  dois testes em desenvolvimento e um final  em produção. Foram também realizadas documentação, criação de manual e  treinamento do usuário final.

2.6             Bibliografia e treinamentos:

A bibliografia utilizada foi:

Além de diversos outros sites na Internet. O treinamento oferecido foi:

 

3.     O IME e o estágio:

3.1             Principais dificuldades encontradas:

3.2             As disciplinas do IME e o projeto:

Como eu já fazia o estágio quando ingressei no IME, pude perceber uma enorme melhoria na qualidade do código e facilidade de análise do sistema adquirida conforme eu cursava as disciplinas no BCC. Principalmente em relação à programação orientada a objetos, modelagem de banco de dados, criação de código reutilizável, desenvolvimento de interfaces amigáveis, criação de estrutura de dados, permitindo uma codificação eficiente e inteligível, entre outros. Desta forma, segue abaixo uma lista das disciplinas mais relevantes em relação ao estágio:

Além disso, considero extremamente importantes as disciplinas Programação Orientada a Objetos e Programação eXtrema, só não as cursei por conflitos de horário  e indisponibilidade por ter de conciliar o BCC com o estágio.

3.3             Diferenças entre os projetos no BCC e no estágio

Como a Jurídica Informática não é uma empresa grande, eu tive bastante liberdade para opinar em todas etapas do projeto. Evidentemente, a opinião de cada um da equipe era avaliada pelo nosso gerente e nem sempre aprovada, mas eu me sentia à vontade para dar sugestões e percebia que todos éramos tratados da mesma forma, mesmo em diferentes níveis hierárquicos. Além disso, tratava-se de uma equipe pequena, onde o relacionamento entre todos era muito positivo e compreensivo. Logo, não senti muita diferença entre trabalhar em equipe no estágio e com os colegas do BCC.

 

3.4             O futuro

Para continuar na área de desenvolvimento de softwares corporativos, considero bastante válido obter certificações fornecidas por empresas como Oracle, Sun (Java), dentre outras, que comprovam seu conhecimento nas ferramentas por elas produzidas. Também é bastante importante ter um bom conhecimento da área de negócio relativa ao sistema que está sendo desenvolvido. Para cargos mais gerenciais, acredito que cursar um MBA seja bem relevante.

No meu caso, me interessei bastante pela área de modelagem multidimensional de dados (Data Warehouse), pois pude perceber na prática como um sistema que fornece recursos para análise de dados é útil e fundamental, principalmente para os gerentes e diretores. Outra área que estou interessado atualmente é Data Mining, pois uma vez que o sistema já possui um banco de dados analítico que permita extrair eficientemente os dados sumarizados, é necessário fazermos estudos estatísticos tentando relacionar tais dados e inferir informações até então desconhecidas. Para aprofundar meus conhecimentos nesta área, pretendo fazer um mestrado no IME em banco de dados, com ênfase em Data Warehouse, Data Mining, etc.