Hi.
Das
imho Wichtigste, was hoffentlich in jedem Buch und Tutorial über Projektmanagment drin steht, ist es den Auftraggeber mit in die Verantwortung zu ziehen. Ich würde dir raten dir die Agilen Softwareprozesse genauer an zu schauen. Ich meine hier
nicht eXtreme Programming, sondern vielmehr Scrum.
Für ein Einmannprojekt gilt natürlich nicht alles was für größere Projekte gilt. Aber die agilen Software Prozesse heißen ja nicht umsonst agil.
Nach einer Studie (hab nicht zur Hand welche), scheitern immer noch die meisten Projekte an den unterschiedlichen Vorstellungen zwischen Auftraggeber und Entwickler. Dass du schon Meilensteine eingeplant hast ist gut, aber wähle nicht zu wenige. Es ist natürlich ein "wenig" overhead (jeder Meilenstein kostet Vorbereitungszeit und muss präsentiert werden). Aber viel wichtiger ist, du bekommst Rückmeldung. Und genau diese solltest du dir zusichern lassen. Verpflichte deinen Kunden zur Abnahme von kleinen Meilensteinen, in denen er seine Prioritäten anpassen darf.
So funktioniert Scrum (und das recht gut). Ist eine Technik, die in anderen Industriezweigen schon ein paar Jahrzehnte mehr auf dem Buckel hat und einfach gut funktioniert.
Du erstellst einfach eine Liste von allen Punkten, die realisiert werden sollen (genauer gesagt erstellen Du + Kunde die Liste). Jede Funktion bekommt dann noch eine Priorität. Die legt der Kunde fest. Er sagt einfach wie wichtig ihm welche Funktion ist. Fakt ist, dass in sehr vielen Programmen nur 20% der Funktionalität zu 80% der Zeit benutzt werden. Sind diese 20% sehr gut (perfekt wird es nie geben) implementiert, wird der Kunde dein Projekt eher abnehmen, als umgekehrt.
Nun geht man beim Scrum ein wenig Bottom-Up vor. Du beginnst die wichtigste Grundfunktionalität zu implementieren. Wirklich nur dass was für eine erste Präsentation nötig ist. Schon hier kannst du den ersten Meilenstein ansetzen.
Ein Meilenstein besteht immer aus der Präsentation vor dem Kunden. Dieser hat die Pflicht den Meilenstein zu beurteilen. Er sagt dabei klar was ihm nicht gefällt, aber eben so wichtig (und motivierend) was ihm gefällt. Nach der Präsentation wird dann die Liste der abzuarbeitenden Punkte erneut durchgegangen und geschaut, ob neue Punkte hinzu kommen, bestehende entfernt werden oder Prioritäten sich ändern.
Abgearbeitet wird die Liste immer nach Priorität, es wird nie eine leichte (aber super unwichtige) Aufgabe vorgezogen.
In kurzen Abständen (max. 1 Monat, häufig 14 täglich) wird in der Regel der nächste Meilenstein auf die gleiche Art präsentiert. Ja, dass ist auch schon alles.
Klingt sicherlich etwas komisch/ungewohnt/umständlich, hat aber wirklich viele Vorteile. Dass was die Agilität hier ausmacht sind die kurzen Iterationen. Nach jeder Präsentation kann die Liste der Funktionen geändert werden. Was man auch nicht vergessen darf, es kann auch sehr einfach eine Einigung geben (dass das Projekt eingestellt wird). Das ist überhaupt nicht schlecht. Arbeitet man 2 Jahre an einem Projekt, dass dann zwar super seine Funktionalität erfüllt, dies sogar Verifiziert wurde, nur überhaupt nicht dem Kundenwunsch entspricht (falsche Spezifikation), so waren 2 Jahre für den ... .
Dann steckt also eine Menge Arbeit von einem drin (die man gerne bezahlt hätte), der Kunde hat aber keinen Nutzen davon (will also eher nicht zahlen). Nun ja, gerade als Schüler dürfte der Kunde dort eine bessere Position haben.
Geht bei einem Scrum (oder ähnlicher Technik) etwas schief, so verliert man i.d.R. nur eine Iteration (max 1 Monat). Arbeitet man über mehrere Meilensteine am eigentlichen Ziel vorbei, so kann man sich auch dort leichter einigen. Und da dürfte die Firma doch kulanter sein, als wenn es sich eine Woche vor Fertigstellung herausstellt, dass man unterschiedliche Ziele hat.
Vorallem kann man auch leicht an einem Punkt sagen, dass es schon komplett dem entspricht was die Firma gerne hätte. Es gibt ein paar Punkte, die gerne gefordert werden, die auch einiges an Entwicklungszeit in Anspruch nehmen, aber eben diese nicht Wert sind (schlechter Kosten/Nutzen Faktor). Stehen auf der Liste nur noch solche Punkte, kann es schonmal sein, dass der Kunde nicht auf sie besteht und zufriedener ist, dass Zeit (ein wenig Geld) spart. Natürlich könnte dir genau dieses Geld fehlen, aber viel häufiger ist die Aufwandsabschätzung gerade bei ersten Projekten nicht ganz scharf, so dass man hier und da noch Zeit bekommt etwas anderes zu ändern.
Das Hauptproblem dass du haben wirst (
imho), ist die Kommunikation mit dem Kunden. Jeder hat so seine Ausdrucksweise und häufig sind Sachen gar nicht so klar wie sie scheinen. Das ist dann auch das Problem des Pflichtenheftes, vieles ist Interpretationssache. Ein Anwalt einzubinden dürfte wohl etwas teuer sein und ob Du da schon so von profitierst ist eher fraglich. Gut für dich ist, dass du Schüler bist, da wird die Firma nicht wirklich drauf beharren können/wollen, dass es vertragliche Zusicherungen gab. Aber gerade hier zahlt es sich aus, auch ein wenig unwissender zu wirken (also ohne Anwalt würde ich einem Schüler oder Ähnlichem mehr durchgehen lassen, weil ich mich da eher in dessen lage versetzen würde).
Aber auch das variiert eher mit der Firma und deshalb wie gesagt, zeige ihnen was du machst und lass es dir beurteilen!
Ich finde es gut, dass du dich schon so früh an einem Projekt versuchst. Egal wie es läuft, die Erfahrung ist unbezahlbar. Wünsch dir viel Erfolg!
Gruß Der Unwissende