web-dev-qa-db-fra.com

Quelles sont les étapes pour commencer un grand projet, alors que tout ce que j'ai est une grande idée?

Je suis étudiant en génie informatique. J'ai réfléchi à la façon dont je peux gérer un grand projet. Quelle devrait être ma première étape pour atteindre mon objectif de manière plus efficace et efficiente?

Quand je propose un projet, je ne sais pas comment commencer à travailler dessus. Plusieurs fois, je l'ignore. Cependant, je ne veux plus ignorer mes idées de projets.

Maintenant, je demande à vous tous, quelqu'un peut-il partager ses expériences? Comment démarrer un projet quand je n'ai qu'une idée?

50
user12654

Oubliez le codage et la mise en place d'un environnement de développement pendant un moment. Si vous souhaitez vous lancer dans un grand projet, la première chose que vous devez faire est de maîtriser les purpose et scope du projet.

Ce que je recommande, c'est d'ouvrir un traitement de texte et d'écrire un document sur les "objectifs du projet". Décrivez en quoi consiste l'idée et l'objectif général du logiciel que vous souhaitez écrire. Énumérez ensuite les objectifs de fonctionnalité du projet. Je ne veux pas le préciser, mais plutôt décrire les différentes fonctionnalités que le produit fini devrait prendre en charge. Donc, si vous écriviez un logiciel pour gérer une école, vous pourriez répertorier la `` gestion des enseignants '' comme un élément de fonctionnalité, puis décrire ce que cette fonctionnalité comprendrait (suivre les coordonnées, l'horaire des cours, etc.).

Ensuite, la partie la plus difficile: ce n'est pas quelque chose que vous devez faire dès le départ, mais au fur et à mesure. Chaque élément aussi important que la liste des fonctionnalités que vous souhaitez ajouter consiste à examiner les fonctionnalités que vous avez décrites dans votre document d'objectifs et à noter les fonctionnalités que vous pouvez vivre sans dans la première version du programme. C'est la clé de la gestion de la portée.
L'une des principales raisons pour lesquelles les gens échouent dans des projets plus importants est qu'ils ne savent pas quand arrêter de travailler dessus. Ils ne sentent pas que c'est "fait" parce que les idées continuent de venir et que cela ne sort jamais. Finalement, ils perdent tout intérêt, et vous avez encore un autre chef-d'œuvre à moitié fini. Vous voulez donc vous assurer d'avoir une bonne maîtrise des fonctionnalités qui sont vraiment importantes pour atteindre la partie fondamentale de votre objectif. C'est votre premier objectif.

C'est ainsi que je démarre tous les projets non triviaux maintenant. Cela m'aide à garder le focus et à empêcher la portée et l'objectif de "évoluer" pendant le développement.

65
GrandmasterB

Je pense Linus le mieux

Personne ne devrait commencer à entreprendre un grand projet. Vous commencez avec un petit projet trivial et vous ne devriez jamais vous attendre à ce qu'il devienne grand. Si vous le faites, vous allez juste trop concevoir et pensez généralement que c'est plus important qu'il ne l'est probablement à ce stade. Ou pire, vous pourriez être effrayé par l'ampleur du travail que vous envisagez. Commencez donc petit et pensez aux détails. Ne pensez pas à une grande image et à un design sophistiqué. S'il ne résout pas un besoin assez immédiat, il est presque certainement sur-conçu. Et ne vous attendez pas à ce que les gens interviennent et vous aident. Ce n'est pas ainsi que ces choses fonctionnent. Vous devez d'abord obtenir quelque chose d'utile à mi-chemin, puis d'autres diront "hé, ça marche presque pour moi", et ils s'impliqueront dans le projet. -- Linus Torvalds

42
Rook

Quelle devrait être ma première étape pour atteindre mon objectif de manière plus efficace et efficiente?

