Je suis sur le point de démarrer un nouveau projet (un jeu, mais c'est sans importance). L'idée de base est dans ma tête mais pas tous les détails.
Je ne veux pas commencer à programmer sans planifier, mais je combat sérieusement mon envie de le faire. Je veux un peu de planification avant d'empêcher la refactorisation de l'application entière juste parce qu'une nouvelle fonctionnalité à laquelle je pourrais penser l'exige. D'un autre côté, je ne veux pas planifier plusieurs mois (temps libre) et commencer ça parce que j'ai peur de perdre ma motivation pendant ce temps.
Ce que je recherche, c'est un moyen de combiner les deux sans que l'un ne domine l'autre. Dois-je réaliser le projet à la manière de la mêlée? Dois-je créer des user stories puis les réaliser? Dois-je travailler avec des fonctionnalités? (J'ai une certaine expérience de la mêlée et de la méthode classique de "spécification à coder".)
Mise à jour : que diriez-vous de commencer avec un "mannequin de clic" et d'implémenter la fonctionnalité plus tard?
la source
Planifiez le produit viable minimum et mettez -le en œuvre. Écoutez ensuite vos utilisateurs, planifiez la prochaine amélioration logique et implémentez-la. Répéter.
la source
Peu importe le temps que vous passez à planifier et à concevoir votre programme, vous finissez toujours par en réécrire certaines parties. C'est comme la gravité, pas intelligent de nier son existence.
Il faut comprendre que le refactoring est une partie normale du développement et c'est juste une question de décider quand vous le faites. Attendez trop longtemps et vous vous retrouvez avec d'énormes quantités de spaghettis, suppliant pour une réécriture complète. Pas drôle.
Ma suggestion est de planifier un peu mais de commencer à coder dès que possible et de refactor, refactor, refactor pour garder le code en forme. Le principe DRY (ne vous répétez pas) en est un excellent indicateur.
la source
Quand je suis dans cette position, j'utilise parfois TDD (développement piloté par les tests) et commence à planifier certains tests pour la partie la plus complexe du système que je développe. Alternativement, je peux rassembler un pseudo-code de haut niveau, là encore pour les zones les plus complexes. Je trouve que ce processus me donne un plan d'action lâche et m'aide à identifier les domaines susceptibles de prendre le plus de temps.
Pour moi, cette approche fonctionne parce qu'elle se situe quelque part entre le codage et la planification. Une fois que vous avez vos idées de test et / ou votre pseudo-code, vous pouvez parcourir chaque section logique et implémenter le code. J'aborde souvent d'abord la partie la plus difficile d'une solution proposée, car généralement la partie la plus difficile est la caractéristique principale de l'application et vous pouvez toujours retarder les cloches et les sifflets.
Puisque vous commentez que la plupart du code est dans votre tête et que vous êtes prêt à plonger et à programmer, l'utilisation de cette approche peut vous aider à vous concentrer sur chaque section sans que votre esprit ne soit assombri par le système dans son ensemble.
Pour résumer plus succinctement, on pourrait dire "aborder d'abord la partie la plus difficile, diviser pour mieux régner, avec un pseudo code et / ou des plans TDD"!
la source
Essayez simplement de rendre le code modulaire. Tout ce que vous prévoyez est susceptible d'être rejeté lors de la prochaine itération.
la source
Je recommanderais au moins d'écrire vos idées. Selon la taille du projet, une grande partie de la planification formelle peut ne pas être nécessaire. Si toutefois il est très important, vous voudrez peut-être vous éviter des maux de tête et passer quelques jours à faire une planification plus approfondie.
la source