Monografia de Conclusão de Curso

Muhamad Salem Sugui

Estágio realizado na Incubadora Tecnológica de Cooperativas Populares da USP.

2000

IME-USP

Supervisor: Prof. Dr. Alan Mitchell Durham
Professor Responsável: Prof. Dr. Carlos Eduardo Ferreira



1 - Natureza da organização e da atividade
2 - Definição/especificação do problema ou sistema principal do trabalho
3 - Forma de organização da equipe de trabalho e atribuição de responsabilidades
4 - Estimativa inicial de prazos
5 - Andamento do projeto
6 - Lista das disciplinas cursadas no BCC mais relevantes para o estágio.
7 - Interação com membros da equipe e diferenças com relacionamento entre colegas do BCC
8 - Expectativas, desafios e frustrações encontradas
9 - Conclusão
10 - Bibliografia
 
 
 

1 - Natureza da organização e da atividade

Meu estágio foi realizado na Incubadora Tecnológica de Cooperativas Populares da Universidade de São Paulo (ITCP-USP), localizada na Cidade Universitária, Av. Prof. Lúcio M. Rodrigues, travessa 4 Bloco 28. Tel: 3818-5828

A ITCP foi criada em meados de 1998 por iniciativa do CECAE (Coordenadoria Executiva de Cooperação Universitária) e está ligada ao projeto iniciado em 1990 na campanha de "Ação da Cidadania Contra a Fome e a Miséria e pela Vida" (a campanha do Betinho), como forma de combate ao desemprego e à exclusão. Ela está ligada também a uma rede envolvendo 15 outras universidades que desenvolvem um trabalho nacional sobre as novas relações de trabalho.

Atualmente, passados cerca de dois anos de sua implantação a ITCP incuba cerca de 23 cooperativas populares, localizadas na periferia de São Paulo e cidades periféricas, como Carapicuíba, Embu e Praia Grande, entre outras.

A atividade da incubadora consiste em colocar o saber universitário, técnico e científico à disposição das classes populares, representadas pelas cooperativas. Atualmente essa transmissão de conhecimento se dá através de cursos de formação básica em cooperativismo e cursos para a formalização de uma cooperativa, onde são discutidos aspectos de legalização, organização e contabilidade. É incentivada também a educação continuada dos cooperados.

Embora isso já esteja em andamento, muito esforço tem sido feito por professores, estudantes e técnicos da USP para encontrar melhores formas de colocar todo o conhecimento universitário à disposição das classes populares e garantir a inserção no mercado desses setores excluídos.

As equipes de trabalho na incubadora consistem principalmente de alunos de graduação (chamados "formadores") das mais diversas áreas, com destaque para as ciências humanas, que ministram os cursos e palestras aos cooperados, e a direção cabe principalmente a professores da FEA e técnicos do CECAE.

2 - Definição/especificação do problema ou sistema principal do trabalho

Tendo como meta tornar as cooperativas em incubação independentes algum dia, é necessário que as cooperativas aprendam a tomar decisões sobre quais contratos poderão gerar algum lucro, se é conveniente aceitar ou não uma oferta de trabalho, sob o risco de se estar assumindo um trabalho para o qual não há recursos humanos ou técnicos para completá-lo.

Com essa intenção, os técnicos do CECAE procuraram uma forma de resolver esse problema com uso de software. Assim, acabaram por chegar ao professor Alan Mitchell Durham, que é meu supervisor neste estágio.

Em uma primeira entrevista em que estávamos eu, o professor Alan, uma representante da incubadora e uma da CECAE, concluímos que esse tipo de software seria inviável para se usar com as cooperativas, pois esse tipo de software é uma ferramenta muito nova, de custo altíssimo e utilizada por grandes corporações já consagradas no mercado, com muitos anos de experiência em contabilidade. Vimos que o que eles realmente necessitavam era de um sistema que informatizasse o processo de contabilidade, pois permitiria ver mais claramente como andava a "saúde financeira" da cooperativa, elaborar orçamentos e, a partir daí, decidir se um contrato poderia ou não ser firmado com a empresa contratante e, se firmado, qual deveria ser o valor a ser cobrado pelos serviços, com base em trabalhos anteriores, que estariam facilmente disponíveis no banco de dados.