Je suppose que vous avez déjà fait des projets et que vous êtes dans un collège/université qui n'enseigne pas le contrôle de version/source. Si vous voulez voir certains projets, vous pouvez toujours aller dans des référentiels open source tels que Github (utilise Git), Bitbucket (utilise Mercurial), Google Code (utilise Mercurial, Git et Subversion), CodePlex (Mercurial et Subversion/TFS), SourceForge (Many), etc. et jetez un œil à leur base de code. Ce qu'ils ont en commun, c'est qu'ils utilisent un logiciel de contrôle de source.

Il y a beaucoup d'informations sur la façon de les utiliser, donc je vous suggère d'apprendre à les utiliser, car c'est une pratique standard de l'industrie. Voici quelques guides visuels pour vous aider à démarrer:

Vous savez, quand un projet me vient à l'esprit, je ne sais pas ce que je dois faire. Plusieurs fois, je l'ignore.

Vous ne pouvez pas faire grand-chose pendant votre temps libre. Commencez petit : créez un projet à partir de zéro, placez-le dans un référentiel de code source. Validez les modifications apportées à votre référentiel de code source chaque fois que vous souhaitez ajouter quelque chose à votre petit projet. Avec le temps, il deviendra important et si vous souhaitez revenir en arrière, vous pouvez toujours revenir en arrière ou annuler les modifications que vous avez apportées avec le système de contrôle de version.

12
Spoike

Il est parfaitement normal d'être frappé par le syndrome du "papier vierge".

Vous avez un grand projet en tête, qui a l'air fantastique, mais lorsque vous vous asseyez au bureau pour essayer de faire quelque chose, vous bloquez soudainement et ne pouvez rien faire. Ensuite, vous ouvrez le solitaire et créez un nouveau record.

En fait, vous devez commencer à faire quelque chose en rapport avec le projet, pour avoir l'impression qu'il est né.

Vous ne voudrez peut-être pas écrire le code immédiatement. Vous pouvez commencer par écrire ce que votre projet doit réellement faire, ou vous souhaitez qu'il le fasse. Prenez un stylo et du papier et commencez à écrire. Vous pouvez partir des détails ou d'une image plus grande. Essayez les deux, voyez ce qui est le mieux.

Vous pouvez essayer de définir les fonctionnalités du projet, les différentes parties, comment ces parties communiquent entre elles. Je me sens à l'aise avec les post-it, ils sont amusants et vous pouvez les changer à mesure que vous progressez. Laissez-les suivre votre esprit et vos idées.

Ou peut-être que vous pouvez démarrer le prototype d'une fonction ou d'une classe. Vous pouvez utiliser la langue que vous préférez pour cela, même une qui n'existe pas et que vous venez d'inventer.

Après un certain temps, vous aurez quelque chose à travailler et votre projet ne sera pas seulement dans votre esprit. Tu as fait quelque chose.

Lorsque vous vous sentez à l'aise pour commencer réellement le processus de développement, il est temps de planifier, documenter, prototyper soigneusement, rassembler toutes les technologies et logiciels requis, etc.

Mais ne commencez pas avant d'avoir vraiment sentez c'est le bon moment!

5
Jose Faeti

Les grands projets sont formés de nombreux petits projets ou pièces. Vous pouvez avoir une grande idée ou une exigence de projet - par exemple, une application qui gère les contacts.

Décomposez-le; demandez-vous, 'quels sont les plus petits morceaux dont j'ai besoin pour faire cela?'

Une fois que vous avez défini vos petites pièces, répétez; vous constaterez peut-être que certaines pièces doivent être ventilées davantage. L'idée est que vous définissiez les objectifs les plus faciles à gérer pour chacune des petites pièces. Apprenez à utiliser des principes disciplinés dans la conception et le développement (comme Agile-TDD) et les objectifs plus petits et plus faciles à gérer seront atteints.

4
IAbstract

Créer un plan

Vous avez une grande idée, mais vous ne savez pas comment vous allez accomplir votre tâche. Créez un aperçu de ce que vous allez faire. Notez les étapes à suivre, ce dont vous aurez besoin, les langues que vous utiliserez, etc. Assurez-vous que tout est organisé, sinon le projet sera une épave complète.

