(Hobby-) Projektplanung: Wie geht Ihr vor? Diskussion

KaPiTN

Boomer ♪♪♫♪♫♫♪
Registriert
14 Juli 2013
Beiträge
22.329
Ich habe im Rahmen der Pgrogramierherausforderung Mühle-Spiel die Frage gestellt, wie die User hier ihre Projekte planen und denke, daß diese Diskussion einen eigenen Thread verdient.

Meine Bemerkung dazu war:

Ich persönlich mache die Entwicklungsumgebung ja erst recht spät auf und 'code' dann recht zügig, weil ich erst einmal die Teilbereiche definiere und dann Modellierung und Strukturierung durchführe.

Näheres dazu im besagten Thread.

Aber egal, ob ihr Euch auf die Aufgabe aus diesem Thread bezieht, oder ob Ihr allgemein etwas dazu sagen wollt, ich bin gespannt, wie die unterschiedlichen Strategien aussehen.
 
Im Grunde ist das vorgehen bei mir in etwa so:
Erfassen der Problemstellung bzw. das Grundzüge zu verinnerlichen was ich überhaupt umsetzen möchte. In diesem Fall gibt es klare Vorgaben und (Spiel)regeln an denen man sich orientieren kann.

Sind diese soweit verstanden und man hat die Basics im Kopf und es gibt keine Fragen hierzu, habe ich zum Beispiel angefangen mir Gedanken darum zu machen wie man eine Datenstruktur definiert für den Aufbau des Spielfeldes, Grundlagen wie ich vielleicht schon etwas diesbezüglich vereinfachen kann.

Dann habe ich mir überlegt welche Sprache die Probleme die ich sehe, am einfachsten angehen kann, unter Einbeziehung meiner ersten Gedanken.

Meine Entscheidung das mit Javascript umzusetzen liegt deßhalb nach Überlegungen nah für mich, weil ich...:
- ... es grafisch umsetzen will und der Browser dafür sehr sehr gute Grundlagen bietet, heißt viel UI Code fällt flach
- ... ich die Sprache "leichter" finde als C mit einer Grafik-Lib zu verwenden oder mit Speichermanagement und Co herumzuhantieren
- ... Python zwar schön finde, aber es nicht dort schreiben wollte
- ... finde das Javascript genug Grundlagen hat die einem viele Probleme von Haus aus abnehmen/vereinfachen, ähnlich wie die Python-Standardbibliothek, was bei C so nicht der Fall direkt ist
- ... eine Browservariante generell interessant finde, falls man den Code publik macht

Mir sind auch Nachteile bekannt die gegen Javascript bzw. das Browser-Environment sprechen, aber die sind nicht zwingend erforderlich. Zum Beispiel das man keine Daten speichern um zum Beispiel ein Savegame zu haben, was dann nur über SessionStore geht und nicht in Form einer externen Datei.

Nachdem ich dann die Sprache gewählt habe, fange ich eigentlich schon an zu programmieren.
Die Details in welche Funktionen ich etwas unterteile, enstehen während ich entwickle. Das heißt ich überlege mir nicht vorher direkt, das ergibt sich aber aus den Spielregeln die man hoffentlich abarbeitet, das ich eine Funktion "movePiece" brauche oder "removePiece" oder "setPiece" - das man so etwas benötigt, ergibt sich wie gesagt aus den Anforderungen des Spiels. Ich denke auch nicht das man alles bis ins Detail planen muß bzw. auch kann. Es reicht wenn man gute Grundlagen hat auf die man aufbaut bzw. die sich je nach "gefundenen" Problemen erweitern bzw. weiternutzen lassen.

Auch wenn das zu sehr spontanen Entscheidung führt - was ich aber nicht als Risiko sehe, sondern gerade als die Herausforderung wie man ein Problem löst und es "abarbeitet".

Etwas Code-Style Talk, aber es passt mir irgendwie auch ins Thema:
Was mir persönlich aber passiert - ich tendiere dazu vieles erst mal nur "runter zu schreiben", wenn ich eine Status mehr in der Datenstruktur benötige, erweitere ich diese. Merke ich 10 Minuten später das sich der Wert durch etwas anderes "ableiten" oder vereinfachen lässt, nehme ich es wieder raus.
Genau so ist es mit Optimierungen, ich versuche schon ein wenig "vor zu arbeiten", aber wie sagt man so schön "pre mature optimization is the root of all evil", was so gut heißt wie - mach es erst richtig(!), was ich natürlich teste, und dann überlege ich mir ob mir noch etwas zu optimieren daran einfällt bevor ich auf die nächste Regel/Funktion springe, oder ich teste anderen Code/Ideen aus ein Problem zu lösen/anaylisieren und das was hinterher besser "aussieht" nach meinem Kenntnisstand, bleibt.

Natürlich werden Funktionen im Laufe der Zeit noch etwas erweitert, aber ich versuche schon die Funktionen abstrakt und aufgabenspezifisch zu halten. Okay, aber das geht jetzt auch in Richtung Coding-Style und das hat ja nichts mit der Projektplanung zu tun.
 
Mein Vorgehen ist da etwas ... spontaner.
Ich sehe ein Problem oder kriege eine Aufgabe, die es zu lösen gilt.
Bevor ich anfange zu programmieren wird erstmal gelesen, was für Regeln es gibt (Beispielsweise hier die Spielregeln). Sind die verstanden wird sich direkt daran gemacht ein Grundgerüst zu schreiben. Eine main, von der ich alles mögliche aufrufe und die ersten paar kleinen Klassen, die irgendwas modellieren, wie hier zum Beispiel das Spielfeld oder einen Spielstein. Häufig stelle ich dann nach den ersten hundert Zeilen Code fest, dass meine Grundidee nicht ganz so optimal war. Ich schreibe diese dennoch erstmal fertig und passe dann auf sinnvollere Varianten an. Und dann wird die erste Datei geschrieben, die alles mögliche testet - meistens geschieht das einfach mit Ausgaben von den Variablen und dann ergibt sich alles weitere.

Ich lege mich allerdings für viele Sachen bereits von vorne herein fest in welcher Sprache ich etwas schreiben will. Entweder weil ich einfach mehr über diese Sprache lernen will, ich es intuitiv in dieser Sprache machen möchte oder es schlichtweg Vorgabe von irgendwem ist.
 
Zurück
Oben