• Artigos

    Domain Driven Design – Melhorando a comunicação

    Software é complexidade. E tal complexidade vem diretamente do domínio do problema ao qual o software se destina a resolver. É aqui que entram uma série de práticas voltadas a tentar combater ou mesmo amenizar tal complexidade. A criação de um modelo de domínio é uma delas. Um modelo é uma simplificação, uma interpretação de algo mais complexo no qual gostaríamos de mostrar os aspectos mais relevantes. Um modelo de domínio serve como base para uma comunicação entre as pessoas que participam de um projeto. Esta comunicação deve ser realizada através de uma linguagem que facilite a interação entre pessoas que possuem visões diferentes sobre o domínio. Em um projeto…

  • Artigos

    Por que XP não funciona?

    Nosso amigo Luiz “farol” Sanches atualmente está concluindo seus estudos sobre agilidade no C.E.S.A.R. em Recife.  Na reta final de seu curso pegou uma tarefa interessante: relacionar quais os motivos pelos quais eXtreme Programming pode não funcionar.  O assunto acabou gerando uma discussão interessante na lista que tentaremos sintetizar e compartilhar aqui.

  • Artigos

    Refatorações e “code smells”

    Um conceito importante para manter qualidade de código é o de Refatoração. “Refatoração” vem de re-fatorar, ou seja, fatorar (lá da matemática mesmo) duas vezes.  No caso, entenda-se até “várias vezes”. Refatorar um código não vai nem aumentar nem diminuir a quantidade de funcionalidades, de lógica de negócio, nem de bugs do programa (a rigor é errado alguém dizer que vai “refatorar pra corrigir um problema”). A refatoração não altera o comportamento externo do programa, mas apenas a estrutura interna no sentido de deixá-la mais simples e/ou fácil de entender. No livro “Refatoração: aperfeiçoando projeto de código existente“, Martin Fowler discorre bastante sobre o assunto.  O catálogo com a relação…

  • Artigos

    Usando mapas conceituais para entendimento das regras de negócio

    Resumo Gostaria de apresentar aqui uma prática que me ajudou muito no início de um projeto de software com um nível de conhecimento científico alto. Esse projeto ainda está em andamento, e hoje – depois de um ano – eu posso ver o quanto a adoção dos mapas conceituais me ajudou a entender as regras de negócio e a estabelecer o escopo do sistema e posteriormente o detalhamento das suas funcionalidades. Desafios Quando eu entrei no projeto, me deparei com um desafio: criar um software a partir das melhores práticas de zootecnia, estudadas e comprovadas durante anos por especialistas e que agora deveriam ser estruturadas para desenvolver um produto que…