Nein, der SSH-Key ist nicht fürs Online-Banking Drum prüfe wer sich ernsthaft bindet!

Sebastian Bork | Samstag, 20 Juni 2015. facepalm, kollegen, kunden

Vor kurzem arbeiteten wir (diese Projekt lief nicht über mich allein) an einem größeren Magento-Shop, bei welchem wirklich viel - und auch durchaus anspruchsvolle - Entwicklungsarbeit zu leisten war. Sagen wir einfach: Der Kunde hatte nicht nur einen wahnsinnig großen Datenbestand (welcher natürlich schon im Entwicklungssystem komplett mitgeschleift werden sollte), sondern vorallem auch sehr spezielle und teils auch (naja, nennen wir es mal vorteilhaft so) exotische Vorstellungen hinsichtlich Funktion und Bedienbarkeit.

Kleine Randnotiz: Vor uns waren schon mehrere andere Entwickler tätig, welche das Projekt (wie uns zugetragen wurde, auch durchaus fluchtartig) wieder verlassen hatten. (Wirft natürlich ein paar Zweifel auf, aber wir haben das vorerst auf die Komplexität der Anforderungen geschoben.)

Wie wir aber schnell erfahren sollten, war dises Problem durchaus hausgemacht!

Beim Durchkrempeln des Systems und Beheben von Funktionen, welche eigentlich schon Live-Status haben sollten, aber offensichtlich nie das Licht der Welt erblickt hatten, legte uns der Kunde immer wieder sehr verständlich nahe, dass es doch nicht um reibungslose Funktion ginge, sondern um besonders schnelle und zumindest vorerst rudimentär einsatzfähige Umsetzung.

Wir versuchten (mit Zähneknirschen natürlich) derartigen Forderungen gerecht zu werden, kamen aber nicht umhin den Kunden schier zahllose Male darauf hinzuweisen, dass das in einem Magento einfach so nicht möglich ist, da es schlicht zu Fehlverhalten des Systems kommen wird und dann im schlimmsten Falle gar nichts mehr funktioniert.

Erneute Randnotiz: Es wurde u.a. wörtlich gefordert, dass wir manuell in der Datenbank bestimmte Felder der Kunden-Entitäten auf "nicht erforderlich" setzen, damit unser Auftraggeber bspw. Kunden ohne Passwort, ohne Vollständigen Namen oder gar komplett ohne E-Mail importieren könne. (Den Sinn dahinter haben wir nie verstanden! Schließlich sind derartige Datensätze in Magento schlicht defekt und allem voran sehr ungesund)

Jedenfalls, waren diese warnenden Anmerkungen - aus seiner Sicht wörtlich "Widerrede" - und unser Bestreben nach Korrektheit dem Kunden augenscheinlich nicht ganz soo recht, wodurch wir während unserer paar Wochen an dem Projekt etliche weitere Entwickler kommen und gehen sahen.

Unser Auftraggeber schien in dieser Zeit alles abzugrasen, was auf seiner Seite auch nur das Wort Magento verwendete. Die guten unter diesen "Anwärtern" leisteten erneut zu viel "Widerrede", die anderen waren einfach "nicht schnell genug" (Seine Worte nicht meine). Ich denke ich muss nicht erwähnen, dass dies für uns zu weiteren, nicht ganz so marginalen, Aufräum- und Korrekturarbeiten führte. Einer von denen schrottete mit seinem Commit sogar gleich mal das komplette System, welches wir zum Glück wieder zurücksetzen konnten ... ein Hoch auf die Versionskontrolle GIT an dieser Stelle!

Und damit sind wir nun auch endlich beim eigentlichen Punkt angelangt! Denn, einer von Ihnen bleibt mir wohl immer in besonderer Erinnerung! Nennen wir Ihne einfach Mr. X!

Mr. X ist "Entwickler"; Ein durchaus gut bezahlter. Er nimmt für einfache Arbeiten (HTML, CSS und Co.) 29EUR die Stunde (netto). Für PHP, SQL oder wie hier Magento - auf Basis des Zend-Frameworks - natürlich entsprechend mehr! Mr. X konnte auch wirklich gut reden und sich auch toll in Szene setzen, keine Frage. Er überzeugte also den Kunden durch seinen Internetauftritt und ein persönliches Gespräch und bekam von diesem die Möglichkeit sich zu beweisen.

