Posts

Showing posts from April, 2009

Curso de AOP com AspectJ

Pessoal em Dezembro de 2007 fiz um curso sobre AOP com AspectJ. Vim aqui para disponibilizar o curso gratuitamente para os leitores do blog. Todos podem usar a apostila de forma gratuita. Além da apostila com 69 páginas vim disponibilizar 4 apresentações em power point sobre o curso e os fontes da apostila em um projeto no eclipse. Apostila-AspectJ-1.5.4 Apostila-AspectJ-1.5.4 dmetallica Curso de AOP com AspectJ por Diego Pacheco(http://diego-pacheco.blogspot.com) Publish at Scribd or explore others: java aop aspectj pro Você pode pegar os fontes da apostila aqui . Os fontes estão em um projeto do eclipse, para que você possa compilar os fontes e executar os programas vocês preci

O Melhor do XP

Image
Em um post anterior comentei o que acho que existe de melhor no Scrum. Agora vim falar de XP. Tenho pontos de discordai em relação ao XP, principalmente em relação a requisitos, requisitos não são conversações em andamento como muitos do XP pensam, logo quando falamos de Casos de Uso não estamos falando meramente só de mais níveis de detalhamento. Você pode usar as estórias do usuário sem problemas, mas em certos contextos não será a melhor solução. Mas neste post não vim falar das diferenças sobre casos de uso e estórias do usuário, isso posso fazer em outro post, como disse antes aqui vi falar das coisas que acho muito saudáveis no XP, tais práticas em valores são concebíveis para vários projetos em vários contextos. Quatro Valores Acho muito válido uma metodologia de desenvolvimento de software como o XP focar em valores, é comum vermos papéis, práticas, guias, fluxo de trabalho, mas princípios? não é muito comum, mas acho muito válido, por que em certas situações somente a utiliza

Customizando Subversion parte 2

Em um post anterior escrevi sobre a possibilidade de customizar o comportamento do sistema de controle de versão open source chamado Subversion ou popularmente chamado de SVN. Neste post vou mostrar através de um Script Python como é possível modificar o comportamento do Subversion de forma que não deixe o usuário realizar um commit sem um comentário. A Importância dos Comentários nos Commits Além de uma ótima prática de gerencia de configurações, utilizar comentários no commit do svn nos ajuda na hora de realizar merges, na hora de acompanhar mudanças e também quando você está procurando um versão antiga de um artefato. Você irá precisar de um Binding A API do Subversion é para alguma linguagem como Java, Python, PHP, etc é chamada de Binding. Então precisamos de um binding para Python. Vamos utilizar o binding do próprio site do subversion chamado de pysvn . Você precisa instalar o Python e o Subversion e bem como o pysvn. Uma vez tudo isso instalando vamos ao script,

Gerente Capataz

Recomendo a todos vejam esse vídeo do Waldez Ludwig .

Base Militar ou TI?

Image
Você sabe onde você trabalha? Imagino que sim. Você sabe em que empresa Trabalha? Imagino que sim. Você percebe a diferença de uma base militar para o seu setor de TI? talvez a resposta seja não. Não é culpa sua, nem tudo a gente muda, querendo ou não certas coisas não valem a pena serem mudadas. Por que não valeria a pena mudar algo? Quantas vidas você tem? Uma só. Certas coisas não mudam, mas por que continuar pensando na caixa? É isso mesmo, você deve estar pensando dentro da caixa. Pensando dentro da Caixa Você não deve seguir as coisas como são em sua empresa. Esse pensamento vai colocar você centro de um caixa, essas rédeas mentais travam a evolução da organização e a melhoria do processo e dos produtos da empresa. Para inovar você precisa esquecer o que aprendeu, esqueça as regras, o cavalo só é livre e está sem rédeas. Como que você consegue se sentir bem com esse tipo de modelo? Só existe uma resposta se você falar que sim a resposta é você gosta de sofrer amigo. Mas nem todas

O Melhor do Scrum

O leitor que acompanha o meu blog de longa data sabe que tenho diversas críticas ao movimento ágil. Sempre expressei minha opinião de forma clara e embasada, mas acho que é mais do que justo eu ratificar as coisas boas que o movimento trouxe e o no que são melhores e mais fortes. Neste post vim falar sobre o que tem de melhor no Scrum. Não creio que o melhor seja a capacidade de entregar valor ao negocio rápido, pois isso diversos métodos o fazem. Esta é uma grande característica mas vários outros método como o RUP o OpenUP e até mesmo o EVO é capaz de fazer isso. A construção de uma Equipe O Scrum de maneira empírica é na verdade um grande protocolo para a construção de uma equipe. Isso mesmo construção de uma equipe. Todo projeto começa com um grupo e é uma necessidade básica transformar esse grupo em equipe. O Scrum prove através de um método simples, uma instância do PDCA uma forma de forçar a conversação na equipe e a reflexão dos atos das pessoas e claro do produto. Por que usar

Não Continue Errando

Image
Se você trabalha com desenvolvimento de software no Brasil pode estar vivenciando diversas épocas da história da humanidade. O mundo mudou, as coisas mudaram, mas as empresas ainda continuam com aqueles velhos hábitos e pensamentos sobre o passado. Isso mesmo. Existe uma grave inversão de valores nas empresas no Brasil e infelizmente não é a minoria das empresas. A maioria das empresas não tem equipes, tem grupos que trabalham de forma desordenada, atrapalhada e individual. O Individualismo no Desenvolvimento de Software... Ainda existe a cultura de que desenvolver software é algo individual. Tolice! Por que quando desenvolvemos software precisamos de diversas habilidades como lidar com pessoas, gerenciar riscos, gerenciar expectativas, remover impedimentos, testar, estimar, planejar, verificar o que foi feito e fazer o software. Para isso uma equipe multi-funcional é melhor e lida muito melhor com a complexidade existente nos sistemas. As empresas continuam a negar isso, achando que

Q.A Muito mais que Testes

Image
Por mais estranho que pareça ainda é comum achar empresas que não testam seus produtos de software. Isso chega a ser muito diferente se falarmos de outras áreas como a indústria de automóveis por exemplo. Você já pensou se você compra um carro zero na concessionária e ao sair com o carro ele nem liga, ou pior a porta do carro nem abre? Imagine então andar 10 metros e furar o pneu? Novo e não funciona! :( Isso é horrível, não digo que nos dias de hoje isso é improvável que aconteça mas é difícil, mas por que é difícil por que eles testam o carro e as partes do carro. Ao desenvolver software você está fazendo algo que não existia e você precisa sim testar e muito. Por que Testar Software? Por uma questão extremamente básica. Como você sabe que funciona? Se não testar não sabe, bugs são inevitáveis, mas isso não significa que você pode entregar um produto de baixa qualidade pra seu cliente. Os testes não garantem a qualidade do produto, mas ajudam nesta garantia, para garantir a qualidade

Só um Time de Qualidade Enterga Produtos de Qualidade

Image
Você como é um consumidor. Todos somos, todos consumimos produtos, seja por sentimentos ou por necessidades. Quem não quer qualidade nos produtos? Existia o tempo em que as empresas ditavam o preço das coisas, hoje o mercado dita o preço, logo para se manter competitivo neste mundo você precisa ter qualidade. Quando falamos de qualidade, podemos falar basicamente de dois tipos de qualidade a interna e a externa, quando falamos de software ou produto de software muitos pensam na qualidade externa, que é que o cliente vê. O que é preciso para construir software de qualidade? É preciso uma equipe. Muitas empresas tem um grupo, mas não tem um equipe. Em um grupo você tem pessoas em uma sala que fazem coisas para a sua empresa. Isso é muito diferente de um Time ou uma Equipe. Time Um time tem um goal em comum e são pessoas que se apóiam. Não confunda time com familia, por que nas familias existe apoio incondicional muitas vezes superando até a razão e em um time isto não existe. Certa vez u

Gerenciamento de Níveis com Scrum e RUP parte 2

Na primeira parte destes artigo s falei sobre o modelo de gestão em níveis e como ele poderia ser mixado com métodos ágeis como o Scrum. Neste post vou mostrar mais detalhes do método através de uma apresentação power point. Planejamento Niveis View more presentations from Diego Pacheco . Você pode conferir exemplos de dashboard do método que fiz aqui no meu quarto com post-its e uma parede, você acessa isso no meu flicker .

Gerenciamento de Níveis com Scrum e RUP parte 1

Image
Scrum é um excelente framework para a condução do micro-ambiente. Suas práticas ágeis são fantásticas para aumentar a colaboração e levantar problemas e resolver impedimentos da equipe. Scrum ajuda muito no dia-a-dia da equipe de desenvolvimento de software, através das reuniões diárias, conseguimos tanto antecipar e corrigir problemas como ter o posicionamento do que a equipe está fazendo. A visão compartilhada de uma equipe é essencial. Se você tem pessoas trabalhando para sua empresa em uma sala, não necessariamente você tem uma equipe. Para ter uma equipe você precisa de indivíduos que compartilhem o mesmo goal. Assim como em equipes esportivas, não existe possibilidade de um ganhar e os outros perderem, ou todos ganham ou todos perdem. O Scrum possibilita que a equipe evolua e cresça como equipe através de retrospectivas e momentos de planejamento de prestação de contas sobre o que foi desenvolvido. Dashboard O Dashboard é um elemento fundamental na adoção de práticas do Scrum, e

Como Avaliar uma Solução com o QSOS

Image
Já avaliei diversas ferramentas em vários projetos que participei. E sei bem como pode ser uma novela avaliar, escolher, comparar e instalar uma ferramenta. A ferramenta pode ser desde uma ferramenta de modelagem como EA ou uma ferramenta de Requisitos. Mas a ferramenta em questão também pode ser uma solução de arquitetura como um servidor de aplicação ou até mesmo um ESB. Avaliar tem um custo Ninguém compra ferramenta só pela lista de features, para comprar uma ferramenta você tem que avaliar diversos aspectos da mesma que podem vir do mais trivial ao mais avançado. Antes de mais nada você tem que pensar para que você precisa da ferramenta e qual as necessidades que a ferramenta deve sanar. Isso pode ser tratado como requisitos, já utilizei essa abordagem algumas vezes com sucesso, uma simples lista com os requisitos da ferramenta podem bastar em alguns cenários. Veja que você terá um trabalho para fazer isso e isso demanda tempo de recursos e gera custos. O que fazer? Podemos dividi

Algumas Ferramentas que utilizo

Não sou muito de fazer lista, mas creio que seja justo compartilhar algumas das boas soluções open source que utilizo em projetos. Já utilizei essas soluções em diversos projetos, não utilizo apenas soluções open source, este também não é um post anti-proprietário. A idéia é compartilhar algumas boas soluções para o desenvolvimento com Java. Ferramentas não substitui o bom profissional, uma boa ferramenta na mão de um tolo pode ser uma bomba relógio, mas a culpa não é da ferramenta e sim de quem o contratou. Um boa ferramenta na não de um bom profissional pode além de facilitar a sua vida e evitar o trabalho repetitivo, aumentar a produtividade e até mesmo ajudar a mitigar riscos. Então vamos a lista de algumas soluções open source que uso, essas soluções são para propósito geral, existem outras ferramentas que utilizo mas ai já estaríamos entrando em domínios mais específicos e esse não é meu objetivo neste post. Firefox : Excelente browser e ótima escolha para desenvolver suas aplic

Balancear é Preciso

Image
Hoje em dia esta na mídia falar de TI. Isso inclui des das ferramentas, linguagens de programação e até mesmos métodos e processos . Nas ultimas semanas venho tendo boas discussões sobre todo esse tipo de coisa. Muito se fala em qual seria a melhor solução ou o que a grama do vizinho tem que a minha não tem. Nesse ponto vem todo o tipo de coisa, des da retórica religiosa até mesmo ao lado emocional. Paixão é um ingrediente importante para o sucesso e a realização de qualquer profissional mas neste mundo que estamos vivendo as vezes temos que deixar isso um pouco de lado e partir para abordagens mais racionais do que emotivas. O que escolher? O que usar? O que estão falando? Hype? Muitas Palavras? De facto o que esta na mídia pode estar longe de ser o que você procura ou o que você de fato precisa. Dificilmente uma única solução ira resolver todos os seus problemas, é mesmo não existe a bala de prata. Os seus problemas podem ir des de um Servidor de aplicação mal configurado até mesmo c