Uma vez definido isso, chegamos à conclusão que o sistema deveria ser feito em Access, haja vista sua disponibilidade, custo acessível em comparação aos outros softwares de bancos de dados, facilidade de programação e porte que não requer máquinas possantes para rodá-lo.

Esse banco de dados deveria ser capaz de receber os registros das operações financeiras realizadas diariamente pela cooperativa, como compras, transferências de dinheiro, vendas, pagamentos, recebimentos e gastos em geral para, quando se fizer necessário, elaborar demonstrativos e balanços que poderiam ser entregues à Receita Federal e, principalmente, para mostrar os resultados da cooperativa para todos os cooperados de forma clara pois, em sendo uma cooperativa, todos devem ter a noção exata de como o dinheiro está sendo usado.

Deveria também ser um software de fácil utilização, uma vez que seus usuários seriam pessoas simples que possuem conhecimentos rudimentares de contabilidade e pouca, ou nenhuma, intimidade com computadores. Assim, o professor Alan frisou para mim a idéia de que o sistema deveria ser auto-explicativo, de modo que não fosse necessário ao operador do sistema recorrer a manuais.
 

3 - Forma de organização da equipe de trabalho e atribuição de responsabilidades

Tendo definido como seria o sistema, eu fiquei encarregado, primeiramente, de me reunir com os formadores da incubadora responsáveis pela contabilidade, os contadores, a fim de extrair todas as informações que precisariam ser inseridas no banco e todas as informações que ele deveria me retornar, ou seja, descobrir quais seriam todas as entradas e saídas do sistema.

Desse ponto em diante, todos os meus contatos com a incubadora se fizeram mediante esses formadores, que ficaram responsáveis por fornecer todo o material e orientações que eu viesse a precisar para desenvolver o sistema. Um dos contadores, já formado, trabalhava para a ITCP, mas também trabalhava em outros lugares, assim, ele raramente aparecia na incubadora. Ele auxiliava também o outro formador pois, como já tinha mais experiência, ele servia como um consultor, além de fornecer documentos importantes para nos basearmos. O outro formador (contador), o que ficou responsável por mim, era um aluno da FEA-USP (Faculdade de Economia, Administração e Contabilidade), de 3.o ou 4.o ano, e que dedicava muito tempo à incubadora.

Já, o professor Alan, basicamente me indicava os próximos passos a serem seguidos no processo de desenvolvimento, assim, quando levei para ele o relatório contendo os primeiros resultados com todas as entradas e saídas do sistema, ele avaliou e disse que ainda faltavam informações. Me explicou como eu deveria proceder para que não deixasse escapar informações, dizendo que eu deveria aprender a perguntar tudo, exatamente tudo, o que eu achasse que poderia precisar. Por exemplo: é útil saber que o sistema deverá armazenar os dados dos cooperados, mas quais serão esses dados exatamente?
 

4 - Estimativa inicial de prazos

A reunião inicial que tivemos com a incubadora, já explicada acima, ocorreu no final de abril, e nessa reunião o professor Alan fez uma estimativa do tempo que seria gasto no projeto, tendo em vista que eu deveria tê-lo pronto para entrega em dezembro, prazo máximo para entrega dos projetos de formatura.

Ele fez a seguinte previsão: durante maio e junho e talvez início de julho, eu faria o levantamento de todos os dados necessários, faria o modelo entidade-relacionamento do sistema e a normalização do banco de dados. Tendo isso pronto, em julho, período de férias, eu faria grande parte da programação, usando parte de agosto se fosse necessário. Em setembro nós faríamos os últimos ajustes necessários e em novembro o sistema seria entregue para testes e ajustes, sendo definitivamente entregue no inicio de dezembro. Ou seja, era um prazo que todos nós considerávamos folgado.

