sexta-feira, dezembro 18, 2009

Desenvolvimento Ágil - Entrevista para TIDigital

Na edição de novembro da revista TIDigital eu fui entrevistado para a matéria sobre Desenvolvimento Ágil, que era o tema dessa edição da revista. As perguntas feitas foram perguntas frequentes e algumas confusões também frequentes que ocorrem quando se fala em agilidade.


Vou transcrever a entrevista aqui e espero que esclareça algumas dúvidas.



[TIDigital] Como você resumiria o que é ser um desenvolvedor ágil?


[P.Igor] Ser um desenvolvedor ágil é ter espiríto de equipe, coloraboração, pronto pra resolver qualquer problema que ajude a alcançar as metas, é ser auto-gerenciável e ter sempre a sensação que o trabalho pode ser melhorado, buscando sempre uma melhoria contínua.

[TIDigital] Diante de tantas metodologias ágeis 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 é preciso avaliar o que melhor se encaixa a cultura da empresa, então o interessante mesmo é se manter informado, pesquisar e estudar as práticas e técnicas que são utilizadas para então decidir quais seriam relevantes para a sua realidade, e geralmente ainda são necessárias adaptações.


[TIDigital] Qual a importância do teste de software? A agilidade está também baseada em testes. Se você não testa, não é ágil. Como é este processo de testes contínuos durante o desenvolvimento? 


[P.Igor] Teste de software é imprescindível ainda mais quando estamos em um ambiente ágil, e a sua afirmação está correta, se você não testa não é ágil. Dentro de um ambiente que estamos trabalhando com ciclos de desenvolvimento de 2 semanas ou 1 mês são necessárias outras técnicas para amenizar a carga de testes apenas no final, então os testes são diluídos em todo o ciclo tornando o teste mais contínuo, pra isso é necessário automatizar boa parte dos testes, e em intervalos curtos de tempo o software todo é testado, assim a equipe consegue identificar problemas rapidamente no software, assim dá mais segurança em grandes modificações no software, no desenvolvimento de novas funcionalidades e melhora a qualidade do produto, pois o software está o tempo inteiro sendo verificado. Para isso geralmente são utilizadas ferramentas para automatizar os testes e executá-los periodicamente reportando as falhas encontradas, acho até que as práticas de teste nas metodologias ágeis são mais fortemente empregadas que em outras metodologias.

[TIDigital] Quais ferramentas você indica para testes de sistemas web? 


[P.Igor] Isso depende muito da plataforma, ou linguagem de desenvolvimento que você utiliza, as principais plataformas possuem ferramentas que permitem fazer desde os testes de integração, aceitação, até testes de interface. Por exemplo para JAVA existe o JUnit, JMock, JBehave (suporte ao BDD - Behaviour Driven Development), o Selenium (ferramenta mais específica para teste de aplicações web) que da suporte para teste de aplicações web escritas em diversas linguagens diferentes, não só o JAVA, e não é só o JAVA que possui esses recursos cada uma tem seu conjunto, assim como para Ruby, Python, Perl, e até para ferramentas e linguagens mais específicas como por exemplo para o desenvolvimento de RIAs (Rich Interface Application) como o Flex + ActionScript que também possuem as suas ferramentas de teste, como o FlexUnit e o ASUnit, hoje é difícil encontrar linguagens que possuem comunidades fortes, ou empresas grandes por trás, sem esses tipos de ferramentas para realização de testes automatizados. 

[TIDigital] Você conhece o Manifesto ágil? Acha que ele substitui um método ágil?


[P.Igor] Sim. O Manifesto ágil é a origem e a base para todas as metodologias ágeis, o manifesto traz na verdade uma série de valores que foram identificados pelos principais nomes da engenharia de software da atualidade, que se reuniram para discutir o por que dos projetos de software fracassarem tanto e como eles poderiam fazer para mudar essa realidade. No início a idéia era definir um novo modelo de processo ou algo do tipo, mas eles viram que não chegariam a lugar algum, com isso eles perceberam que em todos os projetos de sucesso havia algo em comum, então foram identificados valores que eram mais importantes que outros e que contribuíam para o sucesso do projeto. Na verdade o manifesto ágil guia as metodologias e nele que devemos nos basear até mesmo para realizarmos nossas adaptações para atender a nossa cultura e não nos distanciarmos dos valores destacados no manifesto.

