Rafael Noronha

closing the gap between business and technology

Archive for April, 2009

Fit for Developing Software – Review

without comments

Even with the best approaches, there always seemed to be a gap between the software that was written and the software the user wanted. With Fit we can finally close the loop. This is an important piece in the agile development puzzle.

–Dave Thomas
coauthor of The Pragmatic Programmer

Fit For Developing Software

Fit For Developing Software

Este livro influenciou muitas pessoas que hoje são referências na indústria de software. Para os agilistas, uma leitura obrigatória.

Fit é uma ferramenta que pode ajudar a entregar ao cliente o software que ele precisa. Com Fit a análise de requisitos gera documentos executáveis. Estes documentos são testes de aceitação, que descrevem em dados tabulares como as regras de negócio se comportam, e consequentemente, como se comportará  o software.

Os testes mostrarão aos desenvolvedores o que precisa ser feito. Após o desenvolvimento, os testes consomem o código, sendo executados de maneira automatizada ao longo do ciclo de vida do software, garantindo o seu funcionamento.

Fit for Developing Software explica como colocar isto em prática. O livro conta com diversos exemplos e exercícios, abordando com riqueza as técnicas a serem utilizadas.

Insistir em documentos e diagramas não executáveis significa desperdiçar dinheiro, e muito provavelmente signifique também pecar na qualidade.

Amadureça o seu processo, envolva o cliente e transforme requisitos em testes de aceitação.

Depois me conte os resultados.

Written by rafanoronha

April 26th, 2009 at 12:32 pm

Posted in Sem categoria

Tagged with

Dinamismo = Liberdade ?

without comments

Com o destaque que Rails vem ganhando no mercado desde o seu nascimento, é natural que desenvolvedores da plataforma web dediquem alguma atenção a esta nova tecnologia.

Chegou então a minha vez de buscar algum material a respeito. Começo os estudos pelo Ruby, pois sem a linguagem, o framework nem mesmo existiria.

Estudei um pouco a natureza e a gramática de Ruby. O que chama atenção, obviamente, é o poder que o dinamismo tem a nos oferecer.

Para quem está acostumado com uma linguagem fortemente tipada e estática, como C#, olhar para Ruby dá uma sensação de liberdade, e consequentemente, de poder.

Linguagem Estática

Static Language

Isto também nos faz lembrar do Uncle Ben: poder = responsabilidade.

Usando então de pragmatismo, vejo dois horizontes a investigar:

  1. Em que circunstâncias Ruby ou outras linguagens dinâmicas me ajudariam dentro da plataforma .Net.
  2. Como seria trabalhar na plataforma Ruby on Rails, desprendendo-se da abordagem .Net.

Em relação ao segundo ponto, sei que Rails é muito mais do que um framework escrito sobre uma linguagem dinâmica, e por isso pretendo conhecer melhor tudo aquilo que envolve a plataforma.

Ruby também é muito mais que uma linguagem dinâmica. A gramática também é muito interessante É MUITO INTERESSANTE.

Nos próximos meses darei profundidade a estes estudos.

E quem sabe um novo Railer estará surgindo !? (Isto dependeria de vários tipos de incentivo, acredite).

Written by rafanoronha

April 21st, 2009 at 11:34 pm

Os meios possuem um fim

with 3 comments

Muitas ferramentas podem ser úteis quando desenvolvemos software.

Design Patterns, ou padrões de projeto, ajudam a resolver problemas comuns.

Processos ajudam a conduzir projetos aos resultados desejados.

Abordagens e metodologias surgem quando alguém inventa algo que pode ajudar no dia-a-dia de equipes de desenvolvimento.

Testes e métricas podem garantir a qualidade do trabalho.

O que não pode acontecer, é aplicar apenas por aplicar.
Seja padrões de projeto, processos, práticas, abordagems ou métricas.

Seja Test-Driven Development, Domain-Driven Design, Design Patterns ou Scrum.

Não quero dizer que colocar em prática aquilo que muitos estão recomendando é ruim.

Também não estou dizendo que continuar fazendo as coisas da boa e velha maneira seja o caminho a seguir.
A não ser que os resultados que você tem conseguido são sempre plenamente satisfatórios (em time que está ganhando, não se mexe).

O que proponho é compreender o que está por trás de cada uma das práticas a serem implementadas, estejam elas na moda ou não.

Entender onde ganha-se e onde perde-se ao aplicar um padrão, um processo, uma abordagem, ou uma tecnologia.

Estudar conceitos, dominando os básicos e desbravando os mais avançados.

Sem isto, as melhores tecnologias, ferramentas e processos não serão suficientes para te guiar ao sucesso.

Para tanto não será necessário possuir n certificações, conhecer n frameworks e linguagens de programação.

Mais importante é entender como entregar um software de qualidade, e o que te ajudará a conseguir isto.

Written by rafanoronha

April 20th, 2009 at 4:14 pm

Posted in Sem categoria

Tagged with ,