Planifiez vos étapes

J'en ai déjà parlé, mais c'est vraiment important. Si vous avez du temps imparti, vous pouvez avoir une date de fin estimée de la fin de votre projet et de la durée des étapes du projet. C'est, encore une fois, une organisation qui vous permettra de continuer à fonctionner.

Trouvez les outils pour le travail

Si vous allez démarrer un grand projet, vous aurez besoin d'aide. Pour l'organisation du code et un bon système de contrôle de version, Git est idéal car il conserve tout votre code dans un seul référentiel. Pour plus d'informations sur Git, consultez le lien que je vous ai donné.

Vous devrez également vous assurer que vous utilisez des langues qui vous aideront à faire ce que vous essayez de faire. Assurez-vous de pouvoir créer votre projet avant de commencer. Je ne dis pas ne rien apprendre de nouveau, mais apprenez avant de commencer.

Obtenir de l'aide

Les grands projets ne se font généralement pas seuls. Contactez vos camarades de classe, les personnes de votre communauté qui peuvent programmer et toute autre personne qui, selon vous, peut vous aider avant de commencer. N'ayez pas peur de demander.

Commencer!

Ne vous attardez pas, attendez que quelqu'un d'autre commence votre projet et dites ensuite "j'ai eu cette idée!". Il vous hantera à jamais ...

3
Dynamic

C'est peut-être plein de clichés mais ... je vais me soumettre.

Pour pouvoir gérer un gros projet, il vous faut principalement une chose: l'expérience. L'expérience vous donne tout ce dont vous avez besoin:

  • Connaissances: plus vous passez de temps sur des projets, plus vous acquérez de connaissances générales et spécifiques
  • Confiance: la gestion de grands projets nécessite de la confiance, la confiance vient des connaissances et généralement du fait que chaque élément du travail est quelque chose que vous avez fait auparavant, ou que vous avez vu des gens le faire
  • Réseau professionnel: si le projet est vraiment important, vous devrez vous rendre compte que vous ne pouvez pas le réaliser par vous-même, alors soyez prêt à savoir à qui vous pouvez demander ou où vous pouvez trouver les informations clés que vous recherchez

Vous pouvez donc faire deux choses:

  • Plongez et voyez comment ça se passe. Vous ferez probablement beaucoup d'erreurs, mais la clé est d'en tirer des leçons.
  • Obtenez un emploi où vous pourrez observer spécifiquement les personnes qui gèrent de grands projets

J'espère que ça aide.

1
Aston

il n'y a aucune raison de faire quoi que ce soit sans but. Vous avez besoin de user stories qui montrent la nécessité du code que vous souhaitez écrire. Vous devez encadrer ces user stories au format suivant:

En tant que [X]
Je te veux]
pour que [Z]

Cela peut sembler trop simpliste, mais cela vous donne le cadre non seulement pour définir l'utilisateur, mais aussi pour spécifier le besoin et le résultat final dans une seule phrase. Vous en aurez plusieurs. Vous en découvrirez plus au fil du temps. Après en avoir, vous pouvez commencer le développement de votre code. Lorsque vous avez plus d'idées ou découvrez d'autres choses. Vous revenez en arrière et écrivez d'autres histoires d'utilisateurs pour ne pas les oublier. C'est le meilleur endroit pour commencer.

Behavior Driven Development utilise cette approche et le site sur le lien contient plusieurs exemples d'utilisation de ce format pour exprimer des histoires d'utilisateurs.

Je pense que ce sera le moyen le plus rapide et le plus organisé pour passer de l'idée au code.

1
Charles Lambert

Ma définition de "grand projet" est "un projet où le problème majeur est la coordination des participants et la communication entre eux" (un projet moyen c'est quand la gestion est aussi difficile que les problèmes techniques, un petit c'est quand les problèmes techniques sont plus importants que celui de la gestion; notez qu'un projet à long terme pour une personne peut être un gros projet - la coordination et la communication avec votre futur n'est pas très différente de la même chose avec quelqu'un d'autre).

