Ich bin Student der Informatik. Ich habe darüber nachgedacht, wie ich mit einem großen Projekt umgehen kann. Was sollte mein erster Schritt sein, um mein Ziel effizienter und effektiver zu erreichen?
Wenn ich mit einem Projekt anfange, weiß ich nicht, wie ich anfangen soll, daran zu arbeiten. Oft ignoriere ich es einfach. Ich möchte meine Projektideen jedoch nicht mehr ignorieren.
Nun, ich bitte Sie alle, kann jemand seine / ihre Erfahrungen teilen? Wie soll ich ein Projekt starten, wenn ich nur eine Idee habe?
programming-practices
project-management
user12654
quelle
quelle
Antworten:
Vergessen Sie das Programmieren und Einrichten einer Entwicklungsumgebung für einen Moment. Wenn Sie ein großes Projekt in Angriff nehmen möchten, müssen Sie zunächst den Zweck und den Umfang des Projekts in den Griff bekommen .
Ich empfehle, ein Textverarbeitungsprogramm zu öffnen und ein Dokument mit den Projektzielen zu verfassen. Beschreiben Sie, worum es bei der Idee geht, und den allgemeinen Zweck der Software, die Sie schreiben möchten. Listen Sie dann die Funktionsziele des Projekts auf. Ich meine es nicht spezifizieren, sondern beschreiben die verschiedenen Teile der Funktionalität, die das fertige Produkt unterstützen sollte. Wenn Sie also Software schreiben, um eine Schule zu betreiben, können Sie die "Lehrerverwaltung" als Teil der Funktionalität auflisten und dann beschreiben, was diese Funktionalität beinhalten würde (Kontaktinformationen nachverfolgen, Stundenplan usw.).
Dann der schwierigste Teil: Es ist nicht etwas, was Sie von vornherein tun müssen, sondern wie Sie vorankommen. In jeder Hinsicht genauso wichtig wie die Auflistung bietet Ihnen die Funktionalität hinzufügen möchten Sie in Ihre Ziele Dokument beschriebene Überprüfung und beachten Sie diejenigen Funktionen , die Sie leben können , ohne in der ersten Version des Programms. Dies ist der Schlüssel zum Verwalten des Bereichs.
Einer der Hauptgründe für das Scheitern bei größeren Projekten ist, dass sie nicht wissen, wann sie aufhören sollen, daran zu arbeiten. Sie glauben nicht, dass es „erledigt“ ist, weil die Ideen immer weiter kommen und es nie veröffentlicht wird. Schließlich verlieren sie das Interesse und Sie haben noch ein halbfertiges Meisterwerk. Sie möchten also sicherstellen, dass Sie einen guten Überblick über die Funktionen haben, die wirklich wichtig sind, um den grundlegenden Teil Ihres Ziels zu erreichen. Das ist dein erstes Ziel.
So starte ich jetzt alle nicht-trivialen Projekte. Es hilft mir, den Fokus zu behalten und zu verhindern, dass sich Umfang und Zweck während der Entwicklung verändern.
quelle
Ich denke, Linus hat es am besten ausgedrückt
quelle
Ich gehe davon aus, dass Sie bereits Projekte durchgeführt haben und dass Sie an einem College / einer Universität sind, das / die keine Versions- / Quellcodeverwaltung unterrichtet. Wenn Sie einige Projekte sehen möchten, können Sie jederzeit Open-Source-Repositorys wie Github (verwendet Git), Bitbucket (verwendet Mercurial), Google Code (verwendet Mercurial, Git und Subversion), CodePlex (Mercurial und Subversion / TFS) aufrufen. SourceForge (Many) usw. und werfen Sie einen Blick auf ihre Codebasis. Gemeinsam ist ihnen, dass sie Software zur Quellcodeverwaltung verwenden.
Es gibt viele Informationen zu deren Verwendung. Ich empfehle daher, dass Sie sich mit deren Verwendung vertraut machen, da dies branchenüblich ist. Hier sind einige visuelle Anleitungen, um Sie zum Laufen zu bringen:
In Ihrer Freizeit können Sie nur so viel tun. Klein anfangen: Erstellen Sie ein Projekt von Grund auf neu und legen Sie es in einem Quellcode-Repository ab. Übernehmen Sie Änderungen an Ihrem Quellcode-Repository, wenn Sie Ihrem kleinen Projekt etwas hinzufügen möchten. Mit der Zeit wird es groß und wenn Sie jemals zurückkehren möchten, können Sie die Änderungen, die Sie mit dem Versionskontrollsystem vorgenommen haben, jederzeit rückgängig machen oder rückgängig machen.
quelle
Es ist völlig normal, vom "Blankopapier" -Syndrom betroffen zu sein.
Sie haben ein großartiges Projekt vor Augen, das fantastisch aussieht, aber wenn Sie sich an den Schreibtisch setzen und versuchen, etwas zu tun, blockieren Sie plötzlich und sind nicht in der Lage, etwas zu tun. Dann eröffnest du Solitaire und machst einen neuen Rekord.
Sie müssen tatsächlich anfangen, etwas mit dem Projekt zu tun, damit Sie das Gefühl haben, es sei geboren.
Möglicherweise möchten Sie nicht sofort Code schreiben. Sie können damit beginnen, zu schreiben, was Ihr Projekt tatsächlich tun muss, oder Sie möchten, dass es es tut. Nehmen Sie einen Stift und Papier und beginnen Sie zu schreiben. Sie können von den Details oder von einem größeren Bild ausgehen. Probieren Sie beide aus und finden Sie heraus, was am besten ist.
Sie können versuchen, die Funktionen des Projekts, die verschiedenen Teile und die Kommunikation zwischen diesen Teilen zu definieren. Ich fühle mich wohl mit Post-It, sie machen Spaß und Sie können sie ändern, während Sie Fortschritte machen. Lassen Sie sie Ihren Gedanken und Ideen folgen.
Oder Sie können Prototypen einiger Funktionen oder Klassen erstellen. Sie können jede Sprache verwenden, die Sie bevorzugen, auch eine, die es nicht gibt und die Sie gerade erfunden haben.
Nach einiger Zeit haben Sie etwas zu arbeiten, und Ihr Projekt wird nicht nur in Ihrem Kopf sein. Du hast tatsächlich etwas getan.
Wenn Sie sich wohl fühlen, um den Entwicklungsprozess tatsächlich zu starten, ist es Zeit für eine sorgfältige Planung, Dokumentation, Prototypenerstellung, Zusammenstellung aller erforderlichen Technologien und Software und so weiter.
Aber fangen Sie erst an, wenn Sie das Gefühl haben, dass es der richtige Zeitpunkt ist!
quelle
Große Projekte werden aus vielen kleineren Projekten oder Stücken gebildet. Möglicherweise haben Sie eine große Idee oder Projektanforderung - beispielsweise eine Anwendung, die Kontakte verwaltet.
Mach es kaputt; Fragen Sie sich, was sind die kleineren Stücke, die ich brauche, um dies zu tun?
Nachdem Sie Ihre kleineren Teile definiert haben, wiederholen Sie diesen Vorgang. Möglicherweise müssen einige Teile noch weiter zerlegt werden. Die Idee ist, dass Sie die handlichsten Ziele für jedes der kleineren Teile definieren. Lernen Sie, disziplinierte Prinzipien in Design und Entwicklung (wie Agile-TDD) anzuwenden, und die kleineren, handlicheren Ziele werden erreicht.
quelle
Erstellen Sie eine Gliederung
Sie haben eine große Idee, wissen aber nicht, wie Sie Ihre Aufgabe erfüllen sollen. Erstellen Sie einen Überblick darüber, was Sie tun werden. Schreiben Sie die Schritte auf, die Sie unternehmen werden, was Sie benötigen, welche Sprachen Sie verwenden werden usw. Stellen Sie sicher, dass Sie alles organisiert haben, sonst wird das Projekt ein komplettes Wrack.
Planen Sie Ihre Schritte
Ich habe das bereits erwähnt, aber es ist wirklich wichtig. Wenn Sie Zeit haben, können Sie ein geschätztes Enddatum haben, wann Ihr Projekt abgeschlossen sein wird und wie lange alle Schritte des Projekts dauern werden. Dies ist wiederum eine Organisation, die Sie am Laufen hält.
Finden Sie die Werkzeuge für den Job
Wenn Sie ein großes Projekt starten möchten, benötigen Sie Hilfe. Für die Code-Organisation und ein gutes Versionskontrollsystem ist Git großartig, da der gesamte Code in einem einzigen Repository gespeichert wird. Weitere Informationen zu Git finden Sie unter dem Link, den ich Ihnen gegeben habe.
Sie müssen auch sicherstellen, dass Sie Sprachen verwenden, die Ihnen dabei helfen, das zu tun, was Sie versuchen. Stellen Sie sicher, dass Sie Ihr Projekt erstellen können, bevor Sie beginnen. Ich sage nicht, lerne nichts Neues, sondern lerne, bevor du anfängst.
Hilfe bekommen
Große Projekte werden in der Regel nicht alleine durchgeführt. Kontaktieren Sie Kommilitonen, Leute in Ihrer Gemeinde, die programmieren können, und alle anderen, von denen Sie denken, dass sie Ihnen helfen können, bevor Sie anfangen. Hab keine Angst zu fragen.
Loslegen!
Warten Sie nicht, bis jemand anderes Ihr Projekt gestartet hat, und sagen Sie dann "Ich hatte diese Idee!". Es wird dich für immer verfolgen ...
quelle
Vielleicht ist es voll von Klischees, aber ... ich werde einreichen.
Um ein großes Projekt bewältigen zu können, braucht es vor allem eines: Erfahrung. Erfahrung gibt Ihnen alles, was Sie brauchen:
Sie können also zwei Dinge tun:
Ich hoffe das hilft.
quelle
Meine Definition von "großem Projekt" ist "ein Projekt, bei dem das Hauptproblem die Koordination der Teilnehmer und die Kommunikation zwischen ihnen ist" (ein mittleres Projekt ist, wenn das Management genauso schwierig ist wie die technischen Probleme, ein kleines, wenn die technischen Probleme sind wichtiger als das Management, beachten Sie, dass ein langfristiges Ein-Personen-Projekt ein großes Projekt sein kann - die Koordination und Kommunikation mit Ihrem zukünftigen Selbst unterscheidet sich nicht wesentlich davon, dasselbe mit jemand anderem zu tun.
Der erste Schritt, um in der Lage zu sein, ein großes Projekt zu handhaben (mit einer "führenden Rolle"), besteht darin, an einem großen Projekt teilzunehmen, ohne eine führende Rolle zu spielen. Der zweite Schritt besteht darin, die Hauptrollenebene zu erreichen und von jemandem betreut zu werden, der Erfahrung damit hat.
Ein alternativer Ansatz besteht darin, die Größe der Projekte schrittweise zu erhöhen und aus Ihren Erfahrungen zu lernen ...
quelle
Einige Ideen sind reif für einen Ingenieur, nur um direkt einzuspringen und mit dem Schreiben von Code zu beginnen. Diese Projekte mögen groß oder klein sein, aber eines haben sie alle gemeinsam: ein genau definiertes Problem, das es zu lösen gilt. Ich habe unzählige Male mit Projekten wie diesen begonnen, und es ist nur eine Aufgabe von mir, eine Disziplin aufzubauen, in der es darum geht, gute Dokumentationen im Vorfeld zu schreiben und bewährte Methoden in Bezug auf Quellcodeverwaltung, Kommunikation und Zusammenarbeit zu befolgen.
Große Projekte, für die ich nur den Keim einer Idee habe, erfordern nach meiner Erfahrung etwas mehr Vorbereitung. Als Erstes beginne ich, mit anderen über meine Idee zu sprechen, um festzustellen, ob jemand mein Verständnis für das von mir gelöste Problem teilt, und um meinen geplanten Lösungsansatz zu bestätigen. Nehmen Sie sich ein oder zwei Freunde für ein Bier oder laden Sie sie für Cheetos in Ihren Schlafsaal ein. Aber viel Spaß mit diesem Prozess, denn durch diesen Prozess können Sie das zu lösende Problem besser verstehen, andere großartige Ideen finden, die Sie zur Lösung des Problems einbringen können, üben, Ihre Idee an andere zu verkaufen, und vielleicht sogar anfangen, eine zu erstellen Team von Menschen, die Ihnen bei der Lösung helfen.
quelle
Große Dinge in kleinere Dinge aufteilen.
Sie können nicht daran arbeiten, "Weltfrieden zu erreichen". Stattdessen arbeiten Sie daran, Massenvernichtungswaffen zu verbieten, die Demokratie zu fördern, Entwicklungshilfe zu leisten, den kulturellen und wissenschaftlichen Austausch zu fördern und so weiter.
quelle
Ich denke, dass viele dieser Antworten nichts damit zu tun haben, etwas Greifbares zu tun und sich dazu zu zwingen, es zu tun.
Manchmal steckt man in einem „Denkland“ fest, in dem man den Eindruck hat, alles, was übrig bleibt, ist die Mühe, Dinge zu tippen, aber tatsächlich beginnt man mit einem kleinen Teil des Projekts, und die Implementierung macht Spaß und ist gleichzeitig herausfordernd.
Ich kenne eine Menge Leute, die so sind, einschließlich mir, bis ich wirklich in Fahrt komme, nichts erledige, ich kann nicht überlegen und vorhaben, ein Projekt zu starten. Ich muss mir ein Stück aussuchen, das ich leicht umsetzen kann, und dann geht es los.
quelle
Es gibt keinen Grund, etwas ohne Zweck zu tun. Sie benötigen User Stories, die die Notwendigkeit des Codes zeigen, den Sie schreiben möchten. Sie sollten diese User Stories in folgendem Format einrahmen:
Als [X]
möchte ich [Y],
damit [Z]
Dies mag vereinfachend erscheinen, bietet Ihnen jedoch den Rahmen, nicht nur den Benutzer zu definieren, sondern auch den Bedarf und das Endergebnis in einem einzigen Satz anzugeben. Sie werden viele davon haben. Mit der Zeit werden Sie mehr entwickeln. Nachdem Sie einige haben, können Sie mit der Entwicklung Ihres Codes beginnen. Wenn Sie mehr Ideen haben oder andere Dinge herausfinden. Du gehst zurück und schreibst mehr User Stories, damit du sie nicht vergisst. Das ist der beste Anfang.
Behaviour Driven Development verwendet diesen Ansatz, und die Website unter dem Link enthält mehrere Beispiele für die Verwendung dieses Formats zum Ausdrücken von User Stories.
Ich denke, es wird der schnellste und am besten organisierte Weg sein, um von der Idee zum Code zu gelangen.
quelle
Ich schnappte mir einen Stapel gelber Haftnotizen und einen magischen Marker und setzte mich in einen Raum, in dem sich eine große weiße Tafel befand, damit ich ein Brainstorming durchführen konnte.
Ich würde einfach anfangen, einfache Ausdrücke aufzuschreiben, die mir in den Sinn kamen, wie Hauptmenü, Berichte, Datenbank, Authentifizierung usw. Ich würde diese auf die weiße Tafel kleben und einfach nur starren und mehr Ideen bekommen, zum Beispiel, wie das Hauptmenü aussehen sollte :
Datei öffnen, Datei speichern, Datei speichern unter, Drucken usw. und diese auf die weiße Tafel unter dem Hauptmenü kleben.
Wenn Ihnen Ideen in den Sinn kommen, schreiben Sie sie auf ... gut, schlecht, dumm, was auch immer Sie gerade tun. Klebe sie an die Tafel. Wenn Sie auf die Tafel schauen, werden mehr Ideen auftauchen und Muster entstehen. Irgendwann werden Sie ein Gefühl dafür bekommen, was Sie vorhaben, zu entwickeln.
Gelbe Stickies sind großartig, sie können ziemlich schnell bewegt werden.
Sobald die Dinge zusammenkommen, teilen Sie diese Gedanken in Gruppen auf. Dann können Sie auf einer einzelnen Gruppenebene ein Brainstorming durchführen. Ich würde das Whiteboard in verschiedenen Phasen fotografieren, falls Sie sehen möchten, wie es vor zwanzig Minuten ausgesehen hat, bevor sich die Dinge verschoben haben.
Schließlich haben Sie eine ziemlich gute Vorstellung von den Hauptteilen, die erledigt werden müssen. Sie könnten für jeden dieser Blöcke einen eigenen Ordner erstellen und Ideen immer wieder in die Ordner werfen, wenn sie zu Ihnen kommen.
quelle
Da Sie ein Student sind, gehe ich davon aus, dass Sie studentisch und nicht professionell sind. Letzteres erfordert zusätzliche geschäftliche Überlegungen und Überlegungen zur Zusammenarbeit. Ich habe gerade letzte Woche ein neues Projekt gestartet, daher ist der Prozess in meinem Kopf frisch.
Als erstes recherchiere ich nach vorhandenen Lösungen und Bibliotheken . Ich mag es nicht, das Rad neu zu erfinden, wann immer es möglich ist. Diese Forschung ist auch ein wichtiger Faktor bei der Auswahl einer Sprache für das Projekt. In einigen Sprachen ist Code für bestimmte Aufgaben besser vorhanden.
Als nächstes erstelle ich einen Ordner und versetze ihn in die Quellcodeverwaltung . Das ist so einfach wie
git init .
heutzutage.Als nächstes bekomme ich "Hallo Welt" zum Laufen . Auf diese Weise weiß ich, dass meine Entwicklungsumgebung ordnungsgemäß eingerichtet ist.
Als nächstes bekomme ich "Hallo Welt" für Bibliotheken von Drittanbietern zum Laufen . Dies ist das Nötigste, um zu zeigen, dass ich mit der Bibliothek verknüpft bin und sie richtig verwende. Bei einer Datenbankbibliothek wird beispielsweise eine einfache Abfrage verbunden und ausgeführt. Bei einem GUI-Toolkit wird ein Fenster angezeigt.
Als nächstes richte ich Build-Skripte und Test-Frameworks ein . Dies ist eine Ameise, ein Makefile oder was auch immer und ist viel einfacher einzurichten, wenn Ihr Projekt noch klein ist.
Als nächstes erstelle ich Datenstrukturen . Wird auch als "Modell" -Schicht bezeichnet. Dies ist der Teil, in dem alles gespeichert wird, an das sich Ihr Programm erinnern muss, um seine Arbeit zu erledigen. Ich entwerfe viel auf Papier und füge dann einfach Stichleitungen hinzu. Dieser Teil des Entwurfs ist normalerweise der einfachste. Zum Beispiel benötigt ein Schachprogramm Objekte, um das Spielraster, die Spieler, die Figuren, die Abfolgen von Zügen usw. zu speichern.
Zu diesem Zeitpunkt habe ich eine ziemlich gute Basis für ein Programm und es ist normalerweise ziemlich offensichtlich, was der nächste Schritt für dieses bestimmte Projekt sein wird. Dann mache ich nur einen kleinen Schritt nach dem anderen, mit Code, der bis zu einem gewissen Grad auf dem ganzen Weg funktioniert.
quelle
Wenn Sie nur eine "große Idee" haben, brauchen Sie eine Menge Dinge (die in anderen Antworten sehr gut beschrieben sind), insbesondere diese 2: Zeit und Motivation .
Die größte Schwierigkeit, wenn Sie alleine an einem persönlichen Projekt arbeiten, ist, dass Sie in der Regel nicht jede Woche viel Zeit dafür haben und daher nicht viel Fortschritt sehen und schnell an Motivation verlieren.
Machen Sie also, wie bereits gesagt, kleine Schritte , das ist der Schlüssel.
Aber das ist noch nicht alles, Sie müssen kleine und lohnende Schritte unternehmen ! Das heißt, Schritte, die Ihnen den größten Nutzen bringen und die Schlüsselkonzepte Ihrer großen Idee demonstrieren.
Zum Beispiel, wenn Sie an einer neuen Super-To-Do-Listen-Software mit hervorragenden Benutzerinteraktionen arbeiten . Beginnen Sie nicht mit dem Speicher- und Datenbankmaterial, bis Sie es wirklich brauchen. Beginnen Sie mit der innovativen Benutzeroberfläche: Das macht Spaß und hat Wert. Das wird Sie stolz machen, Sie motivieren und Ihnen ermöglichen, sehr bald zu überprüfen, ob Ihre Idee wirklich gut ist.
quelle
Das allererste, was Sie tun müssen, ist sich zu setzen und diese Idee schriftlich zu beschreiben. Bis dahin wird es kein Projekt, und selbst dann haben Sie einige Mühe, es von etwas so Vergänglichem wie einer Idee zu etwas so Greifbarem wie einem Projekt zu machen.
Wenn Sie dies erreicht haben, können Sie versuchen, daraus ein Projekt zu machen und herauszufinden, wie Sie es in diskrete Schritte aufteilen können, die auf logische Weise implementiert werden können.
Skizzieren Sie anschließend einen Zeitplan für die Implementierung dieser Schritte. Überdenken Sie den Fortschritt in bestimmten Abständen, damit Sie die Kontrolle über diesen Prozess behalten - anstatt kriechende Ideen zu haben, an die Sie überhaupt nicht gedacht haben, und diese dem Mix hinzuzufügen.
Identifizieren Sie eine erste Ziellinie und zielen Sie darauf ab. Je weniger Sie sich daran halten, desto mehr wird das Projekt wahrscheinlich unter die Last zusätzlicher Ideen geraten und desto entmutigter werden Sie möglicherweise, es fertigzustellen, da es für immer zu leben scheint.
quelle
Der Code-Aufwand beträgt in der Regel etwa 20% (+ -10%) des Projektbudgets. Sich darauf zu konzentrieren, dass der Code korrekt ist, ist sinnlos. 80% der Mühen, die Sie nicht in Angriff genommen haben, reichen aus, um den Code perfekt zu verwalten, und Sie haben nur noch 20 der geleisteten Arbeiten.
Was ist, wenn Ihr Projekt keine Benutzer hat? Was ist, wenn es perfekt ist, aber eine Woche nach der "Acme Patent Trolls" -Datei für ein Patent auf die Idee veröffentlicht wurde und sich herausstellt, dass es das nächste Facebook ist?
Betrachten Sie die folgenden Standardprobleme im Zusammenhang mit dem Projektlebenszyklus: Anforderungen, Design, Code, Test, Integration, Bereitstellung, Fehlerverfolgung und -korrektur, Anforderungsänderungsmanagement (Erweiterungsanforderungen). Release-Pläne, Ressourcenzuweisung (wie viele Stunden pro Tag planen Sie und was werden Sie tatsächlich für das Projekt tun), Legal (Freedon to Operate) usw.
Wenn alle oben genannten Punkte erfüllt sind, ist auch sehr schlechter Code erfolgreich. Wenn keines der oben genannten Elemente vorhanden ist, schlägt der beste Code fehl.
Ich bin kein Wettmann, aber ich würde Geld dafür investieren, dass Ihr erstes "großes" Projekt auf vielfältige und unvorstellbare Weise scheitert. Mach dir keine Sorgen, mach weiter und versage, lerne daraus und mach das nächste. Nicht anzufangen wäre das wahre Verbrechen. Wenn Sie das erste Mal erfolgreich sind, haben Sie eine solide Karriere in der Unternehmensführung, nicht in der Programmierung.
Um Ihre Frage zu beantworten, legen Sie die Software-Tools weg und ziehen Sie Ihre "Business Planning" -Tools heraus. Finde heraus, WARUM du es tust, für WER, dann WARUM und WANN sie es wollen. (Sie können Ihr eigener Kunde sein, aber machen Sie die Übung trotzdem). Schreiben Sie dies in einen "Business Plan" und bauen Sie daraus auf.
quelle
Wiederholen Sie den letzten Schritt, bis das Projekt abgeschlossen ist. akzeptieren , dass es dauern kann Jahre und haben immer nach vorne bewegen
quelle
Alle Antworten hier sind nett und alle, aber ehrlich gesagt spielt es keine Rolle, wie viel Versionskontrolle, Anpassung, Ablaufdiagramm und Markierungen Sie vornehmen. Alles, was zählt, ist, dass Sie eine funktionale Anwendung haben, eine funktionale Anwendung ist definiert als eines, das das Problem löst, für das es gedacht war, alle anderen Dinge sind so ziemlich irrelevant.
Starten Sie die Codierung, codieren Sie sie in eine Funktionsphase, führen Sie einige Tests durch, debuggen Sie sie, starten Sie sie und wiederholen Sie sie mit neuen Features und Funktionen (wenn Sie dies für erforderlich halten), ähnlich wie bei einem schlanken Start - eine agile Verwaltungsmethode und Entwicklung, um weniger Abfall zu erzeugen (oder wie definiert: halbfertige Meisterwerke).
quelle
Liste der Dinge, die zu tun sind, wenn ein neues Projekt gestartet wird:
quelle