Asp Net MVC: T4 te dá asas e produtividade

without comments

Se você já olhou de perto o Asp Net MVC sabe que liberdade não faltará para a construção de seus projetos.

E quando vemos de perto o T4 (Text Template Transformation), ou outras ferramentas de geração de código, a impressão que dá é esta:

O céu é o limite

O céu é o limite

O céu é o limite

No caso, o céu é o tamanho da sua criatividade para reduzir a quantidade de código repetitivo a ser escrito.

Um pequeno exemplo do que se pode fazer com T4 dentro do Asp Net MVC

Para rodar este exemplo eu precisei do Visual Studio 2008 e do Asp Net MVC 1.0 instalados.

Também é necessário fazer o download da interface gráfica jQuery UI.
Será utilizado apenas o Widget Datepicker.

Também precisaremos do Visual T4 Editor Community edition, para trabalhar com arquivos T4.

Crie um novo projeto MVC e faça uma cópia da pasta CodeTemplates (na minha máquina fica no diretório abaixo) , para a raiz de seu novo projeto, através da Solution Explorer.

C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Web\MVC\CodeTemplates

É dentro destes diretórios que ficam alguns templates de geração de código utilizados por ferramentas do Visual Studio.

Enquanto a seguinte janela for exibida, peça sempre para cancelar.

security-warning_31

Então selecione dentro do seu projeto os arquivos .tt copiados um a um, abrindo a janela de propriedades e apagando o valor da propriedade Custom Tool.

Precisaremos então dos arquivos do jQuery UI, que foram baixados.

O arquivo jquery-ui-1.7.1.custom.min.js deverá ser referenciado na sua Master Page. E também a folha de estilo jquery-ui-1.7.1.custom.css. Antes de referenciar os arquivos, copie-os para o projeto. A folha de estilo junto com a pasta de imagens deverá ficar dentro do diretório Content do projeto, e o arquivo javascript dentro da pasta Scripts.

Para referenciá-los basta arrastar os arquivos para dentro de sua Master Page, a partir da Solution Explorer.

Conteúdo da Master Page

Agora entra em ação a nossa criatividade.

Crie uma cópia deste arquivo para o diretório CodeTemplates/AddView, que deverá existir dentro da raiz do seu projeto.

Compare as diferenças deste arquivo para o template Edit.tt, sugerido como padrão pelo MVC. Escrevi pouquíssimas linhas de código para obter um resultado interessante.

Crie uma classe dentro de seu modelo. Esta classe deverá possuir uma ou mais propriedades do tipo DateTime.

Crie um controlador para a sua classe, compile o projeto e depois crie uma View tipada com ajuda do Visual Studio, para a ação Edit do seu controlador

mvcaddviewt4datepicker

Note que na opção View content, temos o nosso template pronto para ser utilizado. Ao clicar em Add, sua View será construída e você já pode checar o resultado.

works-on-my-machine-starburst

Veja que o código do jQuery é naturalmente simples, mas o importante é que você não precisou escrevê-lo. Poderia haver muito mais código encapsulado dentro de nosso template.

Conclusão

Este foi um exemplo bastante simples, mas que ilustra o poder que temos em mãos com o T4 dentro do Asp Net MVC.

Você pode customizar completamente o template de suas views, padronizando o layout do sistema, reduzindo a quantidade de código a ser escrito e consequentemente dando mais atenção a aquilo que realmente merece importância: valor de negócio.

Se você se interessou pelo T4 aqui está uma ótima referência.

Fica aqui uma menção ao curso de Asp Net MVC ministrado pelo Giovanni Bassi, onde o Victor Cavalcante deu a dica da fácil integração do jQuery.

Written by rafanoronha

April 10th, 2009 at 5:13 pm

Posted in Sem categoria

Tagged with ,

Agile Project Management with Scrum – Review

without comments

This book is an excellent guide for anyone looking to improve how he or she delivers software, and I recommend it highly.

—Mike Cohn
Certified ScrumMaster
Director, Agile Alliance

Agile Project Management with Scrum

Agile Project Management with Scrum

Neste livro Ken Schwaber não entra em detalhes sobre o que é Scrum. O foco está em como aplicar Scrum da melhor maneira possível.

Os capítulos do livro guardam histórias vivenciadas pelo autor, que desta maneira contextualiza o leitor com situações reais e como Scrum foi útil na resolução de problemas vivenciados dentro destas situações.

Como Scrum corretamente aplicado ajudou organizações a alcançarem seus objetivos.

Assim como um Scrum mal compreendido e praticado não foi tão útil em outras organizações. Neste caso o autor procura expor pontualmente aquilo que não correu bem dentro do processo.

Um livro bastante interessante e encorajador para os adeptos e interessados na metodologia.

Um guia para Scrum Masters que buscam o sucesso e por que não, leitura recomendada também para gerentes de projeto optantes por métodos mais convencionais.

Written by rafanoronha

April 9th, 2009 at 9:33 pm

Posted in Sem categoria

Tagged with