La première étape pour pouvoir gérer (avec un "avoir un rôle de leader") un grand projet est de participer à un grand projet sans avoir un rôle de leader. La deuxième étape consiste à atteindre le niveau de rôle principal tout en étant encadré par une personne qui en a l'expérience.

Une approche alternative consiste à augmenter progressivement la taille des projets et à tirer des leçons de votre expérience ...

1
AProgrammer

Certaines idées sont mûres pour un ingénieur juste pour se lancer et commencer à écrire du code. Ces projets peuvent être grands ou petits, mais ce qu'ils ont tous en commun: un problème bien défini à résoudre. J'ai lancé des projets comme celui-ci d'innombrables fois, et il s'agit simplement de construire une discipline autour de la rédaction d'une bonne documentation à l'avance et du respect des meilleures pratiques en matière de contrôle de code source, de communication et de collaboration.

Les gros projets pour lesquels je n'ai que le germe d'une idée demande un peu plus de préparation dans mon expérience. La première chose que je fais est de commencer à parler de mon idée avec les autres pour voir si quelqu'un partage ma compréhension du problème que je résous et pour valider mon approche prévue pour résoudre le problème. Alors, prenez un ami ou deux pour une bière, ou invitez-les dans votre dortoir pour Cheetos. Mais amusez-vous avec ce processus, car c'est grâce à ce processus que vous pourriez mieux comprendre le problème que vous résolvez, trouver d'autres bonnes idées que vous pouvez apporter pour résoudre le problème, pratiquer la vente de votre idée à d'autres, et peut-être même commencer à construire un équipe de personnes pour vous aider à le résoudre.

1
Byrne Reese

Divisez les grandes choses en petites choses.

Vous ne pouvez pas travailler à "réaliser la paix mondiale". Au lieu de cela, vous travaillez à interdire les armes de destruction massive, vous encouragez la démocratie, vous fournissez une aide au développement, vous encouragez les échanges culturels et scientifiques, etc.

1
LennyProgrammers

Je pense que quelque chose que beaucoup de ces réponses n'abordent pas est de faire quelque chose de tangible et de se forcer à le faire.

Parfois, vous êtes coincé dans une `` terre de réflexion '' où vous avez l'impression que tout ce qui reste est l'ennui de taper des choses, mais commencez en fait sur un morceau de votre projet et la mise en œuvre est à la fois amusante et stimulante.

Je connais beaucoup de gens qui sont comme ça, y compris moi, jusqu'à ce que je commence, je ne fais rien, je ne peux pas juste penser et planifier de démarrer un projet. Je dois choisir un morceau que je peux facilement mettre en œuvre et y arriver, puis le flux commence.

1
Matthew Blanchard

Je prenais une pile de collants jaunes et un marqueur magique et m'asseyais dans une pièce où il y avait un grand tableau blanc pour que je puisse réfléchir.

Je voudrais juste commencer à écrire des phrases simples qui me sont venues à l'esprit telles que le menu principal, les rapports, la base de données, l'authentification, etc. :

Ouvrir le fichier, enregistrer le fichier, enregistrer le fichier sous, imprimer, etc. et les coller sur le tableau blanc sous le menu principal.

Alors que les idées vous viennent à l'esprit, écrivez-les ... bonnes, mauvaises, stupides, tout ce qui devient créatif. Collez-les sur le tableau. Au fur et à mesure que vous regardez le tableau, d'autres idées émergeront et des modèles apparaîtront. À un moment donné, vous commencerez à avoir une idée de ce que vous prévoyez de développer.

Les collants jaunes sont excellents, ils peuvent être déplacés assez rapidement.

Une fois que les choses commencent à se rassembler, vous divisez ces pensées en groupes. Ensuite, vous pouvez réfléchir à un niveau de groupe unique. Je prendrais des photos du tableau blanc à différentes étapes au cas où vous voudriez voir à quoi il ressemblait il y a vingt minutes avant que les choses ne bougent.

