Estou muito satisfeito em meu novo projeto de freelancer. Trata-se de um sistema de Envio de SMS direcionado para pequenas empresas do comércio e relacionamento com o cliente. O sistema está com o background totalmente pronto, assim como API para integração com software de terceiros. Estou trabalhando apenas na interface e em algumas novas funcionalidades.

Estamos utilizando o Balsamiq Mockups para colaborar nas decisões da interface. Prototipamos várias telas do projeto e tivemos várias ideias interessantes. Falando em nós, estou falando do meu cliente Edson Lima que está sendo o POD (Product Owner and Developer) deste projeto.

As estórias foram aceitas e a iteração desta semana e começou com poucos ajustes técnicos.

Prototipando telas

Criar um protótipo das telas com o cliente torna-se muito interessante pois é possível visualizar a necessidade final do sistema antes mesmo dele existir.

Conversando e escolhendo cada detalhe da interface trouxe um resultado significativo no final de nossa primeira iteração.

Estamos usando o Balsamiq Mockups para prototipar as telas e é altamente produtivo para criar protótipos e discutir as decisões de leiaute. Em alguns momentos nos pegamos ajeitando “detalhes” desnecessários e criando outras alternativas e utilização de componentes diversos.

enviarsms

Criar uma tela limpa, agradável e útil é uma tarefa extremamente difícil. Cada decisão a ser tomada pode corromper as “filosofias” da tela e trazer mais retrabalho. E este é mais um motivo forte para prototipar antes de programar.

Outro ponto importante é a evolução das telas durante a iteração. Por exemplo, nesta iteração decidimos o leiaute e alguns detalhes da interface. Observe a próxima tela. Ela é uma evolução da anterior com leiaute e no momento de busca no sistema:

busca

Este exemplo demonstra a evolução da primeira interface em relação a segunda com leiaute e a funcionalidade de busca.

Utilizando estórias

Em conjunto a tela, vêm a descrição da estória que pretende sanar qualque dúvida quanto aos eventos:

# language: pt
Funcionalidade: Enviar mensagem SMS
 Como um cliente 
 Eu quero enviar mensagens SMS
 Para usufruir dos meus créditos

 Contexto:
  Dado que estou logado no sistema
  Então devo ver "Para"
  E devo ver "Texto"

 Cenário: Enviar SMS para um contato
  Dado que digito "4699117879" no "telefone_numero"
  E que digito "Olá do sms!!!" na "mensagem"
  Quando Eu pressionar "Enviar"
  Então devo ver "Mensagem enviada com sucesso"

 Cenário: Não envia SMS sem destinatário ou mensagem
  Dado que digito "4699117879" no "telefone_numero"
  Quando Eu pressionar "Enviar"
  Então devo ver "Erro"
  E devo ver "Mensagem não pode ficar em branco"

Estes são apenas alguns exemplos da funcionalidade. Logo o UseSMS estará online e será muito parecido com o protótipo desenvolvido. Pelo menos a primeira versão. A evolução das telas e do sistema será feito durante as iterações.

Além das especificações com Cucumber, o sistema está totalmente coberto de specs o que garante a sua consistência. O Edson fez um ótimo trabalho neste projeto e está com um uma média de 2,5 linhas de teste por linha de código.

Sei que este não é um número confiável, mas trás bastante confiança e muitos exemplos fáceis de se consultar.

Métodologia

Quando vou trabalhar em qualquer funcionalidade já existente sigo os seguintes passos:

Embora pudesse usar o plugin “Integration” para automatizar este processo ainda não tenho com quem integrar então estou fazendo manual mesmo.

Pomodoro

Outra ferramenta importante para concentração no desenvolvimento têm sido o pomodoro. Tenho utilizado ele para fazer qualquer tarefa objetiva e têm muitos resultados positivos.

Muitas vezes esqueço de sua existência e me desconcentro pela web, mas tenho procurado seguir a risca com a técnica e têm sido uma experiência válida.

A técnica pomodoro consiste em trabalhar por um determinado tempo com concentração total em atingir o objetivo. Estou usando um programinha que auxilia nesta tarefa, contabilizando os pomodoros que deram certo e errado, assim como os interrompidos.

O feedback

Muito interessante trabalhar com feedback. Passei um tempo sem este feedback e é realmente desanimante. Nesta primeira iteração, consegui fazer tarefas significativas para o projeto. Isto foi possível por pensar na essência do sistema e priorizar as tarefas certas.

Estamos usando o Pivotal Tracker para controlar as estórias e o GitHub como repositório oficial. Assim tenho sempre qualquer notificação do Edson por email quando faz algum comentário ou adiciona novas informações ao projeto, ou seja: feedback automático.


Share → Twitter Facebook Linkedin


Hello there, my name is Jônatas Davi Paganini and this is my personal blog.
I'm developer advocate at Timescale and I also have a few open source projects on github.

Check my talks or connect with me via linkedin / twitter / github / instagram / facebook / strava / meetup.