Wie ich schon hatte durchblicken lassen, war das ein sehr üppiges System (also eigener Root-Server inkl. Firma, welche mit dessen Management beauftragt war) und auf Grund der vielen Baustellen und "Entwickler" wurde von uns recht zeitig GIT als Vesionskontrolle eingesetzt (was ja auch schoneinmal das Projekt rettete). Nun kam es also soweit, dass Mr. X in das Projekt eingewiesen werden sollte.

Er wurde also darüber informiert, dass hier noch mehrere Entwickler beteiligt seien und daher ein Versionskontrollsystem zum Einsatz käme. Reaktion:

Och ne, diese Dinger sind mir viel zu kompliziert!

Als man die Notwendigkeit dessen nocheinmal unterstrichen hatte und darauf zu sprechen kam, dass es sich um GIT handele ... ein Tool, welches eigentlich jede gute Entwicklungsumgebung im Schlaf beherrscht, es für Win, OsX und allem voran Linux lückenlose Implementationen gibt und man doch nur ein bisschen Eingewöhnung bräuchte. Kam erneut eine sehr interessante Reaktion:

Ich benutze keine Versionskontrolle, da ich mich hier nicht festlegen möchte!

Ich habe bis heute nich verstanden, was mir der Künstler damit sagen wollte. Der absolute Knaller jedoch kam, als die Firma, welche den Server betreute unseren neuen "Profi" Mr. X bat, einen Public Key für das SSH anzuliefern. (Ich meine Hallo? Server, Magento, Git, 3.x GB Datenbank? ... Ich würde mich kaputt freuen, wenn Kunden mir immer gleich SSH-Zugang anbieten würden, ohne dass ich explizit danach fragen müsste). Aber nein, man halte sich bitte fest, die Reaktion war:

Wozu denn das? Warum brauch ich denn so einen Key? Wir sind doch hier nicht beim Onlinebanking!

Ab da brannten im Kopf alle Warnleuchten auf Dauertstrom! Das bemerkenswerteste war aber noch, dass Mr. X trotz aller Einwände - selbst seitens der Server-Firma - weiterhin im Rennen blieb!

Es kam wie es kommen musste: Nach nur drei Tagen durften wir schon das erste korrigieren, was Mr. X verbockt hatte! Natürlich ohne GIT (das mochte Mr. X ja nicht), alles per Hand. Hier war dann nun auch der Punkt erreicht, bei welchem wir dem Kunden leider mitteilen mussten, dass sich unser Honorar ein wenig erhöhen würde, um den Mehraufwand zu kompensieren.

Man kann sich sicher denken, dass der Kunde das nun gleich gar nicht verstehen konnte (obwohl zu erwähnen bleibt, dass unser Stundensatz damit noch immer signifikant unter dem von Mr. X gelegen hätte). Nach dem wir also die bis dato vereinbarhten Aufgaben zuende gebracht hatten, trennten sich dann auch unsere Wege.

Aber nicht für lange: Nach ca. zwei Wochen kam eine Anfrage, ob wir noch ein Backup vom System hätten ... Mr. X hätte alles geschrottet und wär nun auch raus.

Fazit dieser langen Geschichte

Das Maß an Vertrauen, was für die tägliche Arbeit im Bereich der Entwicklung aufgebracht werden muss ist so hoch wie in kaum einer anderen Branche. Und leider gibt es auch Kunden, welche das Bestreben "vertrauenswürdige und gute Arbeit zu leisten" leider auch missverstehen. Als Entwickler sollte man aber trotzdem stets objektiv bleiben und wissen, was man sich zutrauen kann. Niemand sollte es als Schwäche ansehen, wenn ein potentieller Auftragnehmer bekennt, dass ihm etwas nicht liegt; Es ist eine Stärke einzugestehen, was man zu leisten vermag und was nicht! Alles andere führt unweigelich zu Problemen; Denn es ist - vorallem unter Produktionsdruck - ein verdammt schmaler Grat zwischen "schnell noch am Projekt wachsen" und einem kläglichen Scheitern.

Kommentare aktivieren?

Diese Seite verwendet das externe Kommentarsystem DISQUS. Da es durch die Nutzung externer Dienste zwangsläufig dazu kommt, dass Daten des Nutzers an die Server dieses Dienstes gesendet werden, möchte ich jedem Nutzer diese Entscheidung selbst überlassen!.
DISQUS aktivieren