O professor Alan acreditava que a parte de programação seria a mais demorada, mas era na fase de modelagem do banco que ele gostaria que eu concentrasse minha atenção, pois era aí que eu estaria aprendendo coisas novas e utilizando meus conhecimentos teóricos.
 

5 - Andamento do projeto

Alguns dias após essa entrevista, me reuni com os contadores da incubadora, que começariam a me orientar sobre o que eu deveria fazer e também deveria extrair deles tudo o que deveria ser implementado no sistema.

O contador que ficou responsável por me orientar, tentou me explicar como funcionava a contabilidade, para poder explicar o que era um balanço, demonstrativos,... Porém, eu não estava conseguindo entender o que eles me explicavam, assim, ele resolveu me dar um livro para ler, de introdução à contabilidade, "Contabilidade Introdutória", escrito por professores da FEA.

Esse livro me foi muito útil para entender a maioria dos termos que eles usavam na contabilidade, como "creditar" e "debitar", que têm um significado todo especial na contabilidade e que podem levar um leigo a cometer graves erros de interpretação, como eu estava fazendo. Mas, fora isso, esse livro não me esclareceu como montar um balanço ou como montar um demonstrativo, e acredito que era isso o que eles gostariam que eu entendesse do livro.

Eu fiquei um bom tempo preso nessa fase, pois agora que tinha o livro em mãos não sabia como prosseguir no desenvolvimento do projeto. Eu me perguntava: devo entender por mim mesmo como montar um balanço? Quais informações eu preciso ter para começar a implementar o banco? Esse livro contém tudo o que preciso e eu é que estou com má vontade de lê-lo, ou a intenção era apenas dar uma idéia do que é contabilidade?

Nesse período conversei algumas vezes com o professor Alan e ele, percebendo que eu estava atrapalhado e que os formadores da incubadora estavam me conduzindo para a teoria da contabilidade e não para implementar o software, disse que eu deveria começar a extrair todas as entradas e saídas do sistema, para que eu tivesse uma noção de todos os dados que seriam manipulados no banco.

Comecei então a extrair todos os dados que seriam necessários para o sistema, mas foi muito difícil, pois toda vez que me reunia com meu mentor para ele me dizer quais eram os dados que entravam e saiam no sistema, ele sempre conduzia a conversa para o aspecto teórico, não se concentrando em me fornecer os dados. Ele não me permitia conduzir o ritmo da conversa. Exemplo: eu perguntava quais são todos os eventos que geram uma entrada ou saída no sistema, como transferências de dinheiro, pagamentos, recebimentos, etc., e quais dados eram necessários para esses documentos, como nome, rg, endereço, ..., mas ele nunca dava essas informações, pois começava a me explicar que um recebimento é uma entrada de capital na cooperativa e que por isso deveria ser sujeito a tributações e novas leis que estavam entrando em vigor naquele momento.

Isso foi difícil para mim, pois eu não sabia se estava sendo displicente em não tentar entender o que ele queria me explicar ou se ele realmente estava caminhando na direção errada e eu é quem deveria insistir mais em minhas perguntas. Nessa fase gastei cerca de dois meses.

O fato é que depois de várias reuniões e relatórios ele me forneceu o que eu realmente precisava.

Passei então a trabalhar mais com o professor Alan, pois agora estaria fazendo a fase de modelagem do banco de dados. Nessa fase gastei também cerca de dois meses.

Inicialmente o professora Alan me pediu para fazer algumas tabelas que eu acreditasse refletir o banco de dados, mas isso ficou muito difícil, pois ou se descobre que esqueceu de mapear um evento ou está violando uma restrição de integridade ou criando restrições que não existem ou que se está duplicando informações nas tabelas.

Decidi então que o melhor a fazer seria elaborar um modelo entidade-relacionamento, pois é uma ferramenta que auxilia em eliminar parte dos problemas acima.

