Il y a quelque temps, j'ai écrit un très petit script python qui vérifiait périodiquement un flux xml pour de nouvelles entrées et alertait l'utilisateur de nouvelles entrées lorsqu'elles étaient présentes. J'ai écrit cela pour moi-même, il s'agissait donc essentiellement d'un programme basé sur une console que n'importe qui à l'aise avec une interface de console aurait pu utiliser.
Après un certain temps, j'ai décidé que cela pourrait être plus utile à d'autres personnes et j'ai commencé à le ranger, à désinfecter les entrées, à supprimer les bugs. Il m'est venu à l'esprit que parce que j'avais écrit le script, je savais comment l'utiliser de manière efficace, précise, etc. D'autres pourraient ne pas, alors j'ai commencé à ajouter une interface graphique. Cela a commencé comme un menu simple, puis s'est étendu à une interface graphique plus complète avec à la fois une interface et un menu d'options. J'ai ensuite ajouté les préférences utilisateur stockées et également le stockage des flux xml précédemment recherchés pour accélérer les recherches répétées.
J'ai ajouté la journalisation pour aider à déboguer l'application en cas de problème, j'ai mis l'application à la dernière base de code python stable disponible pour la plate-forme que j'ai choisie et amélioré les fonctionnalités de dialogue.
J'ai corrigé un bug et commenté clairement mon code, et pourtant j'ai encore des choses à faire pour améliorer l'application avant de la mettre à la disposition des testeurs alpha. C'est loin de mon script original de 20-30 lignes. Ce que je prévoyais me prendrait juste une heure ou deux pour passer de la validation de principe à un programme d'utilisation acceptable a pris 10 à 20 fois cela. (Je suis toujours un noob, et les trucs me prennent beaucoup de temps, mais quand même ....)
Comment savez-vous quand arrêter d'ajouter / peaufiner / réparer des trucs et laisser votre bébé ramper à l'air libre?
la source
3. I allocate work time to myself. The release date is the end of that time.
@Pierre 303, Quand vous avez dittime
que vous vouliez dire par heures, c'est-à-dire les constructions nocturnes? ou du temps comme un sprint complet?Faire un SRS puis coder selon les exigences. Lorsque vous avez atteint tous les objectifs mentionnés dans le SRS, il est temps d'arrêter et de tester votre produit.
la source
À court terme, lorsque vous avez quelque chose qui fonctionne de manière fiable et qui ne tombe pas en panne. Même s'il ne fait pas tout ce qu'il pourrait faire si vous y travailliez indéfiniment. L'expédition comme le dit le proverbe est une caractéristique . La fiabilité et un ensemble de fonctionnalités restreintes vous permettent de tester les fonctionnalités de base par de vraies personnes dans le monde réel, qui trouveront des choses auxquelles vous n'avez jamais pensé qui briseraient votre code d'une manière qui ne vous viendrait jamais à l'esprit. Moins vous disposez de fonctionnalités, à ce stade, plus il sera facile de résoudre ces premiers problèmes. Comme la fonctionnalité de base fonctionne de manière plus fiable, vous pouvez commencer à implémenter les autres éléments "agréables à avoir" en sachant que votre code le plus important et central fonctionne toujours bien.
À long terme: lorsque vous aurez terminé et documenté le système de plug-in qui permettra à vos utilisateurs (et bien sûr à vous) de mettre en œuvre rapidement et facilement de nouvelles fonctionnalités si vous en avez besoin. Cela devrait être la dernière fonctionnalité que vous devez ajouter, après quoi ce sont tous des plug-ins.
la source
Lorsque vous êtes sûr de la stabilité de votre logiciel, optez pour une version bien qu'il puisse y avoir des fonctionnalités en attente. La stabilité est plus importante que les fonctionnalités. Obtenez les commentaires, intégrez-les aux fonctionnalités existantes et décidez de ce qui doit être livré ensuite et quand!
la source
Vous pouvez toujours nourrir un projet pour toujours.
Une très bonne règle est que vous ne devez jamais ajouter des éléments qui ne sont pas dans un cas d'utilisation approuvé. Cela garantit que vous ne vous retrouverez pas avec beaucoup de choses qui seraient bien d'avoir, mais que personne n'utilise. Approuver garantit que d'autres que vous conviennent que cela est nécessaire dans votre projet.
la source
Cela dépend de la raison pour laquelle vous ajoutez des fonctionnalités. Les maîtres d'ouvrage le demandent-ils? utilisateurs? QA? Programmeurs?
Concentrez-vous sur l'objectif du programme et concentrez-vous sur son objectif. Les demandes de fonctionnalités qui étendent son objectif doivent être soigneusement examinées avant de devenir un couteau suisse.
la source
Je n'arrête plus d'ajouter des fonctionnalités. J'essaie simplement de faire sortir l'application dès que possible et d'écrire des fichiers txt si besoin. Ensuite, je peux décider quand arrêter et quand travailler sur quelque chose de différent
Cela aide aussi que j'aime faire le minimum possible pour faire quelque chose (sans avoir recours au piratage).
la source
Je vous suggère de le classer dans le temps. Donnez-vous une semaine de parole. Créez une liste de travaux à terminer au cours de cette semaine et assurez-vous que si vous avez une fonctionnalité que vous ne pouvez pas terminer, vous pouvez la retirer.
À la fin de la semaine, relâchez-le. Relâchez tôt, relâchez souvent.
la source
Lorsque vous avez quelque chose de fiable et d'utile, libérez-le. Vous n'avez pas à arrêter d'ajouter des fonctionnalités, mais si quelqu'un utilise ce que vous avez là-bas, vous aurez une bien meilleure idée des fonctionnalités recherchées. Actuellement, vous devinez.
la source