O problema que decidi resolver é um que eu tenho onde trabalho atualmente: não existe uma ferramente específica para controlar follow-up das minhas atividades, como por exemplo, solicitei uma imagem de uma mensagem de erro que apareceu para o cliente e estou aguardando o retorno. Onde verifico rapidamente isto? E sem saber o número da atividade, somente pelo nome do cliente? Não existia e atualmente uso um txt que é simples e rápido, porém trabalhoso.
Idealizei um aplicativo simples porém eficaz (pelo menos era isto que eu pensava), onde eu digitaria o número da atividade, o cliente e o follow-up. E para finalizar, um meio de consultar os follow-up de uma atividade específica. O nome escolhido foi Organizr (pronuncia-se Organizer)
O MVP e a triste conclusão
Para não perder muito tempo, decidi fazer um MVP num domingo e rodá-lo na segundo-feira. Então incluí apenas o essencial, tanto que não havia nem recurso para alterar um follow-up, apenas incluir.
Após concluído (fiz até um icone bonito por capricho), estava ansioso para testar o aplicativo "em produção", já que iria resolver um dos meus problemas, e foi no primeiro dia que tive uma conclusão inesperada: não era produtivo ficar pegando o celular, desbloquear e acessar o aplicativo toda vez que era preciso consultar um follow-up. E foi incrível, não durou 3 horas.
Minha próxima tentativa em relação a isto é fazer um aplicativo desktop focado na simplicidade também, pois (em teoria) imagino que já que estarei olhando para a tela, com o mouse e teclado na mão, não perderei produtividade ao consultar um follow-up, vamos ver.
Faça o mínimo e teste sua idéia
Não perca muito tempo com funcionalidades extras, faça apenas o coração de sua idéia. Logo em seguida, teste-a no mundo real, não adianta testar enquanto você desenvolve, você precisa desligar a chave de desenvolvedor e ligar a chave de usuário final.
Mesmo sendo um aplicativo de uso pessoal, eu o testei no meu dia-a-dia do trabalho, assim pude coletar muitas coisas que poderiam ser implementadas, corrigidas e melhoradas.
Testes de unidade é seu melhor amigo
Neste projeto não fiz qualquer teste de unidade, e logo senti a falta nas primeiras execuções do aplicativo no domingo mesmo: vários NullPointerException, códigos compiláveis mas com lógica errada e assim vai.
Desenhe cada detalhe primeiro
Quando comecei o desenvolvimento, tinha o aplicativo completamente desenhado, na minha cabeça. Mas na hora em que estava estruturando os layouts, percebi falhas em que eu iria perder informação útil. Então resolvi sentar e desenhar os layouts com papel e caneta, e acredite, redesenhei 3 vezes a tela principal.
Desenhando suas telas antes, você consegue definir não só um layout consistente e bom (até para o começo), mas também o fluxo do aplicativo, e isso ajuda muito quando estiver programando.
Como estou com mais algumas idéias para resolver problemas pessoais e algumas para publicar na Google Play, com certeza irei aplicar o que foi aprendido com este último projeto. Se possível, irei disponibilizar o código fonte dos projetos futuramente e comentar sobre o desenvolvimento.