Supposons que vous deviez développer un logiciel de taille moyenne, entièrement par vous-même. Comme si c'était un projet personnel que vous souhaitez réaliser.
Quelles méthodologies / outils utiliseriez-vous pour définir ce qui doit être développé, appris et avoir une idée globale de ce qu'est également le système dans ses détails?
Fondamentalement, pour vous maintenir sur la bonne voie et ne pas vous perdre en chemin.
tools
methodology
Cassio
la source
la source
Réponses:
Habituellement, j'utilise simplement Mercurial, si je veux une fonctionnalité, je l'ajoute simplement et si je n'en veux plus, je la supprime simplement. De plus, j'essaie de bien écrire mes commentaires de commit pour ne pas me perdre.
la source
Il peut facilement se développer hors de la portée de votre attention. Pas la durée , la largeur .
Il est difficile de considérer trop d'éléments à la fois .
Et puis ... ça devient une montagne russe de régression .
Tout ce que vous faites rompt les choses précédentes, et revenir en arrière n'aide pas.
Pour éviter cela, vous devez tester agressivement la régression .
Automatiquement. (Vous ne pouvez pas faire ça autrement et rester sain d'esprit)
Les tests ajouteront une tension difficile à vos énergies.
Si le projet est entièrement sur l'interface utilisateur ... vous êtes probablement toast:
Autres issues:
(Cela n'existe pas en tant que condition, c'est une mauvaise étiquette populaire que les gens attachent à leur manque de discipline )
Si vous êtes habitué et aimez une sorte de contrôle de version , utilisez-le.
Commencer à en apprendre un maintenant vous distraira .
La représentation graphique de vos idées, comme déjà souligné, peut vous aider.
Je l' ai utilisé Freemind , CMaps , XMind , yEd , graphviz et ... autre chose.
XMind est le moins inutile:
Un crayon et un cahier obtiennent toujours de bons résultats dans mon top dix:
Je fais beaucoup de petits dessins explicatifs.
En dernier recours, vous pouvez toujours préparer des powerpoints pour votre propre consommation :)
la source
Programmation alphabétisée.
Si vous écrivez un article (ou un livre ou un rapport ou un document) sur votre projet, alors vous avez tendance à rester sur la tâche.
Commencez par un aperçu de ce que vous faites: aperçu du cas d'utilisation, version 1, version 2, version n. Notez un résumé des cas d'utilisation. Donnez-leur la priorité. Obtenez-les dans les sprints et les versions.
Chaque version a une vue de cas d'utilisation, une vue logique, une vue de traitement, une vue de composant et une vue de déploiement. Pour le sprint, détaillez les cas d'utilisation. Publiez le document HTML pour montrer ce que vous allez faire. Après avoir détaillé les cas d'utilisation du sprint, écrivez le modèle logique. Écrivez du code pour prendre en charge cela. Rédiger la documentation de traitement. Écrivez du code pour le prendre en charge. Créez des modules. Écrivez la documentation de la vue des composants. Écrivez les tests et la documentation à l'appui. Publiez les résultats du sprint en tant que document HTML.
Répétez l'opération pour chaque sprint. Vérifiez et modifiez votre document de temps en temps.
Il y a beaucoup, beaucoup d'outils de programmation alphabétisés. Ils peuvent vous aider à produire une source qui crée la documentation et le code à la fois à partir d'un seul texte.
J'utilise sphinx et PyLit mais c'est parce que je suis un programmeur Python.
la source
Si vous souhaitez noter vos idées, vous pouvez utiliser un outil de cartographie mentale tel que XMind ou FreeMind . Les deux outils sont gratuits (pour les particuliers pour XMind), et ils sont parfaits pour réfléchir et organiser vos idées. La chose au sujet de ces outils est juste que vous avez moins de chances d'oublier quelque chose.
J'ai personnellement utilisé Freemind avant de commencer mon dernier projet personnel. Je n'avais pas de méthodologie particulière en soi . Je viens de présenter mes idées lors de séances d'une heure une fois tous les deux jours. Je pense que l'espacement des sessions de brainstorming m'a aidé à mieux voir ce qui n'allait pas, ce qui n'était pas essentiel mais pourrait être utile dans les versions ultérieures, etc.
Lors de ma première validation de code, j'ai également enregistré le fichier de brainstorming dans le référentiel de code source (j'ai utilisé bitbucket ) et je l'ai mis à jour avec mes dernières idées.
la source
Traitez-le comme un vrai projet logiciel (car il en est un). Il y a peu de choses qui changent parce que le nombre de développeurs est un. Vous avez toujours besoin du contrôle des sources. Vous avez toujours besoin d'un moyen d'organiser les fonctionnalités pour ajouter des bugs à corriger. Vous avez toujours besoin d'un test automatisé pour vérifier que vous ne créez pas de régressions dans le code. Vous devez également disposer d'un moyen automatique pour compiler le code (si nécessaire), exécuter les tests et afficher les rapports.
Je travaille sur un projet personnel comme vous l'avez décrit. J'utilise Git, Redmine, JUnit et Jenkins pour satisfaire toutes les catégories que j'ai décrites. Mon flux de travail est:
Garder tout géré et organisé est tout aussi important que lorsqu'il y a beaucoup de développeurs. Avec de nombreux développeurs, vous devez vous organiser pour que les informations soient diffusées à tout le monde. Quand il ne s'agit que de vous, vous disposez déjà de toutes les informations, mais il est difficile de se souvenir de chaque partie du système. Un système géré vous facilite la tâche et vous pouvez vous concentrer sur la tâche à accomplir.
la source
Outils:
Système de version de contrôle (même si vous êtes le seul développeur dans votre garage ou votre PC personnel): GIT, Mercurial, Tourtoise
Éditeur avec mise en évidence du code source, même si vous avez un IDE (Scintilla, Vim, Notepad)
Tableau noir du monde réel, tableau blanc, certaines choses ne rentrent tout simplement pas dans votre application Designer Tools.
Outil de conception: Rational Rose, Umbrello, (UML, ER,) Visio ou «Poor Developer's Designer Tools» comme Power Point, Corel Draw, Open Office Draw
Outil de comparaison de texte / code source, par exemple WinMerge
la source
Cela dépend de la façon dont vous pouvez distinguer et gérer différentes tâches, car vous devrez examiner chaque étape du processus de développement.
Je pense que les outils ne sont utiles que si vous savez déjà comment les utiliser et l'une des pires erreurs est d'apprendre comment fonctionne un outil plutôt que d'apprendre quoi en faire.
Tout d'abord, à mon avis, vous devez écrire ce que vous attendez du logiciel et surtout ce qu'il ne fera pas. Voilà un point crucial. L'étape suivante consiste à diviser le système final en sous-systèmes inférieurs, ce qui facilite le processus de construction. Et enfin, vous devrez choisir vos outils. Fondamentalement, un bon IDE, un VCS et un modeleur de données. Vous pouvez ajouter de nombreux autres outils pour vous aider, mais veillez à ne pas commencer sur la mauvaise voie.
Eh bien, le début ne semble pas si attrayant, mais le processus deviendra amusant avec le temps.
la source