[TIDigital] Desenvolvimento web ágil se resume a seguir uma metodologia de gerenciamento e fazer testes contínuos? O que mais é preciso? A escolha por linguagens e frameworks está englobada à atividade ágil de desenvolvimento?


[P.Igor] Não. Desenvolvimento ágil não está atrelado a frameworks, ferramentas, linguagens e também não é seguir nenhum modelo, guia, ou qualquer que seja a receita de bolo. Desenvolvimento ágil é conseguir utilizar uma série de práticas de desenvolvimento adequadas a um desenvolvimento iterativo e incremental, onde a cada iteração (ciclo) o software recebe um incremento, alcançando o máximo possível de retorno do investimento feito pelo cliente rapidamente, e valores que ajudam a alcançar isso estão presentes no manifesto ágil.


Veja não estou dizendo que não precisamos de ferramentas, existem muitas ferramentas, práticas e técnicas de desenvolvimento que ajudam bastante o desenvolvimento de software ágil, mas não é apenas isso que determina se você está sendo "ágil", ou não.


Acho que o manifesto ágil e toda a comunidade está tentando resgatar um desenvolvimento de software mais centrado no processo criativo do desenvolvimento e não tentando tratar o desenvolvimento como uma grande máquina constituída por pessoas totalmente descartáveis que repassam papéis de lá pra cá e ignoram quase que completamente o comportamento humano dentro do processo de desenvolvimento de software, ao em vez de se adequar a realidade, onde tratamos de "coisas abstratas" vindas de pessoas, tentando resgatar do nosso cliente uma imaginação do que seria o software pra ele e como esse software o ajudaria. Não da pra simplesmente anotar tudo isso de uma vez, fazer e entregar, como se o cliente não fosse esquecer nada de importante nessa conversa, o processo requer um refinamento e acompanhamento de perto do cliente para ir aparando as arestas até que a "obra" esteja concluída. 


O desenvolvimento de software está mais para um processo artístico do que para um processo fabril como a maioria encara ainda. As pessoas precisam encarar o desenvolvimento de software de forma diferente e as metodologias ágeis estão trazendo isso a tona, uma forma diferente, para muitos, de fazer software!





Abraço.


sábado, dezembro 12, 2009

Maré, Beljungle VI e Sun Tech Days

Hoje eu cheguei ao final da maratona de eventos que ocorreram nessas últimas 3 semanas...a maratona começou cedo na verdade, nesses últimos meses do ano eu estive organizando, ajudando a organizar e participando dos eventos Maré de Agilidade Fortaleza e Belém, Beljungle VI / Sun Tech Days em Belém, e para finalizar a maratona o Sun Tech Days em São Paulo.

O Maré de Agilidade foi na verdade um grande desafio que um grupo de pessoas assumiu no mês de agosto desse ano para então realizar o evento em novembro, que apesar do grupo não ser formado por pessoas especializadas em promover e organizar eventos, na verdade nós estamos bem longe disso, fizemos o evento acontecer e com o principal de qualquer evento, muito conteúdo de primeira e muita troca entre todos os participantes do evento. Valeu galera que abraçou a causa e ajudou a fazer desse evento um marco pra muitos!

O legal do Maré foi a quebra de paradigmas, a participação de uma quantidade que eu já não via mais nos eventos em Belém, na verdade eu não via eventos em Belém, pois os eventos realizados foram apenas esses que eu comentei. A participação de profissionais de empresas privadas e públicas, alunos das faculdades, professores e até participantes de fora do estado, esse público que fez com que o Maré de Agilidade tivesse tudo pra ser show!

Mas para completar tivemos ainda a participação de grandes nomes da agilidade no Brasil e fora também como, Manoel Pimentel, Alexandre Magno, Alexandre Gomes, Renato Willi, Wesley Rocha, Leonardo Antonialli, Serge Rehem, e Felipe Rodrigues. Ai sim tivemos tudo que precisávamos pra fazer um bom evento...conteúdo de qualidade e público interessado na troca, essa combinação fez do Maré um evento show de bola!

