TáSafoDev 1.15

No dia 11 de abril foi realizada no HUB 728 Coworking a primeira edição do TáSafoDev nomeado com 1.15, a primeira edição de 2015. Um sábado de muito aprendizado, interação e muito código!

O TáSafoDev é um evento voltado para programadores, curiosos por desenvolvimento de software e principalmente pra quem quer aprender como funciona o dia de desenvolvimento ágil.

IMG_20150411_102030O dia começa com a configuração dos ambientes e um overview das técnicas, linguagens e de como iria funcionar o dia. Nessa primeira edição foi escolhida a aplicação Bizusafo para todos trabalharem.

O projeto do Bizusafo está no repositório do Github do Tá Safo e lá estão várias issues cadastradas pelos membros da própria comunidade. Antes de iniciar os ciclos de desenvolvimento foi realizada uma reunião de planejamento, atualizando o Backlog (lista de issues cadastradas) e priorizando as issues consideradas mais importantes, com o maior ROI (Return of Investment). Após a lista atualizada e priorizada todos discutiram a respeito de cada uma delas para entender melhor o que seria feito.

A partir do planejamento realizado foi feita a divisão dos Times sendo um de Android e outro de Ruby e Rails, e em seguida as primeiras duplas foram formadas. Todo o fluxo de desenvolvimento foi seguindo o Git Flow, então após cada incremento de software finalizado era realizado um pull request e esse era revisado pelos outros membros do Time em uma sessão de code review.

A dinâmica era em duplas para exercitar o Pair Programming, usando TDD (Test Driven Development) e sempre em ciclos de 25 minutos seguidos de uma pausa de 5 minutos (Pomodoro). A pausa de 5 minutos era uma reunião de alinhamento entre os membros dos times antes de iniciar mais um ciclo de desenvolvimento. Esse ciclo se repetia várias vezes e após cada pausa as duplas trocavam para todos interagirem e programarem juntos.

Assim que todos receberam as instruções, ambientes configurados, planejamento feito, Times montados e todos a postos, o relógio começou a contar o tempo, e todos vivenciaram na prática todas essas técnicas sendo usadas em um dia de desenvolvimento ágil.

Foram exercitadas várias técnicas e boas práticas do desenvolvimento de software e ainda foi entregue valor com a evolução do Bizusafo, onde foram feitas algumas correções, novas funcionalidades e tudo foi para produção no mesmo dia, um sabadão bem produtivo!

Toda essa dinâmica proporcionou um aprendizado tremendo para todos os presentes que ao final relataram vários pontos positivos e negativos na retrospectiva do evento para fechar com chave de ouro.

Você deve está imaginando nesse exato momento como foi esse dia frenético de aprendizado e muito código, então pare de imaginar e veja o vídeo que mostra um resumão do que foi a primeira edição do TáSafoDev.

Fique atento que o próximo deve ser anunciado em breve, se perdeu o último você não vai querer ficar de fora no próximo!

Caso Cinbesa – Implantação de Ágil em Empresas Públicas

Oi pessoal,

Eu sou Domingos Santos. Trabalho na Cinbesa, desenvolvendo e gerenciando projetos de software desde 2001. A Cinbesa é a empresa de TI da prefeitura de Belém. Pequena, menor até que muitos setores de TI de outros órgãos do governo federal ou estadual.

Por sermos pequenos precisamos a todo momento provar para a administração municipal que somos capazes porque a prefeitura carece de soluções robustas. Por isso, começamos a praticar desenvolvimento ágil em 2012 como maneira de responder os anseios do nosso cliente principal e gostaria de compartilhar com vocês a nossa experiência.

Tudo começou com um curso de Scrum Master que Alexandre Magno veio ministrar em Belém em meados de 2009. Participamos do curso mas não conseguimos colocar em prática. Porém, a semente foi plantada.

Continuar lendo

Programação orientada a objetos: Herança e polimorfismo – Parte 1

Quando cursei a disciplina de orientação a objetos na universidade já havia estudado alguma coisa em livros de C++ e Java. Tanto os livros quanto o professor da disciplina escolheram a abordagem clássica de ensino de programação orientada a objetos: a do reino animal. Esta abordagem é limitada, do meu ponto de vista, pelo fato de que não confronta o aluno com os problemas do mundo real, os quais este paradigma se predispõe a resolver. Ao aprender POO desta forma, o aluno não aprende a discernir as fronteiras de um sistema e não entende o propósito real de conceitos como a abstração e o encapsulamento. Existe o argumento de que a intenção é ser didático, e que para o iniciante é muito mais fácil aprender utilizando esta analogia. Porém, acredito que este argumento não seja válido uma vez que a disciplina de programação é pré-requisito para se aprender POO, e um aluno com este conhecimento tem capacidade de abstração suficiente para pensar em problemas na forma de entidades lógicas (variáveis, estruturas de dados e etc), sem precisar de exemplos lúdicos para entender os conceitos do paradigma.

Continuar lendo

Expressão Lambda no Java 8

Em março de 2014 a Oracle Corporation lançou, de maneira oficial, o Java 8. Uma das principais novidades da nova versão foi, sem dúvida nenhuma, o suporte a expressão lambda, característica marcante nas linguagens de programação dinâmicas como Java Script, Groovy, Ruby, etc.

A expressão lambda é natural da programação funcional, porém outras linguagens de programação, de  paradigma não funcional, introduziram o recurso para possibilitar um código mais conciso, compacto e fácil de entender.

Continuar lendo

10 erros que todo desenvolvedor Android deve evitar

Fala pessoal! Nesse post irei explicar alguns dos erros mais comuns cometidos por nós desenvolvedores Android, baseado em leituras e minha experiência em desenvolvimento com a plataforma. Em cada trecho, explico o erro e como devemos fazer para evitá-los.

#1: Utilizar experiencias de outras plataformas

Antes, era muito comum ver uma app Android imitando as experiencias de outras plataformas. Geralmente, por causa de um porting da mesma app existente em iOS ou Windows Phone; ou por exigência do cliente ou por utilizar algum framework cross-platform. Usuários Android querem e esperam experiencias da plataforma Android. Algo como adicionar um botão de voltar em sua app (existe um botão físico próprio para isso, sabia?), utilizar abas estáticas abaixo ou adaptar ícones retangulares com cantos arredondados (a menos que faça parte da sua logo) são apenas alguns exemplos de experiencias que se encaixam muito bem em outras plataformas, porém devem ser evitadas em Android. Aliás, há algum tempo, a Google desenvolveu guidelines que sugerem excelentes dicas e orientam como deve ser o desenvolvimento, design e distribuição de um aplicativo Android.

#2: Não investir em design / UX

Está comprovado que a maioria das pessoas, ao comprar um produto, levam em consideração vários fatores, dentre eles primeiramente está seu design, quer seja retrô ou futurista. Mas por quê isso? Por que chama atenção. É bonito de se ver. E assim deve ser a sua app. Os usuários devem ter prazer de utilizá-la. Como dizia o finado Steve Jobs, um bom produto é aquele que não precisa de manual para se utilizar. Ele deve ser tão intuitivo e minimalista para que as pessoas tenham facilidade de usá-lo. Então, invista em um bom design, desde o ícone da sua app, as imagens principais, secundárias, etc. Se você não tem expertise de design, então contrate um. Mesmo assim caso não conheça, existem sites como 99Designs, onde você informa sua ideia e vários designers projetam logos para o seu produto e você escolhe a que achar melhor!

Continuar lendo