© Ico Maker/Shutterstock.com
PHP End to End - Teil 1

Die richtige Technologie wählen


Bevor ein umfassendes PHP-Softwareprojekt gestartet wird, sind die Anforderungen zu erheben und zu dokumentieren. Bei Webapplikationen gehören neben den Kundenanforderungen auch wichtige Entscheidungen zur Technologie dazu. Eine gemeinsame Diskussionsbasis ist notwendig und muss offen geführt werden.

In einer Vielzahl von Artikeln, Blogeinträgen und Diskussionen in Online-Boards werden die unterschiedlichsten Aspekte rund um ein PHP-Entwicklungsvorhaben diskutiert. Ein solches Format ist angebracht, um die notwendige Tiefe der Betrachtungen zu erreichen. Beispielsweise diskutieren wir die Vor- und Nachteile der zur Auswahl stehenden Frameworks oder die Art und Weise der Anbindung einer Datenbank. Dabei ist uns aufgefallen, dass man aufgrund dieser feingranularen Betrachtungen Gefahr läuft, das große Ganze aus dem Blick zu verlieren. Gerade am Anfang eines neuen Entwicklungsprojekts ist es an der Zeit, einen Blick aus der Vogelperspektive auf das geplante Vorhaben zu werfen. Gemeint sind die Vorgehensweise und die grundsätzlichen technologischen Entscheidungen. Dabei stehen folgende Fragen im Fokus:

  1. Technologieauswahl: Die Breite der zur Auswahl stehenden Möglichkeiten ist heute so groß, dass es schwerfällt, im konkreten Fall eine passende Technologie auszuwählen. Haben wir tatsächlich mehrere Alternativen gegeneinander abgewogen oder sind wir (vereinfacht) so vorgegangen, wie wir es immer machen?

  2. Diskussion mit dem Kunden: Der Auftraggeber hat primär seine fachlichen Anforderungen im Blick. Das ist auch gut so. Dennoch ist er bis zu einem bestimmten Grad mit in die (grundsätzlichen) Auswahlentscheidungen zur Technologie einzubeziehen. Haben wir hier offen und ehrlich beraten und gemeinsam eine passende Option ausgewählt?

  3. Vorgehensweise: Als Entwickler sind uns die einzelnen Schritte bis zum ersten finalen Release vertraut und gewissermaßen in Fleisch und Blut übergegangen. Für viele Kunden ist ein Softwareentwicklungsprojekt jedoch eine einmalige oder seltene Angelegenheit. Der Abteilungsleiter im Vertrieb des Kunden hat nur eine vage oder gar keine Vorstellung davon, welche Schritt zu durchlaufen sind, an welchen Stellen seine Mitarbeit unabdingbar ist und wie lange üblicherweise die einzelnen Vorgänge dauern. Haben wir die Vorgehensweise mit dem Kunden erörtert?

  4. Interne Struktur: Umfassende Softwareentwicklungsprojekte werden in unzählige Teilaufgaben zerlegt, an denen viele unterschiedliche Mitarbeiter beteiligt sind. Sie sind mit Detailfragen beschäftigt. Um jedoch für eine dauerhafte Motivation und damit eine gleichbleibend gute Qualität zu sorgen, ist es nötig, auch hier einen breiten Blick auf das Projekt zu haben. Sind alle Beteiligten umfassend – zum Beispiel im Rahmen einer Kick-off-Veranstaltung und regelmäßigen Meetings zu wichtigen Meilensteinen – informiert, damit alle genau das Ziel und den Weg dorthin kennen?

Im Rahmen einer mehrteiligen Artikelserie wollen wir anhand eines typischen Entwicklungszyklus einer Webapplikation auf der Basis von PHP ein solches Vorhaben betrachten.

Als Ansatzpunkt unserer Betrachtungen wollen wir die Idee der End-to-End-Prozessgestaltung aufgreifen. Hiermit meinen wir im Bereich der Softwareentwicklung, dass wir beim Kunden beginnen, d. h. mit der Erhebung der Anforderungen, und am Ende des Gesamtvorhabens auch wieder beim Kunden ankommen, indem wir ihm die Software zur Verfügung stellen und darüber umfassende weitere Leistungen, wie Wartung, Support usw. anbieten. In Bezug auf das Entwicklungsteam bedeutet dies, dass ein Team durchgängig von Beginn bis Ende am Projekt arbeitet. In diesem Teil der Artikelserie geht es primär um eine Diskussion der richtigen Technologie für das anstehende Webprojekt. Ausgangspunkt sind die spezifischen Kundenanforderungen. Wie kann es gelingen, von Anfang an eine gute Zusammenarbeit mit dem Kunden zu etablieren und sich nicht in technischen Details zu verlieren?

The Big Picture

Sprechen wir von End to End in der Softwareentwicklung, meinen wir die Konzeption und Umsetzung von umfassenden Lösungen, die beim Kunden starten und auch wieder bei ihm enden. Die End-to-End-Softwareentwicklung umfasst mehrere Themen [1]: Software, Hardware und menschliche Fähigkeiten. Es bedeutet, dass nur ein Team durchgängig von Anfang bis Ende an der Umsetzung der Anwendung arbeitet. Diese durchgängige Arbeitsweise beschleunigt den Workflow. Notwendige Änderungen können schneller berücksichtigt und Ressourcen gespart werden. Jeder Entwickler, der am Entwicklungsprozess beteiligt ist, kennt vollständig die endgültigen Ziele, Meilensteine und die Art der Aufgaben, mit denen er sich befassen wird. Eine End-to-End-Vorgehensweise wirkt sich dann qualitätssteigernd auf alle Phasen aus:

  1. Planung: Wir haben die Möglichkeit, die Wünsche der Nutzer direkt in der Planung umzusetzen. Nutzerforschung und Projektplanung erfolgen aus einer Hand.

  2. Codierung: Von der Planung bis zur Umsetzung gibt es keine Brüche. Es ist nicht erforderlich, die Details der anstehenden Prozesse zu erläutern. Das Team ist in der Zusammenarbeit erprobt und man kennt die Knackpunkte.

  3. Aktion: Man kommt schneller zum Handeln, d. h. zwischen der Planung und der Umsetzung klafft keine große zeitliche Lücke. Die Umsetzung erfolgt schneller und damit verkürzt sich die Time to Market.

  4. Auswertung: Die letzten Schritte umfassen eine Bewertung des Plans und aller durchgeführten Arbeiten. Die Analyse gestaltet sich einfacher. Wenn es Vorschläge gibt, können diese in der Zukunft besser eingearbeitet werden.

Kommt Ihnen bei der Vorstellung dieser Schritte die Idee von DevOps in den Sinn, geht es Ihnen wie den Autoren. Mit dem Ansatz von DevOps wird versucht, die Lücke zwischen dem Betrieb und der Entwicklung zu schließen. Software soll innovativ sein, Probleme lösen und vor allem sollen aktuelle Versionen zeitnah bereitstehen und möglichst fehlerfrei funktionieren. Dafür ist die IT zuständig. Eine Trennung in Betrieb und Entwicklung ergibt für Außenstehende keinen Sinn. Diese Aufspaltung hat historische Gründe und führte zu unterschiedlichen Prioritäten der Bereiche. Demnach ist der Entwicklungsbereich stark daran interessiert, die implementierten Features möglichst kurzfristig an die Nutzer der Software auszuliefern. Dem IT-Betrieb ist dagegen vorrangig an einem kontinuierlichen und sicheren Betrieb der gesamten IT-Landschaft gelegen. Die Ü...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang