terça-feira, 26 de outubro de 2010

CBSoft 2010 - Minhas Impressões

De 27 de setembro a 01 de outubro de 2010 ocorreu em Salvador o Congresso Brasileiro de Software: Teoria e Prática: CBSoft, reunindo vários eventos em um só. O local - O hotel Bahia Othon - belíssimo e muito bem estruturado. Não conhecia o espaço deles para eventos. Gostei muito. Me deixou muito orgulhoso ver a Bahia sediando um congresso desse porte. Em função do Demoiselle Framework temos tido contato com o pessoal da UFBA, especialmente o prof. Manoel Mendonça e o doutorando Glauco Carneiro. Pudemos testemunhar o empenho deles e toda a equipe em fazer um Congresso de primeira. Bem, foram várias palestras, mini-cursos, tutoriais e workshop ocorrendo simultaneamente. Farei um apanhado geral destacando algumas coisas que achei interessantes.

No primeiro dia, basicamente me dediquei a trilha da indústria. Várias palestras relacionadas a Agile, o que achei muito positivo para um evento acadêmico. Eu tinha que conferir. Por um probleminha no controle das inscrições do Serpro, coisa normal num primeiro dia de evento, só pude chegar no final da primeira palestra, dos Correios. Achei estranho o palestrante falar do uso de Agile num esquema de trabalho de fábrica, onde existem equipes específicas de Análise/Projeto, Implementação. Me pareceu um Waterfall disfaçado, mas eu posso ter perdido alguma coisa. Em seguida, Antonio Terceiro e Vicente Aguiar, da Colivre, apresentaram "Desenvolvimento aberto de software livre, usando métodos ágeis, em um ambiente corporativo. Tinha tudo para dar errado, mas não deu". Muito legal ver as dificuldades e soluções encontradas por eles para uso de Agile no desenvolvimento do Noosfero, a plataforma livre de redes sociais utilizada inclusive no FISL e no #dilmanarede. Gerenciar um único produto com vários clientes em diferentes países não é um desafio fácil, mas eles tem conseguido. Na sequencia, várias palestras ótimas sobre Agile, destaque para: Daniel Wildt falando sobre Testes; André Nascimento mostrando o Case da Stefaninni, um exemplo de sucesso do uso de métodos ágeis em uma das células de desenvolvimento; Daniel Cukier apresentando dicas para tratar os problemas culturais na adoção de Agile (muito boa, com direito até ao Melô do Teste Automatizado) e, fechando com chave de ouro, Paulo Caroli mostrando o uso avançado (pelo menos para mim) de Kanban, usando até o Workflow da Starbucks como exemplo. O ponto alto foi a Técnica da Banana, para evidenciar quando uma estória leva tempo demais para ser atendida. Sensacional.

