Kanban no Desenvolvimento Ágil de Software by Dilbert

“Bem bolada” a montagem que o pessoal da turma de Gerência de Projetos de Software da FACIN/PUCRS 2009/2 fez usando um episódio do Dilbert!

P.S. : dica “pinçada” do site Cantinho do Agile.

Por que alguns programadores não gostam de escrever testes automatizados?

Quebrar um paradigma de formação não é difícil, mas não é impossível.

Como tratamos de assuntos ligados as metodologias ágeis, vou abranger os testes automatizados e o que o mesmo poderá beneficiar o programador.

Os teste automatizados são uma maneira de garantir a qualidade de código, sendo assim, cliente e programadores ganham. O cliente vai ganhar um produto com qualidade melhor e o programador terá um aliado que são os testes automatizados para garantir que seu código tem qualidade.

Testes automatizados contribuem para princípios ágeis com software funcionando, adaptação a mudança, colaboração com o cliente e indivíduos em interações.

Problemas sem testes automatizados:

  • Muito tempo na depuração;
  • Erros encontrados tardiamente;
  • Difícil repetir testes;
  • Demorado;
  • Cansativo;
  • Executado poucas vezes.

Benefícios dos testes automatizados:

  • Segurança para mudanças de código e externa;
  • Aumento o tempo de vida útil do software;
  • Testes executados a qualquer momento;
  • Ajuda a encontrar erros;
  • Aumenta a velocidade de programação.

E como deve ser código do teste?

O código do teste merecem os mesmos cuidados que o código do sistema.

O código do teste sofre manutenção e também pode ter erros, portanto deve ser legível e simples.

Tipos de testes

O tipo de teste que o programador geralmente faz na metodologia ágil são os testes de unidade, que possuem as seguintes características:

  • Encontra muitos erros;
  • Tipo focando na funcionalidade(caixa-branca).

O demais testes são:

  • Aceitação;
  • Interface  do usuário;
  • Mutação;
  • Desempenho;
  • Estresse;
  • Segurança;
  • Integração.

Os demais testes o programador pode até fazer, mas necessita-se de um analista de teste, pessoal de infraestrutura ou arquiteto, conforme o teste e experiência requerida. Também existem diversos softwares (frameworks) para os demais testes, sendo um exemplo o JUnit e outros para testes de unidade.

Colegas programadores, com os testes automatizados você somente tem a ganhar na execução do seu trabalho e na formação profissional. Tendo uma visão focada nos negócios, além de tecnologias.

Qualquer funcionalidade que não possui testes automatizados simplesmente não existe.

Kent Beck

Referências sobre BDD – artigos para leitura

Para os interessados em aprender e entender o que é BDD, conhecer os conceitos essenciais dessa prática ágil, indico dois posts que li nesse dia de hoje, referências boas para quem busca respostas iniciais sobre assunto. Eis os links abaixo:

Ferramentas para BDD

Procurando por ferramentas para aplicar BDD?

Se você programa em Java pode usar um framework chamado JBehave. No site do projeto há um tutorial de 2 minutos (!) explicando o uso da ferramenta. Vale a pena dar uma passada por lá.

Se programa em Ruby use o framework Cucumber. O próprio site do projeto é bem completo e com muitas referências, inclusive para livros (o principal: “The RSpec Book: Behaviour Driven Development with RSpec, Cucumber, and Friends”).

Caso eu encontre outras referências do assunto, estarei colocando no blog a medida do possível.

Até mais e bons estudos!

Uma breve introdução sobre Lean

P.S. : “Pinçado” do Cantinho do Agile 🙂

Os Melhores Podcasts de Tecnologia para Desenvolvedores

Post excelente escrito pelo André Faria Gomes. Muito bom mesmo! Podcasts sem dúvida são um dos meios mais indicados para adquirir conhecimento em tecnologia, ainda mais quando você está antenado no que Martin Fowler, Kent Beck, Rod Johnson entre outros estão falando. Retirado do andrefaria.com.

Um dos maiores problemas da sociedade moderna é a dificuldade de locomoção diária, a maioria das pessoas passa horas em seus carros, ou em meios de transporte públicos para irem de lugar a outro. Há alguns anos atrás quando morava na zona norte de São Paulo e trabalha na zona sul, essa era minha realidade. Uma vez que naquela época passar por isso era inevitável procurei formas de fazer com esse tempo pudesse de alguma forma torna-se produtivo, foi então que comecei a ouvir à podcasts.

