3 clientes, 3 promessas de desenvolvimento de um sistema, 3 projetos para 3 meses.. 3 desculpas esfarrapadas.
Primeiro cliente, primeira promessa, primeiro projeto..
..12~13 anos, aficcionado por jogos de computador. Tinha primos e mãe que adoravam apagar seus saves nos jogos favoritos. Aprendeu a programar fuçando em manuais do Ms DOS, BATCH foi sua primeira linguagem.
Seu padrasto apresentou-lhe o Clipper Summer 87. A possibilidade de definitivamente esconder senhas e executar aplicações SOMENTE a partir do aplicativo de desbloqueio tomaram conta da vida e dos pensamentos de J.
Não demorou muito para aprender a trabalhar com arquivos .DBF, a interface DOS realmente foi-lhe amigavel.
J compilava suas aplicações, lincava o arquivo objeto diretamente com os jogos preferidos, aprendera a manusear arquivos (e suas permissões de escrita - ATTRIB, e maravilhosas aplicações executando em background impedindo acesso aos seus maravilhosos saves), aprendera a utilizar bancos DBase, indexa-los e extrair buscas complexas.
Eis seu primeiro desafio: Programa de locadora.
O aplicativo tinha ficado leve, pequeno e relativamente fácil de operar. Haviam no total 6 executáveis (sendo o principal responsável por direcionar o usuário ao cadastro de clientes, estoque, relatórios, backup e respectivo instalador). Lembro de ter cobrado R$50,00 pelo sistema.
Imaturo, irresponsável, ingênuo. 3 "I"s que marcaram época.
Prometi o sistema funcionando em 3 meses.
Iniciei, claro, desenvolvendo o instalador. Como se eu tivesse todo o tempo do mundo para o resto.
Minha mãe, na época, criticava o fato de eu não iniciar um projeto sem um nome, uma identidade para o mesmo. Se o nome da aplicação não era suficientemente bom, se as cores e o layout não eram interessantes. Logo eu desistia e recomeçava.
Foi assim com o instalador..
..Até finalmente, claro, eu nomea-lo INSTALADOR e pronto. Naquela época os nomes dos arquivos deviam ser menores de 9 caracteres, o executável ficou somente como INSTALAR.EXE - percebe-se que minha falta de criatividade vem de anos atrás.
O instalador consistia em somente em uma tela contendo uma barra de progresso e uma relação de itens a serem instalados. Efetuada execução do INSTALAR.EXE este localizava o local de execução, deveria ser um disquete rotulado conforme descritivo no arquivo oculto INSTALAR.EX0 (que não passava de um .DBF escondido), o tamanho, nomes, local de origem e destino estavam salvos em outro arquivo oculto chamado INSTALAR.EX1 (que igualmente não passava de outro .DBF escondido).
Toda essa questão do instalador dava um ar de profissionalismo pra coisa. Os arquivos a serem instalados geralmente não possuiam nome algum mas sim um rótulo tipo INSTALAR.001, INSTALAR.002, INSTALAR.003 e assim sucessivamente (conforme quantidade de arquivos - nunca programei nada que tivesse mais de dez -, sejam arquivos de banco de dados, executáveis, ajuda ou documentação).
Muitas vezes o próprio instalador apresentava problemas (o sistema era tão complexo que chegava a atrapalhar). Os rótulos nos discos muitas vezes não era válido pelos dados salvos no .DBF, o que muitas vezes me forçava a efetuar as instalações manualmente.
Lembro de ter demorado pelo menos um mês programando esse bendito instalador. Eu já tinha recebido metade do pagamento, o cliente queria ver alguma coisa funcionando - e eu não ia levar um instalador.
Contra a vontade de sua mãe adotara a política de entrar madrugada a dentro programando - foram uns 3 dias intensos.
Chegara então ao cliente com a tela principal do nosso projeto:
Uma grande caixa estilo 3D (pra época, poxa, era muito bacana) exibindo os rótulos dos comandos (teclas de atalho), clientes recentemente cadastrados, artigos recentemente cadastrados, artigos a serem devolvidos e clientes devedores (ou algo muito próximo disso - foi desenvolvido quaisquer módulo financeiro, primeiro por não estar previsto, segundo por não haver conhecimento suficiente, terceiro por não ter tempo - o que taxava um cliente com débito ou não era somente um campo estilo checkbox informando situação regular/irregular).
Essa era a tela principal do aplicativo - lembro também haver um grande problema com a listagem de clientes devedores, mas isso nunca foi corrigido (ou sequer mencionado posteriormente).
Como podem ver, o projeto realmente estava engatinhando, eu tinha metade do prazo para desenvolver, o cliente - como era de se esperar - não ficou nada satisfeito com o que fora apresentado. J conversou, se explicou, mostrou os fontes, apresentou o banco de dados. Apesar das adversidades, conseguira convencer seu algoz que terminaria sua penitência dentro do prazo.
Foram longas noites desenvolvendo o módulo de clientes, e mais longas noites desenvolvendo e repensando o estoque. Banco modelado, telas criadas, faltava relacionar, fazer funcionar. Workflow? J não tinha 15 anos, sequer imaginava essas coisas.
Criou telas de edição, inclusão, listagem e exclusão para seus registros.
Apanhou quando começou a programar as rotinas de "locação", onde os dados de dois bancos deveriam ser lidos, as informações cruzadas e dados salvos em ambos arquivos. O prazo estourava em uma semana - menos, dias.
A corrida contra o tempo começou, J não conseguia pensar em nada. Resolvera adicionar funcionalidades ao aplicativo - no intuito de amenizar a ira de seu contratante.
Pensou adiante, algo visionário: rotina de backup.
O cliente teria salvo em seu HD o sistema e todas informações de estoque de fitas da loja, o que aconteceria se o banco apresentasse problema?
Para minimizar os danos, todo final de expediente seria interessante salvar os arquivos de dados. J daria ao cliente não apenas um, mas DOIS disquetes. Um contendo o INSTALADOR (que alguns meses após viraria multifunção: RESTAURADOR de backups), e o outro disco em branco, contendo somente um rótulo e um arquivo oculto de índice (para saber qual seria a contagem do disco - quantas vezes fora efetuado backup).
Apresentado os módulos ao cliente, juntamente do instalador finalizado (sem o recurso de restauração operacional, mas funcionando), ele adorou, porém reclamou da falta de relatórios e de uma forma de saber se o cliente havia pago (lembro-me agora que esse recurso só foi feito dias após a entrega).
Enfim, um sistema de 3 meses levou quase meio ano para ser desenvolvido. Devido as circunstâncias o cliente não quis pagar a quantia restante.
J estava decepcionado, sentia raiva, tristeza, injustiça..
..E o resto eu conto amanhã.
Insatisfação pessoal, angústia, raiva, medo, o poder sobre as trevas visto de uma forma mais humana e racional do que pode ser imaginado. A corrupção, o desvio de caráter, todas alterações psicológicas que um ser humano pode sofrer se submetido a pressão, a desmotivação e a humilhação. A simples decadência tomando conta, ou não..
13 maio 2010
Assinar:
Postar comentários (Atom)

Nenhum comentário:
Postar um comentário