Na edicao de novembro da revista TIDigital eu fui entrevistado para a materia sobre Desenvolvimento Agil, que era o tema dessa edicao da revista. As perguntas feitas foram perguntas frequentes e algumas confusoes tambem frequentes que ocorrem quando se fala em agilidade. Vou transcrever a entrevista aqui e espero que esclareca algumas duvidas. [TIDigital] Como voce resumiria o que e ser um desenvolvedor agil? [P.Igor] Ser um desenvolvedor agil e ter espirito de equipe, coloraboracao, pronto pra resolver qualquer problema que ajude a alcancar as metas, e ser auto-gerenciavel e ter sempre a sensacao que o trabalho pode ser melhorado, buscando sempre uma melhoria continua.[TIDigital] Diante de tantas metodologias ageis de gerenciamento que tem grande sucesso em todo o mundo, como escolher uma? Depende do sistema a ser desenvolvido? [P.Igor] Na verdade para escolher uma metodologia e preciso avaliar o que melhor se encaixa a cultura da empresa, entao o interessante mesmo e se manter informado, pesquisar e estudar as praticas e tecnicas que sao utilizadas para entao decidir quais seriam relevantes para a sua realidade, e geralmente ainda sao necessarias adaptacoes.[TIDigital] Qual a importancia do teste de software? A agilidade esta tambem baseada em testes. Se voce nao testa, nao e agil. Como e este processo de testes continuos durante o desenvolvimento? [P.Igor] Teste de software e imprescindivel ainda mais quando estamos em um ambiente agil, e a sua afirmacao esta correta, se voce nao testa nao e agil. Dentro de um ambiente que estamos trabalhando com ciclos de desenvolvimento de 2 semanas ou 1 mes sao necessarias outras tecnicas para amenizar a carga de testes apenas no final, entao os testes sao diluidos em todo o ciclo tornando o teste mais continuo, pra isso e necessario automatizar boa parte dos testes, e em intervalos curtos de tempo o software todo e testado, assim a equipe consegue identificar problemas rapidamente no software, assim da mais seguranca em grandes modificacoes no software, no desenvolvimento de novas funcionalidades e melhora a qualidade do produto, pois o software esta o tempo inteiro sendo verificado. Para isso geralmente sao utilizadas ferramentas para automatizar os testes e executa-los periodicamente reportando as falhas encontradas, acho ate que as praticas de teste nas metodologias ageis sao mais fortemente empregadas que em outras metodologias.[TIDigital] Quais ferramentas voce indica para testes de sistemas web? [P.Igor] Isso depende muito da plataforma, ou linguagem de desenvolvimento que voce utiliza, as principais plataformas possuem ferramentas que permitem fazer desde os testes de integracao, aceitacao, ate testes de interface. Por exemplo para JAVA existe o JUnit, JMock, JBehave (suporte ao BDD - Behaviour Driven Development), o Selenium (ferramenta mais especifica para teste de aplicacoes web) que da suporte para teste de aplicacoes web escritas em diversas linguagens diferentes, nao so o JAVA, e nao e so o JAVA que possui esses recursos cada uma tem seu conjunto, assim como para Ruby, Python, Perl, e ate para ferramentas e linguagens mais especificas como por exemplo para o desenvolvimento de RIAs (Rich Interface Application) como o Flex + ActionScript que tambem possuem as suas ferramentas de