iPod FM radio remote por dan taylor
iPod FM radio remote por dan taylor

De acordo com a Wikipedia, Podcasting é uma forma de publicação de arquivos de mídia digital (áudio, vídeo, foto, etc.) pela Internet, através de um feed RSS, que permite aos utilizadores acompanhar a sua atualização. Assim, é possível o acompanhamento e/ou download automático do conteúdo de um podcast.

Neste post apresentarei os podcasts aos quais escuto e os episódios principais para que você ouça. Sugiro que você utilize o iTunes para inscrever-se nos podcasts e sincronizar com seu iPod.

Desenvolvimento Ágil

por pcalcado
por pcalcado

Podcast da ImproveIt

por Vinícius Teles
http://improveit.com.br/podcast
Português

AgilCast

Por AgilCoop
http://agilcoop.incubadora.fapesp.br/portal/agilcast
Português

Agile Toolkit Podcast
http://agiletoolkit.libsyn.com
Inglês

ThoughtWorks Podcast

http://www.thoughtworks.com/what-we-say/podcasts.html
Inglês

Open Source

FLOSS Weekly

por Leo Laport, Jono Bacon e Randal Schwartz
Inglês

Java

HorecaExpo - Java por bramloquet
HorecaExpo – Java por bramloquet

JavaPosse

Por Tor Norbye, Carl Quinn, Dick Wall e Joe Nuxoll
Inglês
http://www.javaposse.com

Java Technology Insider

Inglês
http://www.javaworld.com/podcasts/jtech

Grails Podcast

Por Glen Smith e Sven Haiges
http://grailspodcast.com

Ruby

Ruby on Rails por Andrew*
Ruby on Rails por Andrew*

Rails Envy

Por Jason Seifer e Gregg Pollack
Inglês
http://railsenvy.com

Rails Podcast

por Geoffrey Grosenbach
Inglês
http://podcast.rubyonrails.com/

Rubiverse Podcast

Por Mike Moore
Ingles
http://rubiverse.com

JavaScript

jQuery Podcast

Português
http://blog.jquery.com/2009/11/13/announcing-the-official-jquery-podcast/

Gadgets

GeekBrief TV

por Cali Lewis
Inglês
http://www.geekbrief.tv

Software

Desk por Guillermo Esteves
Desk por Guillermo Esteves

Pragmatic Podcasts

por Pragmatic Bookshelf
Inglês
http://www.pragprog.com/podcasts

Software Engineering Radio

por Software Engineering Radio
http://www.se-radio.net
Inglês

Elegant Code

por Elegant Code Community
http://elegantcode.com
Inglês

Google Developer Podcast

http://code.google.com/p/google-developer-podcast/downloads/list
Inglês

Hearding Code

http://herdingcode.com
Inglês

Tecnologia

IT Conversations

http://itc.conversationsnetwork.org
Inglês

net@Night

por Amber MacArthur e Leo Laport
http://www.twit.tv/natn

Twit – This Week in Tech

por  Leo Laporte, Jeff Jarvis, Baratunde Thurston, e John C. Dvorak
http://www.twit.tv/twit

MacBreak Weekly

por Leo Laporte, Don McAllister, Paul Kent, and Andy Ihnatko
http://www.twit.tv/mbw

This Week in Google

por Leo Laporte, Gina Trapani, Jeff Jarvis e Mary Hodder
http://www.twit.tv/twig

SitePoint Podcast

inglês
http://www.sitepoint.com/podcast

Empreendedorismo e Negócios

37 Signals Podcast

por 37 Signals
Inglês
http://37signals.com/podcast

Max Gehringer (CBN)

por Max Gehringer
Português
http://cbn.globoradio.globo.com/servicos/podcast/NOME.htm

Mundo Corporativo (CBN)

por Heródoto Barbeiro
Português em Áudio
http://cbn.globoradio.globo.com/servicos/podcast/NOME.htm

The Startup Success Podcast

http://startuppodcast.wordpress.com
Inglês

TED Talks

por TED Talks
Inglês
http://www.ted.com

O básico do SCRUM (legendado)

Achei o vídeo muito legal! “Pinçado” do Cantinho do Agile, como sempre…rs.

Introdução a programação em par

P.S. : “Pinçado” do blog Cantinho do Agile.