Heute möchte ich Euch mal näher bringen, wie bei mir die Entwicklung eines Projektes von statten geht. Das passt ja auch gerade ganz gut, da ich momentan an meiner neuen Website arbeite.
Die Idee
Bevor ich etwas entwickeln möchte, muss ich ja erst einmal wissen was es werden soll. Nun laufe ich natürlich nicht durch den Alltag und überlege mir zwanghaft welches Projekt ich als nächstes privat angehen könnte. Die Ideen kommen meisten sehr spontan und entstehen bei Überlegungen zu bestimmten Themen oder bei Gesprächen mit Bekannten und Freunden.
Gelegentlich klaue ich auch ein paar Ideen, zum Beispiel von anderen Websiten, und nehme diese dann. Das geht besonders gut, da ich die meisten Projekte in PHP schreibe. Wenn ich eine Idee klaue, dann um sie besser umzusetzen oder weil ich die Funktionsweise dahinter verstehen möchte.
Realisierbar?
Nach der Idee stelle ich mir die Frage, ob das Projekt überhaupt realisierbar wäre. Vor allem geht es mir dabei auch um die Kosten-Nutzen-Rechnung. Unter Kosten verstehe ich in diesem Fall besonders den Zeitaufwand und vor allem meine aufzubringende Geduld, welche an manchen Tagen gleich null ist und mich schon kleinste Fehler im Programm aufregen.
Danach muss ich natürlich überlegen welche Programmiersprache ich verwende und ob ich die nötigen Fähigkeiten in dieser habe, um ein Projekt zu entwickeln. Dabei spielt auch meine Lernbereitschaft eine große Rolle. Etwas neues in PHP zu lernen, um ein Projekt zu entwickeln, ist mir zum Beispiel lieber als beispielsweise in Java. Allerdings glaube ich, dass man bei jedem Projekt etwas neues dazu lernt und so ist Lernbereitschaft wohl etwas, dass man sowieso voraussetzen sollte.
Die Planung
Wenn ich dann eine Idee habe und mir relativ sicher bin dass ich diese umsetzen kann, mache ich mich an die Planung dieses Projektes ran. Diese ist weder sehr ausführlich, noch komplex und durch strukturiert. Die meisten Überlegungen und Ideen sind in meinem Kopf und meistens bleiben sie auch da drin. Andere wiederum, wie zum Beispiel die Datenbank und deren Tabellen oder das grobe Layout, notiere ich auf meinem Whiteboard. Diese Art Tafel ist wirklich sehr nützlich und ich kann darauf viele Informationen mit großer Schrift schreiben.
Der Rest kommt während der Entwicklung des Projektes von selbst.
Die Entwicklung
Danach geht es dann auch schon in den Hauptteil der Entstehung, welche wohl auch am meisten Zeit kostet und in der man den größten Aufwand betreibt.
Bei der Entwicklung kläre ich meistens als erstes ein Paar offene Fragen. Ich lerne also zuerst das, was mir fehlt und dann mache ich mich daran es anzuwenden. Zum Beispiel habe ich mich für die neue Website als erstes erkundigt, wie man bestimmte Inhalte einer XML-Datei ausliest, da in dieser die Feeds von WordPress und twitter gespeichert werden. Auch mit dem erstellen eines Drop-Down-Menüs habe ich mich auseinandergesetzt, da ich eine solche Art von Navigation noch nie vorher benutzt habe.
Wenn ich mein Wissen dann erweitert habe, kann ich mich an das eigentliche Projekt machen. Dabei beginne ich meistens mit dem erstellen des Layouts, da ja in diesem alles angezeigt werden soll. Es mag vielleicht nicht unbedingt die richtige Reihenfolge sein, denn schließlich setze ich damit das Aussehens vor die Funktionalität, aber so mache ich es halt.
Danach entwickle ich alle nötigen Funktionen. Vor allem jene, welche ich mehrmals verwenden möchte beziehungsweise muss.
Meistens versuche ich ohne eine Datenbank aus zukommen, auch wenn mir die Vorteile durchaus bewusst sind. Für mich persönlich ist es immer der unangenehmste Teil, welchen ich so lange wie möglich hinausschiebe. Irgendwann bin ich dann aber an einem Punkt, an dem ich mich durchringen muss, da ich sonst nicht weiter komme. Meistens bin ich dann auch überglücklich, wenn dieser Teil erledigt ist und funktioniert.
Nach diesen Schritten geht der Rest dann eigentlich ganz schnell. Dort ein wenig was optimieren, da etwas umschreiben und in dieser Zeile noch etwas ändern. Beim kommentieren meines Quelltextes bin ich ehrlich gesagt immer ein wenig schlampig. Meistens fange ich damit wirklich nur an, wenn ich selbst den Durchblick verliere. Ansonsten kommt das ganz zum Schluss, wenn ich mir sicher bin, dass ich am eigentlichen Quelltext nichts mehr verändere. Allerdings kann man jedes Programm in irgendeiner Hinsicht optimieren.
Während der Entwicklung muss ich dann leider auch mal ein paar Abstriche machen, da ich merke, dass das Ganze nicht so funktioniert wie ich mir es vorgestellt habe. Dieser Fall kommt aber eher selten vor, da ich schon ziemlich deprimiert oder verzweifelt sein müsste, um in den Weiten des Internets keine Lösung zu finden oder mir selbst eine auszudenken, wobei ich letzteres natürlich als erstes versuche.
Die Tests
Tests führe ich auch schon während der Entwicklung durch. Ansonsten wäre ein einziger gravierender Fehler beim Abschluss viel zu fatal. Richtig ausführlich, wenn alle Funktionen zusammengeschweißt sind und als Einheit funktionieren, teste ich aber erst zum Schluss. Bei Webanwendungen und dergleichen in verschiedenen Browsern und meistens lade ich das Projekt schon mal irgendwo hoch, um von Bekannten und Freunden ein Feedback zu bekommen, Fehler zu bemerken welche bei mir nicht auftreten und zu gucken wie der Server klar kommt.
Danach geht es dann an die Fehlerkorrektur und das erneute Prüfen von Funktionen. Dass ist quasi eine Endlosschleife, bis die Anzahl an Fehler null beträgt.
Der Abschluss
Wenn dann alles passt, freue ich mich natürlich in erster Linie über das funktionierende Programm. Außerdem nutze ich es danach selbst oder stelle es im Internet für die freie Nutzung zur Verfügung.