Confira algumas fotos do evento no site do Manoel Pimentel

Eu já estava satisfeito e ainda tínhamos mais uma missão pela frente, o Beljungle VI que tinha parceria com o Maré de Agilidade e iria contar com a participação praticamente do mesmo público. E foi mais ou menos isso que aconteceu, tivemos um público legal (mesmo que ainda muito pequeno quando comparado a antigas edições do Beljungle) e interessado em participar, contribuir e se integrar a comunidade de usuários JAVA, foi ai que veio mais um evento de sucesso, com uma grade de palestras bem diversificada e interessante, abordando assuntos atualizadíssimos por palestrantes locais e mais a participação do Sang Shin (palestrante da Sun).



Tivemos uma sessão diferente dos outros Beljungles que foi na verdade uma adaptação do “Boteco Agilista” que teve no Maré, para “Boteco JAVA” no Beljungle, essa sessão fez bastante sucesso com a galera, pois todos tiveram a oportunidade de participar de fato trocando experiências, colocando suas opiniões e tirando suas dúvidas. O feedback dessa experiência foi muito legal, muita gente elogiou e com certeza ainda teremos muitos “botecos JAVA” em outros encontros!!!

E mais uma vez a galera da comunidade engajada em fazer um evento legal fez a diferença, valeu galera do Beljungle VI!!!! Valeu Edgar Silva e Maurício Leal pela força, mesmo de tão longe o incentivo e apoio de vocês foi de grande importância.

Quem quiser ver as fotos do Beljungle VI, confira o post da Pamela

Pois é...dois eventos maravilhosos e ainda não tinha acabado, ainda iríamos representar o JUG do Pará, o nosso Sou Java Belém no Sun Tech Days em São Paulo, que haveria palestras ilustríssimas e ainda a presença do “pai do JAVA”, James Gosling. E mais uma vez embarcamos nessa viagem, literalmente, e marcamos presença no evento (eu e o Samuel Menezes).

O Sun Tech Days teve um clima diferente, devido fatores que todos já devem imaginar, mas não deixou de ser um super evento! E aqui fica mais uma vez os nossos agradecimentos para o Maurício Leal, responsável por organizar os JUG’s e que nos convidou para participar do evento.

Nesse exato momento estou em um avião voltando para Belém, escrevendo esse post e com um sentimento que todo o barulho feito nas comunidades nesse fim de ano vai surtir um efeito muito bom e que nos próximos anos teremos uma comunidade muito mais participativa, engajada e fazendo uma festa bonita nos eventos que virão, espero que esse cenário em nossa região mude, pois esse ano foi a prova que só depende de um esforço em conjunto para que as coisas aconteçam.

Vou fechar esse post com a lista das comunidades da nossa região, as que eu não colocar aqui comentem para aumentar a nossa lista e integrarmos cada vez mais a nossa comunidade de tecnologia:

=> Beljug (beljug@yahoogrupos.com.br) - Comunidade Java de Belém

=> Tá Safo (safos@yahoogrupos.com.br) - Comunidade de Software Livre e Desenvolvimento Ágil

=> Dojo-pa (dojo-pa@googlegroups.com) - Comunidade de praticantes de Dojo do Pará

=> Guru-pa (guru-pa@googlegroups.com) - Comunidade de Ruby do Pará

=> linuxpaidegua (linuxpaidegua@yahoogrupos.com.br) - Comunidade Linux da região

=> Ubuntu-pa (ubuntu-pa@listas.ubuntubrasil.org) - Comunidade de usuários do Ubuntu do Pará

=> phppaidegua (phppaidegua@yahoogroups.com) - Comunidade PHP da região

=> Scrum-pa (scrum-pa@googlegroups.com) - Comunidade Scrum do Pará

=> Computacao_pa (computacao_pa@googlegroups.com) - Comunidade de Computação do Pará

=> XPnorte (xpnorte@yahoogrupos.com.br) - Comunidade eXtreme Programming do Norte

=> MS-bel (ms-bel@yahoogrupos.com.br) - Comunidade Microsoft de Belém

Obrigado e parabéns mais uma vez a todos que fizeram o Maré de Agilidade e o Beljungle/Sun Tech Days Belém um sucesso!!!!

Abraço.