Mas também encontrei problemas na confecção desses modelos, pois tive dificuldades em saber onde representar certos eventos, se eles deveriam entrar como entidades, atributos ou relacionamentos. Se fossem relacionamentos, seriam ternários, binários ou agregações? Se fossem atributos, de qual entidade seriam?

Nessa fase consultei alguns livros de gerencimento de banco de dados e modelagem, que não me ajudaram muito, pois em sua maioria são voltados exclusivamente à teoria e incluem pouco ou nenhum exemplo prático.

Para resolver isso, fui conversar muitas vezes com o professor Alan, que me mostrava confusões que estava fazendo e por isso não conseguia evoluir na elaboração do modelo, tais como confundir a entrada dos dados com o que deve ser guardado no banco ou descobrir quais eventos precisam ser realmente armazenados no banco de dados e quais servem apenas para efeito de contabilidade. Exemplo: se faço uma despesa, é importante para a contabilidade saber se ela foi feita à vista ou a prazo?

Fiz alguns modelos e o professor Alan escolheu um deles para ser usado, mas ele me pediu que implementasse apenas uma parte, pois havia uma outra parte que poderia ser modelada de duas formas diferente, uma com a visão de um engenheiro de software e outro com a visão de um especialista em bancos de dados. Nesse meio tempo ele descobriria qual a melhor forma a ser utilizada. Posteriormente o professor decidiu que seria implementada a visão do engenheiro de software, pois estava sem tempo para sair em busca da melhor solução.

Em seguida, o professor me pediu que criasse as janelas que deveriam ser utilizadas pelos usuários. Ele frisou a idéia que as janelas deveriam ser simples, auto-explicativas.

Comecei a fase da implementação das janelas comprando um livro sobre Access, que muito me ajudou, uma vez que nunca tinha usado Access ou Visual Basic. Gastei cerca de um mês de leitura, não intensa, para começar a implementar as primeiras funções, pois o livro que comprei, embora fosse um dos disponíveis mais completos, é extremamente mal organizado para quem já possui conhecimento de programação. As informações úteis para programadores se pulverizam ao longo do livro e o índice remissivo é muito deficiente.

Logo em seguida, comecei a programar as primeiras janelas de teste, tentando usar nelas todas as funções que acreditava ter que usar no projeto, para ter uma idéia de quão difícil era fazê-las, como inserir dados em tabelas, remover dados de tabelas enfim, fazer os botões e caixas de listagem funcionarem além do que é oferecido pelo Access, pois este oferece recursos que levam em consideração uma modelagem de banco de dados orientada a Access, o que não era o caso de nossa modelagem, muito mais teórica e portanto muito mais confiável e correta.

Perdi um bom tempo nessa fase também, pois comecei a implementar muitas funções, para mostrar ao professor os recursos do sistema. Eu acreditava que para mostrar as janelas que ele me pediu elas deveriam estar implementadas. Não achava útil ou interessante fazer janelas simplesmente, que não continham ações.

Quando fui mostrar as janelas para o professor, foi que entendi que o que ele queria era realmente só as janelas, sem as implementações, pois muitas das janelas se mostraram incompletas ou com informações repetidas e, mais do que isso, me fez ver que muitas informações sobre os dados a serem inseridos precisavam ser coletadas.

Precisava então me encontrar novamente com o meu mentor na incubadora, para que ele me orientasse nisso mas , nesse meio tempo de quase dois meses em que passei implementando as janelas, meu mentor abandonou a faculdade, bem como a incubadora, pois desistiu do curso e foi morar em outro estado. Isso ocorreu no final de setembro, início de outubro.

Me sobrou o outro contador, que não se dedicava tanto à incubadora, pois tinha outros serviços. Além disso, nesses dias eu estava muito ocupado com provas e entrega de Eps no IME, o que me fez deixar o projeto em segundo plano.