No 2o e 3o dias teve Simpósio Brasileiro de Componentes, Arquiteturas e Reutilização de Software (SBCARS), O Simpósio Brasileiro de Engenharia de Software (SBES) e sessão Demo de Ferramentas. Bastante coisa. Como já disseram os colegas Cleverson ZyC e Marlon Carvalho, trabalhos de boa qualidade técnica e acadêmica, mas em geral faltando entusiasmo dos apresentadores em apresentar e defender suas idéias. Nas palestras do SBCARS, também generalizando, senti falta de enxergar mais aplicação prática no mundo real. Talvez seja esse mesmo o papel da academia, antecipar necessidades futuras, mas para alguém que gosta de realizar coisas de utilidade mais imediata, ficou essa impresão. É notória a importancia que o tema Linhas de Produto de Software vem ganhando na academia. Vale continuar aprendendo sobre o tema e verificando em que contextos a abordagem pode ser aplicada com sucesso (também ficou claro que não é uma "Bala de Prata" que serve para tudo). Tambem pude perceber - e reconhecer - a importância da Engenharia de Software Experimental, que envolve a aplicação do método científico, é uma abordagem fundamental usada por cientistas de todas as áreas do conhecimento para testar hipóteses e sustentar teorias. Entendi que sua aplicação dá mais validade aos experimentos feitos na nossa área. O artigo introdutório deste link, primeira referencia encontrada no Google, pode ajuda-lo a ter uma ideia melhor, se desejar se aprofundar.
Do SBES, duas apresentações que falaram de Código e Software Livre: "A Study of the Relationships between Source Code Metrics and Attractiveness in Free Software Projects", comprovando que a qualidade do código-fonte impacta na atratividade de colaboradores para um projeto open source; "An Empirical Study on the Structural Complexity Introduced by Core and Peripheral Developers in Free Software Projects", concluindo que os desenvolvedores principais de um um projeto Open Source são aqueles que mais introduzem complexidade estrutural (trocando em miúdos, são os que tem mais coragem - e permissão para isso - de mexer nas partes críticas do código). Também gostei da palestra "Is There a Relationship between the Usage of Agile Practices and the Success of SCRUM Software Projects?", vou ler o trabalho escrito, pois fiquei curioso de ver que eles concluíram que algumas práticas ágeis não tem interferencia direta no sucesso de projetos que usam Scrum, como poderíamos pressupor.
Nas demos ferramentas, gostei do Scrum-Half e da apresentação "Uma Ferramenta de Apoio à Gerência de Requisitos Integrada a um Ambiente de Desenvolvimento de Software Centrado em Processos", feita em Ruby como um plugin do Redmine, já com funcionalidades básicas para gerenciamento de Glossário e Casos de Uso. O grande problema ainda é: "Cadê o código-fonte?". Quase nunca estão disponíveis. A resposta é "estamos querendo disponibilizar" ou "me manda um e-mail" ou "ainda não pensamos sobre isso". Lamentável que trabalhos, códigos, ferramentas promissoras fiquem pelo caminho, acabando junto com a obtenção do "canudo", seja ele qual for. Percebo o quanto continua valendo meu post sobre Universidade Pública, Conhecimento Livre...

Ponto para a Profesora Rosana Braga, que na sua apresentação "Engenharia de domínio de linhas de produto com arquitetura orientada a serviços" citou que o código estava disponível no Google Code. Por acaso sentei ao lado dela no almoço de 5a-feira e elogiei a iniciativa. Ela disse orientar sempre seus alunos a disponibilizarem os produtos de seus trabalhos. Ponto para ela e, por tabela e não deve ser por acaso (a USP possui um Centro de Competencia em Sofware Livre, coordenado pelo Prof. Fabio Kon), ICM-USP. Que sirva de exemplo!

Um das melhores apresentações que assisti foi "Evolving an Assistant to Support the Inspection Process through Quantitative and Qualitative Analysis". A hipótese que a automação de uma planilha traria ganhos na execução de um determinado tipo de inspeção foi refutada no trabalho. Apesar do leve nervosismo, a apresentadora passou alegria, energia, estava feliz por ter conseguido enxergar que a abordagem tinha falhas e ainda não agregava o imaginado valor. O experimento precisa ser repetido, evoluido, as falhas na abordagem precisam ser detectadas e sanadas. Muitas vezes aprendemos mais com os erros. "Precisamos de mais trabalhos desse tipo nos congressos", foi o comentário de um dos conhecidos respeitados Doutores (infelizmente não anotei seu nome) que estava na plateia.

Na 5a e 6a pela manhã me envolvi com 2 sessões de Coding-Dojo, não previstas inicialmente no evento. Eu e Márcio Albuquerque fizemos a sugestão na 3a-feira ao prof. Manoel Mendonça, coordenador geral do evento. Imediatamente acatada, ficamos muito agradecidos pela oportunidade de apresentar este tipo de "programação coletiva" que nos permite experimentar linguagens, ferramentas e técnicas (TDD, BDD, Pair Programming, Refatoração) que certamente ajudam a nos tornar melhores profissionais. Foram duas sessões para um publico médio de 15 pessoas. A primeiras delas foi na 5a-feira, linguagem Groovy e desafio "Pedra x Papel x Tesoura". Daniel Cukier, da Locaweb, apareceu e deu a maior força. Na 6a-feira ela conduziu a sessão, usamos Ruby com RSpec/Autospec e o problema foi a distribuição do tesouro. Veja no blog do grupo Dojo-Bahia (a participação é livre, basta entrar na lista!) os registros.


