A razão pela qual você está achando isso tão difícil é que tem uma ideia, mas na verdade não tem uma ideia completa do que deseja que ela faça. Se você estiver executando seu próprio projeto e não tiver um cliente para lhe dizer o que eles querem, é sua responsabilidade ser seu próprio cliente. Coloque-se no lugar do cliente e comece a criar uma lista de desejos impossível.
Em outras palavras, quando você começa, não cria nada !!! .
Depois de ter uma grande lista de coisas que você deseja que o sistema faça, priorize tudo e decida qual será a funcionalidade mínima para ter um sistema básico em execução. Pode ser uma função básica única ou uma tela inteira, mas precisa ser algo que você sinta - como o cliente - será útil o suficiente para testar.
Então, lista de desejos de recursos + prioridades básicas = Requisitos .
Depois de ter tudo isso, faça um design de nível muito alto. Apenas sente-se e pense sobre o que seu sistema precisará para colocar as primeiras prioridades em funcionamento. Mude de idéia, se desejar, mas é aqui que você pode adicionar algum código ou uma configuração do sistema para saber mais sobre o que é possível. Vá apenas o suficiente para validar sua ideia básica de design.
Ou seja: AGORA você pode satisfazer os desejos de seus designers .
Uma vez feito, você começa a implementar seus recursos. Crie para cada recurso uma especificação funcional básica. Isso pode ser tão simples quanto uma coleção de instruções de recursos. Cartas de história, se quiser. Isso permite que você desenvolva um pouco sua ideia e crie um conjunto de instruções que se tornará a especificação na qual você testará e desenvolverá sua implementação.
Cry Havoc, vamos escorregar os cachorros de ... Code !!
A partir daí, implemente seus testes para corresponder às suas especificações e, para cada teste, escreva seu código. Crie, "libere" e repita com o próximo recurso até decidir que o projeto está completo o suficiente.
Na verdade, tudo se resume à experiência, mas essa abordagem que encontrei é uma fórmula simples para ajudá-lo a focar sua mente no que precisa ser feito, em vez de ficar preso a um ciclo interminável de procrastinação devido à tentativa de fazer muito de tudo. uma vez.