Professioneller Auftrag: Vorgehen!

tim-pong

Mitglied
Hallo Leute,

ich weiß nicht, ob ihr die Frage hier schon einmal behandelt habt, aber es würde mich trotzdem interessieren.

Ich habe vor Kurzem meinen ersten bezahlten und professionellen Auftrag an Land gezogen, die WebSite eines Plattenlabels. Es soll ein Newsscript, eine Galerie, ein Gästebuch, einen Shop und weitere kleine Spielzeuge (Uhrzeit, Mailformular, etc.) geben.

Das Design habe ich bereits vom Designer bekommen, jetzt soll ich das Ganze programmieren. Ich hab da auch gar kein Problem mit, nur, da es sich ja um einen kommerziellen Auftrag handelt, wird es ja wahrscheinlich auch eine gewisse Professionalität erfordern - in Sachen Programmierung.

Daher meine Frage: Wie plant ihr euer Vorgehen, wie programmiert ihr das Ganze, ohne dass es hinterher ungeordnet, unübersichtlich und evt. auch langsam ist? Macht ihr euch einen Plan oder Skizzen oder hackt ihr drauf los? Schreibt ihr erst und tilgt dann alle Fehler und Unübersichtlichkeiten?

Gruß
Tim
 
moin


Das ist natürlich gut, erst nen großen Auftrag annehmen und dann Gedanken über die Ausführung machen.
Naja, du wirst kaum drum rum kommen dir erst Gedanken zu machen, vielleicht klappt es auch mit einfach drauf los tippen, aber das wird je größer das Projekt ist immer unwahrscheinlicher.
Ablaufpläne, Skizzen des Frontend, Anordnung der Skripte, Module erstellen und und und
Software Engineering ist hier das Zauberwort.


mfg
umbrasaxum
 
Ich meine auch, dass es nicht besonders klug ist, erst einen Auftrag anzunehmen und sich erst dann Gedanken darüber zu machen. Vorher solltest du dir zumindest Gedanken darüber gemacht haben, wie umfangreich der Auftrag ist. Dabei kann oft ein Lastenheft, später ein Pflichteheft weiterhelfen.

Auf jeden Fall solltest du dich erst einmal hinsetzen und ein paar Notitzen machen. Einfach drauflostippen führt meistens nicht weit.
 
Wenn wir grad beim Thema sind: Kann man eigentlich ein Pflichtenheft verlangen? Wenn z. B. der Auftraggeber noch keins rausrücken will/kann? Würde mich mal interessieren. Sonst kann der ja am Ende kommen und noch tausend zusätzliche Features fordern.
 
Ob du eins verlangen kannst weiß ich nicht. Aber ich glaube in der Regel kannst du dir ja aus den Wünschen des Kunden ein Pflichtenheft erstellen und dieses das als Grundlage nehmen. Du musst es dir natürlich vom Auftraggeber unterschreiben lassen. Dann hast du eine solide Grundlage.
 
Ein Pflichtenheft dient ja gerade dazu, dass die zu erfüllenden Leistungen in schriftlicher Form vermerkt sind und beide Parteien, der Auftraggeber und -nehmer, somit eine klar definierte Grundlage haben. Dies ist eigentlich für beide Seiten ein Vorteil: denn beide wissen nun genau, was Bestandteil des Auftrags ist – nichts mehr und nichts weniger. Daher sollten auch das Lastenheft und Pflichtenheft besonders gut ausgearbeitet sein, damit keine Aspekte ausgelassen werden.
 
Ein Pflichtenheft (oder in meinem Fall eine Pflichtenliste, es ist kein Monster-Vertragswerk) habe ich bereits mit dem Kunden ausgehandelt, bzw. besprochen. Das ist auch nicht das Problem. Nur über dieses...

Ablaufpläne, Skizzen des Frontend, Anordnung der Skripte, Module erstellen und und und
Software Engineering ist hier das Zauberwort.

...würde ich gerne mehr von EUCH erfahren. Wie geht ihr vor, wenn ihr programmiert?

Da hat ja wahrscheinlich jeder seinen eigenen Stil? Oder behandelt ihr das als "Betriebsgeheimnis"?

PS: Denkt dran, ihr habt die Ahnung, ich versuche sie mir gerade anzueignen ;)

Viele Grüße
Tim
 
Ablauf meiner Softwareentwicklung in Stichworten:
Welche Funktionalität wird benötigt?
Welche Daten benötige ich dafür?
Wie strukturiere ich die Daten (im Hinterkopf groben Plan über Abläufe der einzelnen Funktionalitäten)?
Abläufe/Interaktion detaillierter zu Papier bringen.
Wo kann ich Funktionalität zusammenfassen?
Grobe Entwicklung eines Klassen-/Modul-Modells.
Interaktion bestimmen. Wer wird von wem in welchem Zusammenhang aufgerufen, wer muss wen bzw. wessen Daten kennen?
Verfeinerung des Klassenmodells. Benennen von Funktionen. Bestimmen von Parametern und Rückgabewerten.
Ausarbeiten von Funktionen/Algorithmen, Pseudo-Code, verbale Beschreibung von Funktionsinhalten.
Jetzt geht es so langsam an den Rechner bzw. die IDE.
Module/Klassen möglichst unabhängig von den anderen schreiben und testen.
Nach und nach zusammenfügen (vorher die Reihenfolge, in der gecodet wird, überlegen!).
Fehlersuche im fertigen Programm.
Parallel dazu: Doku schreiben, auch wenn es erstmal nur Kommentare im Quellcode sind (Java-Doc, PHP-Doc o.ä. bei jeder neuen Funktion oder Änderung aktualisieren).

So linear, wie hier beschrieben läuft es natürlich nicht, aber die Trennung zwischen Programmierung und Konzept tritt schon sehr deutlich zu Tage (den Fehler das stark zu mischen macht man nur einmal bei einem größeren Projekt).

Wenn ich in einem der späteren Punkte sehe, dass ich oben (z.B. bei den Daten) etwas vergessen habe, mache ich erstmal Schluss und fange bei den Daten wieder an, baue die benötigten Daten ein und gehe die Schritte nochmal durch, ob mir dadurch nicht noch etwas auffällt.

Mit den Daten zu beginnen ist bestimmt nicht der Königsweg, aber ich komme recht gut damit klar und habe dadurch eine bessere Übersicht über das Projekt. Andere mögen mehr Übersicht gewinnen, wenn sie sich zunächst Interaktion und Abläufe aufschreiben.
Wenn man im Team arbeitet, sind sicherlich zuerst die zusammenhängenden Aufgaben sinnvoll zu identifizieren und zu verteilen. Als nächstes steht dann die Definition von Schnittstellen und Protokollen auf dem Plan. Letzteres kling so banal, aber es ist megawichtig bei Teamarbeit und wird immer wieder vernachlässigt. Schnittstellen und Protokolle kann man nicht detailliert und ausführlich genug festlegen. Ja, hier schreibt jemand aus bitterer Erfahrung, während der Programmierphase Schnittstellen zu ändern kann einen in den Wahnsinn treiben.

Je größer ein Projekt ist, desto strenger halte ich mich an diese Struktur, auch wenn es immer wieder lockt, dies oder jenes mal eben zu implementieren.

Gruß hpvw

PS: Kritik und andere Vorschläge erwünscht!
 

Neue Beiträge

Zurück