Há algum tempo, escrevi um script python muito pequeno que verificava periodicamente um feed xml em busca de novas entradas e alertava o usuário sobre novas entradas quando presentes. Eu escrevi isso para mim mesmo, por isso era essencialmente um programa baseado em console que qualquer pessoa confortável com uma interface de console poderia ter usado.
Depois de um tempo, decidi que poderia ser mais útil para outras pessoas e comecei a arrumar, higienizar insumos e remover bugs. Ocorreu-me que, por ter escrito o script, sabia como usá-lo com eficiência, precisão etc. Outros podem não, então comecei a adicionar uma GUI. Isso começou como um menu simples e depois expandiu-se para uma GUI mais completa, com um menu de interface e opções. Em seguida, adicionei preferências de usuário armazenadas e também armazenamento para feeds XML pesquisados anteriormente para acelerar pesquisas repetidas.
Eu adicionei o log para ajudar a depurar o aplicativo, caso algo dê errado, levei o aplicativo até a mais recente base de código python estável disponível para a minha plataforma escolhida e aprimorei os recursos de diálogo.
Corrigi o bug e comentei meu código com clareza, e ainda tenho coisas que acho que podem ser feitas para melhorar o aplicativo antes de disponibilizá-lo aos testadores alfa. É muito distante do meu script original de 20 a 30 linhas. O que eu previa que levaria apenas uma ou duas horas para passar da prova de conceito para um programa de uso aceitável levou de 10 a 20 vezes isso. (Eu ainda sou um noob, e as coisas me levam muito tempo, mas ainda ....)
Como você sabe quando parar de adicionar / ajustar / consertar coisas e deixar seu bebê rastejar ao ar livre?