Outro problema se somou a isso: tendo em vista que eu estava recebendo uma bolsa da FUSP com seis meses de validade, ela estava para acabar em outubro, e eu não poderia ficar sem a bolsa pois estava fazendo um tratamento psicológico particular. Ficou claro para mim que deveria procurar um outro estágio, que não exigisse muitas horas, para poder continuar o tratamento e ainda poder me dedicar à faculdade.

Por conseqüência disso, o projeto da incubadora ficou totalmente parado, pois meus horários disponíveis para ir à incubadora, agora quase inexistentes devido ao estágio, não coincidiam com os horários livres de meu novo mentor, e na única vez que conseguimos marcar um horário para conversarmos ele não pôde comparecer.

Finalmente agora, com o término do ano letivo, vou ter mais tempo para continuar o desenvolvimento do projeto.
 

6 - Lista das disciplinas cursadas no BCC mais relevantes para o estágio.

Sem dúvidas a disciplina que mais me serviu foi Sistemas de Banco de Dados, pois foi praticamente a essência do meu estágio.

Mas uma disciplina que muito me fez falta foi Engenharia de Software. Acredito que se tivesse cursado essa disciplina anteriormente, muito trabalho iria ser poupado, pois eu entenderia em qual fase do processo de desenvolvimento eu me encaixava. Por exemplo, quando o professor Alan me pediu para desenvolver as interfaces, se tivesse feito essa disciplina eu já saberia que era apenas uma interface, para visualizar melhor o que estava mal definido ainda, e não começaria a programar as janelas, o que me custou um bom tempo.

Além disso, existem as disciplinas "coadjuvantes", que não foram diretamente relevantes em meu estágio, mas que me ensinaram a programar relativamente bem e a ter uma visão abstrata, para compreender todos os conceitos envolvidos e contabilidade, que tive que obter algumas noções.
 

7 - Interação com membros da equipe e diferenças com relacionamento entre colegas do BCC

Meu relacionamento com os membros da equipe, que na realidade consistia apenas de mim e dos dois formadores(contadores) da incubadora, foi fácil do ponto de vista humano, mas complicado do ponto de vista técnico pois, como já disse anteriormente, o meu primeiro mentor se prendia muito a detalhes teóricos e burocráticos da contabilidade, quando para mim, o desenvolvedor do software, não é muito importante saber as leis envolvidas e os procedimentos contabilísticos que devem ser usados. Em outras palavras, ele gostaria de me fazer um contador.

Houve inexperiência dos dois lados: nós dois por não sabermos como lidar com pessoas de outras áreas, pois enquanto ele queria me tornar um contador eu também não sabia exatamente até onde ele estava certo e quando eu deveria assumir o controle da situação e mostrar claramente quais eram meus objetivos.

Com o outro contador, que veio a ser meu mentor posteriormente, a situação era pior, pois ele não tinha tempo para preparar as coisas que eram necessárias e muitas vezes atrapalhava a mim a a meu mentor, pois não trazia documentos importantes e com freqüência faltava, se atrasava ou precisava sair durante os encontros.

A diferença na cooperação entre minha equipe no incubadora e nossas equipes do BCC é clara.

Primeiramente porque no BCC todos tem a mesma visão sobre o assunto, assim o diálogo flui melhor, pois em muitos casos, embora não fique muito claro o que deve ser feito num projeto, é possível saber quão difícil vai ser fazê-lo. Além disso, no BCC todos são igualmente pressionados pelos professores para entregar os projetos na época certa, e todos se esforçam para terminar tudo no prazo e da forma mais fácil. Mesmo que um dos elementos do grupo mostre desinteresse, sua falta pode ser completada pelo esforço maior dos outros ou por colegas de outros grupos que compartilham as mesmas dificuldades, uma vez que dificilmente existe um único grupo trabalhando sobre um projeto.

Além disso os colegas do BCC estão sempre disponíveis. É muito mais fácil combinar horários para reuniões e exigir a participação de todos, pois fica subentendido que quem não participa vai sofrer alguma represália, seja tendo que fazer as próximas fases do projeto sozinho, ou até mesmo sendo excluído do grupo.
 