Finalement, vous aurez une assez bonne idée des principaux morceaux de choses à faire. Vous pouvez obtenir un dossier unique pour chacun de ces morceaux et continuer à y jeter des idées au fur et à mesure qu'elles vous parviennent.

L'effort de code représente généralement environ 20% (+ -10%) du budget d'un projet. Il est inutile de se concentrer sur l'obtention du code correct, il y a 80% de l'effort que vous n'avez pas adressé, donc obtenir une gestion parfaite du code ne vous laisse que 20% du travail effectué.

Et si votre projet n'a pas d'utilisateurs? Et si c'était parfait mais publié une semaine après le dossier "Acme Patent Trolls" pour un brevet sur l'idée, et que ce soit le prochain Facebook?

Examinez les problèmes de cycle de vie de projet standard suivants: exigences, conception, code, test, intégration, déploiement, suivi et correction des défauts, gestion des modifications des exigences (demandes d'amélioration). Plans de publication, allocation des ressources (combien d'heures par jour prévoyez-vous et allez-vous réellement faire sur le projet), juridique (Freedon à exploiter), etc.

Si tout ce qui précède est en place, même un très mauvais code réussira. Si aucun des éléments ci-dessus n'est en place, le meilleur code échouera.

Je ne suis pas un parieur, mais je mettrais de l'argent dessus. Votre premier "grand" projet échouera, de manières nombreuses et variées que vous ne pouvez pas imaginer. Ne vous inquiétez pas, allez-y et échouez, apprenez-en et faites la suivante. Ne pas commencer serait le vrai crime. Si vous réussissez pour la première fois, vous avez une solide carrière en gestion d'entreprise, pas en programmation.

