La raison pour laquelle vous trouvez cela si difficile est que vous avez une idée, mais vous n'avez pas vraiment une idée complète de ce que vous voulez qu'elle fasse. Si vous faites votre propre projet et que vous n'avez pas de client pour vous dire ce qu'il veut, alors c'est à vous d'être votre propre client. Mettez-vous à la place du client et commencez à créer une liste de souhaits impossible.
En d'autres termes, lorsque vous commencez Ne concevez rien !!! .
Une fois que vous avez une grande liste de choses que vous voulez que le système fasse, hiérarchisez tout et décidez quelles seront les fonctionnalités minimales pour faire fonctionner un système de base. Cela peut être une seule fonction de base, ou un écran entier, mais cela doit être quelque chose que vous ressentez - car le client sera suffisamment utile pour tester.
Donc, liste de souhaits de fonctionnalités + priorités de base = exigences .
Une fois que vous avez tout cela, faites une conception de très haut niveau. Asseyez-vous et réfléchissez à ce dont votre système aura besoin pour que les premières priorités soient opérationnelles. Changez d'avis si vous le souhaitez, mais c'est ici que vous souhaiterez peut-être ajouter du code ou une configuration système pour en savoir plus sur ce qui est possible. Allez assez loin pour valider votre idée de base d'un design.
C'est-à-dire: MAINTENANT, vous pouvez satisfaire les envies de vos concepteurs .
Une fois cela fait, vous commencez à implémenter vos fonctionnalités. Créez pour chaque fonctionnalité une spécification fonctionnelle de base. Cela pourrait être aussi simple qu'une collection d'instructions de fonctionnalités. Cartes d'histoire si vous le souhaitez. Cela vous permet de développer un peu votre idée dans votre esprit et de créer un ensemble d'instructions qui deviendront la spécification sur laquelle vous testerez et construirez votre implémentation.
Pleure Havoc, laisse glisser les chiens de ... Code !!
De là, implémentez vos tests pour correspondre à vos spécifications, puis pour chaque test, écrivez votre code. Construisez, "relâchez", puis répétez avec la fonctionnalité suivante jusqu'à ce que vous décidiez que le projet est suffisamment complet.
Cela se résume vraiment à l'expérience, mais cette approche que j'ai trouvée est une formule simple pour vous aider à vous concentrer sur ce qui doit être fait, plutôt que de vous enfermer dans un cycle sans fin de procrastination en raison d'essayer de faire trop de choses du tout une fois que.