Alguns pontos sobre estimativas

vidente-recorte

Falar sobre estimativas sempre gera polêmica. Já há algum tempo uma hashtag no twitter vem causado burburinho. #noEstimates vai além do não uso de estimativas, mas sim de se trabalhar com uma deadline com qualidade. Dizer que não é possível estimar software pode parecer radical demais. O fato é que uma hora ou outra precisaremos estimar. Mas devemos ter plena consciência de que estimativas são chutes e algumas vezes, grosseiros. Então existe sim, uma deficiência no uso de estimativas em software.

Mais uma vez, tenho que pôr a culpa no scrum que nos fornece os benditos Story Points (veio do XP, mas o Scrum popularizou), uma unidade de medida obscura e que muitos não entendem direito pra que serve.

Chegou o momento de começarmos a nos questionar sobre isso. Medir velocidade não faz sentido.

Continuar lendo

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.

Continuar lendo

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