Donc, pour répondre à votre question, rangez les outils logiciels et sortez vos outils de "business planning". Déterminez POURQUOI vous le faites, pour QUI alors POURQUOI et QUAND ils le veulent. (Vous pouvez être votre propre client, mais faites quand même l'exercice). Notez cela dans un "plan d'affaires" et construisez à partir de leur.

0
mattnz

La toute première chose que vous devez faire est de vous asseoir et de décrire cette idée par écrit. Il ne deviendra pas un projet jusque-là, et même alors, vous avez du travail pour le faire passer de quelque chose d'aussi éphémère comme idée à quelque chose d'aussi tangible qu'un projet.

Une fois que vous êtes allé aussi loin, vous pouvez commencer à envisager de le transformer en projet, en identifiant comment vous pouvez le décomposer en étapes discrètes qui peuvent être implémentées de manière logique.

Décrivez ensuite un calendrier pour la mise en œuvre de ces étapes. Revoyez les progrès à des intervalles donnés afin de garder un certain contrôle sur ce processus - plutôt que d'avoir des idées rampantes auxquelles vous n'aviez jamais pensé en premier lieu et de les ajouter au mélange.

Identifiez une ligne d'arrivée initiale et visez-la. Moins vous y adhérez, plus le projet risque de sombrer sous le poids d'idées supplémentaires, et plus vous serez découragé de le terminer car il semble vivre éternellement.

0
temptar

Puisque vous êtes étudiant, je vais supposer que vous voulez dire étudiant gros et non professionnel gros. Ce dernier nécessite des considérations commerciales et de collaboration supplémentaires. Je viens de commencer un nouveau projet la semaine dernière, donc le processus est frais dans mon esprit.

La première chose que je fais est recherche de solutions et bibliothèques existantes. Je n'aime pas réinventer la roue autant que possible. Cette recherche est également un facteur important dans le choix d'une langue pour le projet. Certaines langues ont un meilleur code existant pour certaines tâches.

La prochaine chose que je fais est créer un dossier et le mettre sous contrôle de source. C'est aussi simple qu'un git init . aujourd'hui.

Ensuite, je faire fonctionner "Hello World". Cela me permet de savoir que mon environnement de développement est correctement configuré.

Ensuite, je obtenez "bonjour le monde" pour les bibliothèques tierces qui fonctionnent. C'est le strict minimum nécessaire pour montrer que je me connecte et utilise la bibliothèque correctement. Pour une bibliothèque de base de données, c'est la connexion et l'exécution d'une requête simple, par exemple. Pour une boîte à outils GUI, il affiche une fenêtre.

Ensuite, je mis en place des scripts de construction et des cadres de test. Il s'agit de fourmis ou de makefiles ou autre, et il est beaucoup plus facile à configurer lorsque votre projet est encore petit.

Ensuite, je créer des structures de données. Aussi appelée couche "modèle". C'est la partie qui stocke tout ce dont votre programme doit se souvenir pour faire son travail. Je fais beaucoup de design sur papier, puis j'ajoute simplement des talons. Cette partie du design est généralement la plus simple. Par exemple, un programme d'échecs va avoir besoin d'objets pour stocker la grille de jeu, les joueurs, les pièces, les séquences de coups, etc.

À ce stade, j'ai une assez bonne base pour un programme et il est généralement assez évident de savoir quelle sera la prochaine étape pour ce projet particulier. Ensuite, je fais juste une petite étape à la fois, avec du code qui fonctionne dans une certaine mesure tout au long du chemin.

0
Karl Bielefeldt

Si tout ce que vous avez est une "grande idée", vous aurez besoin de beaucoup de choses (qui sont très bien décrites dans d'autres réponses), et en particulier ces 2: temps et motivation =.

La plus grande difficulté lorsque vous travaillez seul sur un projet personnel est que, généralement, vous n'avez pas beaucoup de temps à y consacrer chaque semaine et donc vous ne voyez pas beaucoup de progrès et commencez rapidement à perdre votre motivation.

Donc, comme cela a déjà été dit, faites de petits pas, c'est la clé.

Mais ce n'est pas tout, vous devez faire de petits pas gratifiants! Autrement dit, des étapes qui vous apporteront la plus grande valeur et démontreront les concepts clés de votre grande idée.

Par exemple, si vous travaillez sur un nouveau logiciel de super liste de tâches avec de grandes interactions utilisateur . Ne commencez pas avec les éléments de stockage et de base de données avant d'en avoir vraiment besoin. Commencez avec l'interface utilisateur innovante: c'est amusant et a de la valeur. Cela vous rendra fier, vous gardera motivé et vous permettra de vérifier très rapidement que votre idée est vraiment bonne.

0
David

Toutes les réponses ici sont agréables et toutes, mais en toute honnêteté, peu importe le contrôle de version, le gitting, l'organigramme et les balises que vous faites, tout ce qui compte, c'est que vous ayez une application fonctionnelle, une application fonctionnelle est défini comme celui qui résout le problème pour lequel il a été conçu, toutes les autres choses sont à peu près hors de propos.

Commencez à coder, codez-le dans une phase fonctionnelle, exécutez des tests, déboguez, lancez et réitérez avec de nouvelles fonctionnalités et fonctionnalités (si vous le jugez nécessaire), à ​​la manière d'un démarrage Lean - qui est une méthode de gestion agile et le développement pour créer moins de déchets (ou comme quelqu'un l'a défini: des chefs-d'œuvre à moitié finis).

0
Itai Sagi
  1. à quoi ressemble le succès?
  2. quelles sont les inconnues du projet?
  3. quels sont les éléments connus du projet?
  4. que pouvez-vous faire pour éliminer/découvrir les inconnus, pour les convertir en connus?
  5. que pouvez-vous faire pour rassembler les éléments connus pour réussir?
  6. quelle est la prochaine étape concrète à franchir pour faire avancer le projet?

répétez la dernière étape jusqu'à ce que le projet soit terminé; accepter que cela puisse prendre années, et continuer d'avancer

0
Steven A. Lowe