Programacão Funcional, Internet das Coisas e Retrospectivas no Café Ágil
Aconteceu nesse sábado dia 6 de dezembro o Café Ágil, evento realizado pela Thoughtworks, uma empresa multinacional , conhecida pela atuação em desenvolvimento de software e em consultoria sobre metodologias ágeis. Eu tive o privilégio de participar e gostaria de comentar sobre os pontos que achei mais bacanas!
Além da oportunidade de aprender mais sobre a empresa e de conhecer outros profissionais de Florianópolis com interesses semelhantes, pude acompanhar as três palestras de cunho técnico do evento.
Erick Pintor, em sua palestra sobre Programação Funcional, explicou os principais conceitos e vantagens desse paradigma de programação:
- Imutabilidade: os valores dos dados são constantes, aumentando a consistência das APIs. Para alterar um valor, é necessário criar uma cópia do mesmo, semelhante às variáveis final do Java.
- Tipo opcional (optional type ou maybe type): é um tipo que representa a encapsulação de um valor opcional. Deixa claro no protótipo da função que ela pode retornar um valor ou não, reduzindo exceções causadas por retornos nulos (NullPointerException).
- Funções como membros de primeira classe: funções também são valores, podendo ser utilizadas como variáveis ou argumentos para outras funções, permitindo escrever funções simples e utilizar a recursividade ao invés de estruturas de repetição.
Tais conceitos podem ser aplicados em linguagens não funcionais, dependendo das necessidades de cada projeto.
As principais vantagens do paradigma funcional são a agilidade no desenvolvimento, com códigos mais simples e de mais fácil manutenibilidade, e a maior consistência dos dados, facilitando e favorecendo o desenvolvimento de aplicações multi thread, aumentando com isso o aproveitamento do hardware (hoje a maior parte dos computadores trabalha com mais de um núcleo de processamento).
Na segunda palestra, Desiree Santos falou sobre Internet das Coisas(Internet of Things) e nos apresentou alguns projetos e iniciativas utilizando Arduino, além de demonstrar a facilidade de desenvolvimento, em C ou mesmo Javascript (utilizando a biblioteca Johnny-Five). Desenvolver para Arduino não requer conhecimento avançado em eletrônica nem tampouco conhecimento em linguagens de programação de baixo nível, facilitando o acesso à essa tecnologia, hoje já bastante utilizada em instituições de ensino superior, em cursos de diversas áreas. Outra coisa que me surpreendeu foi o custo da placa, muito menor do que eu imaginava (no Brasil, sai por volta de R$ 40,00, pelo que ela comentou).
Na terceira palestra, José Alberto Zimermann promoveu uma conversa reflexiva sobre as reuniões de Retrospectivas, ferramenta que tem como principal objetivo a melhoria contínua, uma das bases do Ágil, e algumas dicas sobre como se comportar para ser um melhor facilitador desta cerimônia tão importante e por vezes mal executada:
- Seja transparente: garanta que todos os participantes entendem o objetivo e a dinâmica que será adotada na Retrospectiva.
- Foque no objetivo: levantar pontos de melhoria e buscar em conjunto soluções para os problemas levantados.
- Ouça o time: novamente, o objetivo é buscar soluções em conjunto. A Retrospectiva jamais deve ser utilizada para implantar decisões top-down.
- Aja: o facilitador deve instigar o time a agir sobre os problemas levantados.
- Seja um agregador: busque trazer harmonia e colaboração à reunião.
Para quem já entende bem os objetivos da Retrospectiva, mas gostaria de tentar outros formatos, ele recomendou o site Fun Retrospectives.
Finalmente, gostaria de agradecer pelo convite e parabenizar a Thoughtworks pelo evento. Compartilhar conhecimento é um pilar que a Thoughtworks e a Taller partilham e vamos continuar trabalhando para a disseminação da cultura ágil e para o crescimento da comunidade!