8 - Expectativas, desafios e frustrações encontradas

Quando me vi às vésperas de conseguir esse estágio, fiquei muito receoso, pois já tinha vindo de uma decepcionante experiência de estágio do curso técnico, e tinha receio que se tornasse algo similar, com muitas obrigações, prazos sempre para estourados e muita pressão realmente.

Mas felizmente me enganei, e tudo passou a ser muito calmo e totalmente sem pressão, o que na realidade se mostrou um problema posteriormente.

Com o passar do tempo, percebi que quando nos contrataram para desenvolver o software eles não tinham uma noção exata do que queriam e nem que precisavam do software, pois eu era sempre deixado em segundo plano por eles e qualquer probleminha na incubadora era suficiente para que a atenção deles fosse desviada do projeto. Em nenhum momento os contratantes se preocuparam em saber como estava o andamento do projeto e, muito ao contrário do que ocorre no mundo das empresas particulares eu, que era o contratado, que precisava pressioná-los para cumprir as etapas nos tempos combinados.

Poderia ser também uma má compreensão que eles tinham dos fatos, pois poderiam pensar que, porque contrataram alguém para implementar o software, eles não teriam mais responsabilidades sobre isso e que eu desenvolveria tudo sozinho.

Isso foi frustrante para mim, pois achava que estava desenvolvendo algo muito importante, que todos aguardavam ansiosamente, quando percebi que era algo secundário, típico das empresas estatais, que compram coisas que não sabem para que servem e contratam pessoas para desenvolver produtos que não vão usar.

Foi frustrante também o fato de ter chegado ao final do ano, quando o sistema já deveria estar sendo entregue, e perceber que ainda falta muito a ser feito.

Como desafios achei muito válido o fato de estar fazendo algo praticamente (com muitas orientações do professor Alan) sozinho, conduzindo um projeto do começo ao fim, desde a primeira entrevista com o cliente até as fases de entrega do produto.

Tive que aprender Access sozinho e, embora visual basic não seja uma linguagem de programação muito aceita no mundo dos programadores e Access não seja um banco de dados muito aceito no mundo dos bancos de dados, o fato de ter que aprender algo novo totalmente sozinho é muito rica. Não havia ninguém para quem eu pudesse perguntar sobre Access, e isso foi muito bom para o meu crescimento.

O fato de ser um trabalho de caráter social, pois ajuda pessoas de baixa renda a se integrarem no mercado de trabalho e saírem do desemprego, me motivou muito, e pretendo, sempre que possível, usar meus conhecimentos para ajudar a melhorar a vida das pessoas.

É muito boa a sensação de perceber que as pessoas nos valorizam porque nós podemos ajudá-las a ter uma vida melhor, ou seja, muito diferente do mundo capitalista que está aí, que nos enxerga como máquinas e números apenas.

Ter trabalhado com banco de dados me ajudou muito. Eu sempre tive interesse nessa área e acredito que é por esse caminho que quero seguir. Me aperfeiçoar no gerenciamento de bancos de dados e me tornar realmente muito bom nessa área.

Gostaria de ter aprendido muito mais sobre bancos de dados, principalmente modelagem, mas por falta de tempo do professor Alan e pouca intimidade do professor nesse assunto, não pude ir muito além do que consegui entender pelos livros e pela disciplina de Sistemas de Bancos de Dados.
 

9 - Conclusão

De forma geral, gostei bastante do estágio que fiz, pois pude aprender muitas coisas novas e, muito além do conhecimento técnico, ele me ajudou a perder o medo de enfrentar novos estágios, me permitiu conhecer pessoas muito interessantes, com conhecimento muito diferente dos colegas do IME pois, como já disse, em sua maioria eram alunos das áreas de humanas, o que me permitiu ver melhor como as pessoas que estão fora da área consideram o nosso trabalho.
 

10 - Bibliografia

Seguem abaixo o nome dos livros que mais utilizei em meu estágio.