30 de junho de 2009
Novas Postagens
Agora estou trabalhando em uma empresa maior, filiada a TOTVS, fazendo gerenciamento de projetos. A área da empresa é diferente, mas gerenciar projetos de TI é sempre igual, só muda o escopo.....
Até a próxima....
Delphi 2009 - Parte II
Ai, fui tentar é claro, compilar minhas aplicações e já me deparei com um problema. Utilizo aplicações em 3 camadas e ai para minha surpresa o método GetTableName do DataSetProvider sofreu mudanças nos parâmetros, ao invés de String ele utilizar WideString.... fala sério, tive que trocar tudo... até compila, mas dá pau depois.
Beleza a aplicação servidora funcionou!
Fui para a aplicação cliente, depois de, é claro, sofrer trocando os componentes da RxLib pelos meus novos componentes, consegui finalmente compilar a versão. Aproveitei e também atualizei meu Socket Connection para a nova versão do Delphi 2009.... ai começou a primeira decepção. O novo Socket simplesmente não funciona, a aplicação não localiza nenhum servidor de aplicação e não consegui conectar à minha aplicação servidora.... como descobri? Troquei o socket, voltando para a versão do Delphi 2007 e adivinha... funcionou.
Os problemas não pararam por ai, meu componente de relatórios não funcionava mais... eu entrava para editar o relatório, e.... pau.... Access Violation (se fosse em tempo de design, fechava o Delphi).
Bom, deixei o componente de relatório de lado e depois que consegui compilar e executar minha aplicação, comecei a testar. Primeira tela, 100% de sucesso... funcionou. Segunda tela... pau! Sem explicação... essa tela funcionava certinho pensei.... mas para minha frustração a tela estava codificada corretamente, o problema estava novamente no Delphi 2009. Não sei exatamente porque, mas parece que o Delphi mudou a implementação da propriedade "Provider Flags" do TSQLQuery. Antes, quando eu queria apenas trazer um campo na consulta e manusear o dado deste campo (alterar o valor dele) e não quisesse gravá-lo (sem inserção ou alteração), bastava eu deixar todas as propriedades como FALSE e assim, ao inserir ou alterar, o campo não sofria alterações. Muito útil quando se tem campo FK em uma tabela e o valor precisa ser mostrado. Acontece, que desta forma, no Delphi 2009 não funciona, o DELPHI simplesmente tenta gravar o campo, e como ele não existe na tabela sendo gravada.... pau.
Putz, o que que a Embarcadeiro e a equipe da Codegear fizeram com o Delphi? Inventaram um monte de coisa nova e estragaram o que funcionava bem antes......
Bom, qual minha saída? Voltar para o bom e velho Delphi 7. Acho que é por isso que a maioria esmagadora ainda utiliza essa versão do Delphi....
Bom, até a próxima.
5 de junho de 2009
Delphi 2009
Semana passada resolvi instalar o Delphi 2009 e iniciar a conversão dos meus componentes e projetos pessoais, que estavam no Delphi 7, para essa nova versão.
O primeiro problema foi instalar no meu notebook, deu uma dor de cabeça lascada. Instalava, mas faltava componentes, tentava desintalava, trava o instalador, apaguei tudo, limpei os registros do Windows, tentei instalar novamente e travava no meio do caminho. Bom, até que depois de umas 10 tentativas, finalmente consegui. O engraçado que na máquina de casa, um desktop, instalou de primeira… vai entender.
Desempenho.
Logo de cara, percebi que é um tanto mais pesado que o Delphi 7 no meu notebook (AMD 64, HD80Gb 4200 rpm e 1 GB de memória) mas até que aceitável a demorar para abrir. No micro de casa (AMD 64 X2, HD 250 SATA 7200 e 2 GB de memória) até que foi rápida a inicialização.
Porém, a demora só na entrada. Compilação achei mais rápida, as ajudas (hints) abrem bem mais rápido que no Delphi 7, e não fica dando aquelas malditas travadas do Delphi 7 aonde ele fica procurando sabe lá o que no seu HD.
Interface
Mudou de mais em relação ao Delphi 7, mas essa mudança já vem desde a versão 8. Particularmente, acho a interface do Delphi 7 mais produtiva e fácil de trabalhar, mas é falta de costume. A busca rápida por componentes ajuda bastante, mas o estilo Visual Studio, ainda não me agrada muito.
As opções do menu são praticamente as mesmas, mudando pouca coisa em relação a versão 7. A parte de opções mudou bastante, mas só na questão de disposição, pois as opções são as mesmas.
Convertendo Componentes
Bom, ai começa o seu problema. Muitas coisas mudaram na linguagem, principalmente na questão de variaveis String e Char. Como vocês sabem (se não sabem, vão saber) que na versão 2009, o tipo String foi alterado o charset para Unicode16 e isso trouxe algumas mudanças. Muitas funções não aceitam mais o caracter Char e você terá que realizar a conversão para AnsiChar (basta fazer a chamada da funçao “AnsiChar()”, é simples de resolver, mas enche o saco ter que mudar tudo). Muitas funções tiveram incrementos de parametros, o que geram diversos erros de compilação, já que o parametro não é opcional.
Tive problemas com vários componentes de terceiros (os meus não deram), mas como eu tinha os fontes, consegui ajustar. Só não consegui converter a biblioteca RXLib, mas como eu utilizo apenas 3 componentes desta biblioteca, criei os meus próprios para substituir, já que o projeto foi abandonado e nem compensa perder tempo com essa biblioteca (se você utiliza, vai ter dor de cabeça para arrumar, alguns tipos e classes do Delphi utilizados na RXLib mudaram na versão 2009).
Em resumo, se você depende de componente de terceiros, tenha certeza de que o fornecedor já tenha preparado os componentes para Delphi2009 ou que você tenha os fontes, certamente você terá que mexer neles. Se você depende de um componente de terceiro e não tem ele para versão 2009, esqueça, não migre ainda.
Convertendo as aplicações
Bom, como tive que me desfazer da RxLib, estou ainda tendo que trocar os componentes desta biblioteca pelos meus próprios componentes. Ainda estou nesta fase e já está dando bastante trabalho. Depois que terminar, conto a vocês qual foi o resultado.
Finalizando…
Até o momento, achei a ferramenta bastante estável, coisa que não vi desde a versão 7. Quem já utilizou a versão 2007 não achará tanta diferença na interface, mas vai encontrar diferenças na parte de código, pois algumas coisas referente a linguagem mudou. A parte de edição de código, achei muito boa, pois ficou as dicas referente às funções tem links que ajudam a pesquisar no help e abrem muito rápido (bem diferente da versão 7). Tem vários auxilios de código, “code completation” muito interessante, lembrando o NetBeans quando se fala em Java (por exemplo, você escreve try e ele já monta a estrutura com o finnaly e end no final).
Gostei muito do Delphi2009, só preciso me acostumar com a nova interface, mas, sou suspeito em dizer, pois sou fã do Delphi desde sua verão 3.0 e utilizo essa ferramenta desde 1997, mas se você também gosta da linguagem, saiba que o pessoal da CodeGear (agora da Embarcadeiro) fez um excelente trabalho na versão 2009.
Só uma coisa me deixou desanimado: seus programas compilados em Delphi 2009 não rodarão em máquinas com Windows 98 (pelo menos é o que a CodeGear declarou) em virtude das mudanças feitas no charset de Strings, que passou para Unicode 16 que não é suportado por versões do Win98, ME e algumas versões mais antigas do Windows 2000.
Se deseja migrar para Delphi 2009 mesmo assim (como eu fiz) eu recomendo cautela, avalie seu componentes, seus sistemas, seus clientes e veja se não irá gerar mais dor de cabeça para você. Caso você não tenha problemas em ter que rodar seu sistema em Win98 e nem com componentes, vá em frente, arrisque e boa sorte.
Até a próxima.
3 de junho de 2009
Vai abrir uma empresa? Pense bem antes.
Decidi que queria abrir uma empresa para minha esposa, pois seria melhor do que ela arrumar um emprego no comercio da cidade e ter a sorte de quem sabe, conseguir um salário comercial que mal chegaria a 600 reais por mês.
Foi ai que começamos a verificar alguns tipos de negócios e achamos que seria interessante adquirir uma franquia, pois a chance de sucesso seria muito maior. Conseguimos diversos contatos, entrevistas e até propostas com valores e tudo mais, tinhamos o "perfil" procurado pelos donos das franquias. Perfeito, agora só precisa do principal: o dinheiro, a grana, a "bufunfa"....
Ótimo, aonde conseguir? humm... resposta: Projer, um programa do governo para novas empresa e projetos, com possibilidades de até 80% do valor com limite de 500.000,00, e tudo com auxilio do Sebrae, de forma simples (como é divulgado) e rápido.
Certo? Não, errado.
Você deve ter um plano de negócio muito bem elaborado, que justifique o seu projeto e que ele seja rentável e que você tenha como pagar o financiamento.
Fizemos o plano de negócios, ficou excelente, projeto totalmente rentável, não tinha como não ser aprovado e o nosso empréstimo.
Com o plano de negócio assinado e aprovado pelo consultor do Sebrae (que por hora, não podemos reclamar devido ao seu excelente atendimento), fomos ao banco e adivinha? Projeto aprovado e dinheiro liberado? Doce ilusão.
Infelizmente esse projeto do governo, facilidade de se conseguir dinheiro para inicar o seu próprio negócio é uma ilusão.
Primeiro: os bancos não fazem a menor idéia que existe esse tipo de projeto ou financiamento. Os funcionários do Banco do Brasil e Caixa Econômica estão despreparados, não sabem dar respostas.
Segundo: quando descobre-se uma pessoa no banco que conhece esse tipo de financiamento, você descobre que você tem que ter 1 ano ou mais de empresa aberta... opa... como assim? se estou querendo o dinheiro para começar o negócio, como posso ter empresa com faturamento comprovado de 1 ano? Ridículo, mas é isso mesmo que acontece.
Terceiro: se pelos programas do governo para abrir empresas simplesmente não existem ou ninguém sabe que existe (só a pessoa que faz a propaganda na TV), recorre a quem? Bancos e instituições financeiras, porém, os juros são tão altos que inviabilizam qualquer projeto de nova empresa, porém, esses juros são ignorados pela maioria que abrem seu negócio e "quebram" em menos de 1 ano.
E ainda tem todos os "pepinos" de uma empresa... isso que comentei é apenas para começar o seu negócio, a partir daí você tem outros problemas, como encargos (descobri que o maior sócio da empresa é o governo, que tem retirada mensal muitas vezes maior que a do dono), funcionários (encargos trabalhistas, podem chegar à 103% sobre o valor que você paga a seu empregado), bancos, administrar o negócio de forma correta, e por ai vai.
E ai? Pensou direito? Quer encarar e abrir seu próprio negócio?
Se sim, ai vão algumas dicas minhas:
1. Conheça o negócio primeiro. Não abra uma loja de roupas se você não sabe nada sobre moda, isso só vai fazer você comprar e vender errado.
2. Trabalhe como empregado naquilo que quer abrir, conheça as "manhas" do negócio, pegue dicas com as pessoas (meu pai sempre disse isso....).
3. Não tem como trabalhar antes, recorra a amigos, parentes, amigo do seu vizinho, reuniões de associações comerciais... ou seja, vá atrás de informações de como funciona o ramo de atividade do negócio que deseje abrir.
4. Não abra um negócio apenas pelo dinheiro, por exemplo dizer: "vou abrir uma loja de importados porque dá dinheiro" só que você não entende nada deste ramo e não gosta de ter que trabalhar vendendo produtos.... Em suma, faça algo que você goste, as chances de dar certo são maiores.
5. Prepare-se para passar um tempo sem retirar nada da empresa, tenha dinheiro em caixa particular para se manter entre 3 à 8 meses para pequenos negócios, esse período será quase impossível tirar algum dinheiro da empresa.
6. Fuja dos altos juros. Se tiver que recorrer e empréstimos, tente buscar amigos, parentes que ofereçam dinheiro a juros baixo. Faça um contrato com seu parente ou amigo para que fique algo formal. Se não tiver escolha, visite vários bancos, converse com os gerentes e tente busca o juros mais baixo. Se você tem conta pessoal em algum banco, vá nele primeiro, por já ter um relacionamento com o banco pode ser mais fácil.
7. Aprenda a administrar uma empresa. Você sabe o que é fluxo de caixa? Contas a Pagar? Contas a Receber? Demonstrativo de Resultado? Lucratividade? Bom, se algum destes itens já fez você coçar a cabeça, vá estudar antes. Recorra ao Sebrae é um ótimo lugar para começar. Faça os cursos que estão disponíveis no site do Sebrae (são de graça). Não tem internet, vá até o Sebrae de sua cidade ou de uma cidade próxima, faça todos os cursos que conseguir, aprenda a administrar seu negócio antes de abri-lo, pois não adianta chorar sobre o leite derramado.
Bom ai estão algumas dicas, se quiserem mais, deixe seu comentário que nos próximos post posso colocar mais dicas e informações para vocês.
Até mais.
16 de maio de 2009
Atualização do Site de Apostilas
Bom, não faz tanto tempo asim....
Adicionei para vocês, queridos leitores deste blog, mais 3 documentos. Agora sobre o MS-Project.
Para quem está iniciando o uso desta ferramenta, sempre se depara com uma questão: por onde começar?
Por isso, montei um roteiro básico de como montar um cronograma de um projeto, por onde e quais opções você deve acessar antes de sair preenchendo a planilha com suas atividades.
Também adicionei, uma apostila de como você pode acompanhar seu projeto, utilizando a técnica de valor agregado no MS-Project
E por fim, adicionei uma pequena apresentação, que fala um pouco sobre gerenciamento de projetos segundo o PMI.
Visite e baixe suas apostilas no site: http://site.pop.com.br/emersonz
3 de maio de 2009
Site de Apostilas, apresentações e documentos
Ele conterá algumas coisas que publicarei neste blog em formato PDF para baixar e outras apostilas, apresentações e textos, que já produzi e venho reproduzindo ao longo dos anos.
A página é bem simples, mas está separada por assunto, pois o unico intuito é divulgar as minhas apostilas e não a de terceiros.
Para começcar, já disponibilizei 3 apostilas pequenas:
1. Apostila básica de UML
2. Apostila sobre RUP
3. Apostila sobre Design Patterns.
Visite a página e baixe os arquivos, são de uso livre, você pode ler, copiar, alterar desde que cite o nome do autor destes documento (no caso, eu) .
Endereço: http://site.pop.com.br/emersonz
1 de maio de 2009
Scrum – Vantagens e Desvantagens
Na empresa que estou atuando atualmente, está em processo de implantação de uma metodologia baseada no Scrum. Nestes 5 meses que se passaram desde a adoção e implantação da metodologia percebi algumas vantagens e desvantagens da metodologia como um todo.
Vamos a algumas vantagens que percebi durante esse tempo:
- Motivação maior dos programadores. O comprometimento dos programadores realmente aumentou assim como a motivação. Foi muito interessante ver o empenho dos desenvolvedores em atingir a meta que era de “entregar o sprint” ou seja, eles se comprometiam em entregar aquilo que eles disseram que iriam entregar no prazo de 1 sprint (na empresa, foi adotado Sprints semanais).
- Visualização do projeto. Os projetos passaram a ter uma visualização melhor dentro da organização, antes ficavam ocultos e só os gerentes de projeto sabiam o que se passava no projeto. Como todo projeto passou a ter um Backlog com tudo que deve ser entregue fica mais fácil a visualização por todos os membros da equipe.
- Diminuição dos bugs. O prazo deixa de ser o mais importante e a qualidade passa a ser o centro das atenções. O programador não tem mais um prazo que lhe é imposto e sim a equipe se compromete a entregar aquilo que ela consegue no prazo do Sprint (1 semana, 2 semanas, 1 mês), porém, tem que entregar sem nenhum erro e a funcionalidade não pode mais voltar com erro. Os índices na empresa mostraram que o re-trabalho diminuiu.
- Prioridades podem ser alteradas. Isso realmente é uma vantagem em projetos em que o cliente tem dúvidas do que é mais importante. Quando se trabalha com metodologias como a do PMI, isso é travado, pois qualquer alteração na sequencia das atividades, detona o planejamento e a execução do projeto, mas com Scrum não, pois só não se mexe no Sprint, mas aquilo que ainda não foi planejado no Sprint, pode ser alterada sua ordem sem problemas, desde que já se tenha os requisitos da funcionalidade prontos.
- Funcionalidade que agregam valor, vêem primeiro. Um dos itens que independente da metodologia pode ser aplicado, contudo, no Scrum esse critério é bastante enfático, pois o que agrega maior valor ao negócio do cliente, deve sim ser entregue primeiro mas muitos gerentes não se atentam a isso, preferem entregar o que é mais fácil primeiro (bem típico do ser humano... faz o que é mais fácil primeiro e deixa o difícil por ultimo).
Bom, existem outras vantagens, mas vou deixar para outro dia... agora vamos a algumas desvantagens:
- Projeto não documentado. No inicio, documentação parece ser inútil, muitos perguntam: “Para que gastar tempo escrevendo? Vamos codificar que é melhor”, contudo, existem projetos conturbados, requisitos mal escritos geram dor de cabeça mais tarde. A falta de documentação de software gera custos na hora da manutenção e no suporte, pois na hora de alterar alguma funcionalidade, sem documentação, o analista ou programador poderá ficar perdido ou alterar algo que não poderia ser alterado. Esse é um dos principais problemas que vejo na metodologia. Sugiro uma adaptação e não abandonar totalmente a documentação e sim ser mais seletivo, documentando aquilo que é necessário realmente.
- Prazo. Bom, se a equipe de produção determina o prazo, como vamos passar uma posição ao cliente de quando o projeto acaba? Alguns dizem que é possível dar datas com o Scrum, mas não é a prática que é pregada. Vejo isso como um problema, pois o cliente sempre perguntará: “quando que vai terminar esse projeto?”... ou nunca perguntaram para você? Tudo bem, o cliente recebe funcionalidades periodicamente, assim você pode negociar o prazo final... porém, nem todo projeto é assim.
- Falta planejamento do escopo. A metodologia não aborda nenhum tipo de planejamento do escopo apenas que deve-se ter um Backlog. Contudo, esse backlog sofre mudanças e fica a cargo da equipe avaliar e controlar esse backlog. A equipe tenderá sempre para o cliente, pois ele busca a satisfação do mesmo, porém, pode deixar escapar itens que não era para serem feitos, ou seja, o risco de ser feito itens fora do escopo aumenta e a empresa pode perder dinheiro com isso.
- Papéis indefinidos. No Scrum só existem 4 pessoas: O usuário, o Product Owner (PO), o Scrum Master (SM) e o Team (time), mas cadê o analista de negócio, o analista de sistema, o testador.... ah sim, está tudo dentro do time... será que está mesmo? Um programador testar o que o outro fez, nem sempre funciona é necessário um testador que saiba o que está fazendo. Programador nem sempre sabe modelar, é necessário uma pessoa com experiência em análise de sistemas. O PO acredito que tem que ser o analista de negócio e o time tem que ser composto por pessoas com diversas competências, senão a coisa não funciona. Outro detalhe, o usuário, através do PO é quem diz ao time o que ele quer e pra que, mas as vezes, o usuário não sabe o que quer e ai entra o analista de sistema, que tenta interpretar o que o usuário deseja... mas no Scrum só existe o time. Se o time tiver as competências necessárias, funciona, caso contrário, vai sair você sabe o que.
Conclusão
Acredito que nenhum processo ou metodologia seja perfeita para sua empresa ou para a minha. Todas tem suas vantagens e desvantagens. Particularmente, gostei de várias teorias do Scrum, de outras, nem tanto. Mas como é um Framework, você pode adaptá-la para a sua realidade e criar um processo para a sua empresa. Por exemplo, na empresa não foi extinto o documento de requisito, que deve ser documentado e assinado pelo cliente, pois sabemos que sem esse documento, podemos facilmente perder o controle do escopo do projeto. O importante, é que sua empresa tenha um processo definido, que seja seguido por todos e que seja continuamente melhorado, seja ele derivado do Scrum, XP, RUP ou qualquer outra metodologia.
Até a próxima!