No turnos que não estava no Dojo participei do "MC 08 - Linhas de Produto de Software: Conceitos, Fundamentos e Aspectos Práticos", com o baiano Eduardo Almeida, dentre outras muitas coias atual lider do Reuse in Software Engineering (RiSE).. Além de aprender um pouco mais sobre o tema (uma sugestão para o próximo seria tentar algo menos expositivo, envolvendo alguma dinâmica), pude sentir orgulho de ver um baiano com a devida projeção e reconhecimento. Inteligencia, nós temos. Iniciativa, nem tanto...

Já concluindo, algumas impressões registradas em twitter.com/serge_rehem:

#cbsoft Impressão 1: Todo mundo quer criar SUA ferramenta. Não vejo esforços de se juntar a projetos OpenSource + avançados, q fazem o mesmo
#cbsoft Impressão 2: Poucos códigos-fonte produzidos na Academia são disponibilizados em licença sw livre. "Me manda email q te passo" #fail
#cbsoft Impressão 3: Muitos trabalhos preocupam-se mais em provar/refutar hipóteses. Utilidade prática no mundo real parece menos importante web
#cbsoft Impressão 4: Muitos trabalhos focados em Modelos, Diagramas, Documentos. Queria ver + sobre #codigo, único artefato q #roda de fato
#cbsoft Impressão 4: Fazendo justiça, hj de manhã 2 apresentações legais q falaram de #codigo. Ambas relacionadas a sw livre. Coincidencia?!
#cbsoft Impressão 5: As metodologias ágeis ganhando +notoriedade na academia. Esperamos ver +trabalhos científicos no tema #pontoPositivo
#cbsoft Impressão 6: "Linha de Produto de Software" parece ser a nova moda da Engenharia de SW na academia
#cbsoft Impressão 7: Apesar da qualidade academica dos trabalhos, faltou #entusiasmo em algumas apresentações
#cbsoft Uma dúvida no ar: #CloudComputing "ainda não despertou" ou "já não mais desperta" o interesse da academia? Senti falta do tema...

Não pude assistir Identifying Code Smells with Multiple Concern Views do amigo Glauco Carneiro da UFBA, mas fiquei muito feliz em saber que foi premiado o melhor artigo do evento! O Demoiselle tem sido usado como "cobaia" e estamos muito animados com o andamento dos trabalhos.

Bem, finalizo dizendo que foi muito proveitoso participar do CBSoft 2010, em vários aspectos. Parabéns a todos que organizaram e apresentaram trabalhos! Estou com o CD com os trabalhos escritos, agora é dar uma geral e aprofundar alguns estudos. Agradeço ao Serpro por me dar essa oportunidade. Oficialmente fora da Academia desde 2005, quando conclui um MBA em Adm na Unifacs, participar do evento me fez ter vontade de voltar de retornar, quem sabe um mestrado. Tentando focar nos temas de meu interesse: Software Livre, Agile, Frameworks, Linguagens de Programação, etc, etc. Na minha época de estudante eu não dei o devido valor a esses eventos. Graças ao JavaBahia, que me abriu inumeráveis oportunidades e experiencias, pude descobrir o quanto são importantes os conhecimentos, o networking, o "abrir a cabeça" para novos temas, o "estar antenado", o desenvolver visão crítica (sem ser ranzinza), o querer sempre aprender e compartilhar conhecimentos. Nosso estado, nosso país, nosso planeta, precisam de gente desse tipo. Da minha maneira, estou procurando fazer minha parte. E sua empresa? E você?