Stell dir mal vor du willst ein Haus bauen. Das ist ein großes Vorhaben, ganz klar.
Du brauchst ein Grundstück und einen Architekten, der dir einen Plan ausarbeitet und diesen sauber aufzeichnet.
Dann brauchst du viel Material, natürlich Maschinen und entsprechend geschulte Handwerker um diese zu bedienen.
Letztendlich verläuft beim Bau nicht immer alles nach Plan. Hier und da muss improvisiert werden –
und dann bist du froh, wenn du einen fähigen Bauleiter hast, bei dem die Informationen zusammenlaufen und der alles für dich löst.
Niemand käme auf die Idee, hier eine Bauphase auszulassen um Zeit oder Geld zu sparen.
Den Elektriker einfach weglassen? Einfach mit dem Dach anfangen,
weil der Zimmerer gerade Zeit hat? Jedem ist sofort klar, dass das Blödsinn ist.
Aber bei Software Projekten wird genau das regelmäßig gemacht.
Wäre die IT Landschaft um uns herum ein Dorf und jede Software ein Haus darin, dann würde das so aussehen, wie ein indischer Slum.
Warst du schonmal in einem indischen Slum? Ich schon, und ich kann dir sagen, dass es dort keine geraden Linien gibt.
Es ist eher wie ein wild gewachsener Organismus aus dem es hier und da raustropft. Die Löcher werden dann mit einem Stück Blech vernagelt
(falls vorhanden) oder mit einem Fetzen Stoff gestopft. Stromkabel hängen in dicken ausgefransten Bündeln über jeden Zaun,
denn wenn irgendwo Strom hin soll, wird nicht geschaut ob da schon ein Kabel hinführt, sondern ein neues gelegt.
Zwischen all diesem Chaos ragt dann ein verglastes Hochhaus zwischen die Wolken,
aus deren oberster Etage man das Gewusel unten nicht mehr sieht.
Um zu verstehen wie es zu dem Wildwuchs kommt, müssen wir uns ein kleines Software Projekt ansehen.
Ich stelle mir vor, ich bin jetzt mal kein Programmierer mehr, sondern jemand, der sich nicht mit Codes und Technologie und
dem ganzen nerdigen Kram auskennt, mit dem ich mich jeden Tag beschäftige und würde gerne eine App bauen,
mit der man To-do-Listen erstellen kann.
Also nehme ich mir einen Stift und ein Blatt Papier und zeichne ungefähr das hier drauf:
Das gebe ich jetzt einem Entwickler und der sagt: das kostet 800€ und ist morgen fertig.
Super, ich bestelle gleich und freue mich schon drauf, meine To-dos reinzuhacken.
Am nächsten Tag zeigt mir der Entwickler meine neue App, die sieht genau so aus:
Ich aber hatte eigentlich etwas erwartet, dass ungefähr so aussieht:
Um kurz eine Lanze zu brechen: Das ist weder vollkommen meine Schuld als Auftraggeber, noch die meines Entwicklers.
Genau genommen hat er sich an seine Anweisungen gehalten und ich habe einfach damit gerechnet,
dass er meine Zeichnung entsprechend meiner Idee vor dem Hintergrund aktueller Technologien interpretiert.
Schließlich sage ich dem Friseur auch nicht, wie er jedes Haar einzeln schneiden soll, sondern eben nur: vorne kurz, hinten lang. Oder so ähnlich.
Aber es verdeutlicht eine Problematik, wie sie jeden Tag vorkommt. Ungefähr so, als würde man mit dieser Zeichnung
und einem Sack voll Steinen zu einem Maurer gehen, damit er ein schönes Haus baut.
In Projekten der Software Entwicklung wundert man sich regelmäßig über diese Missverständnisse.
Gehen wir in unserem App-Beispiel mal weiter. Eventuell setze ich mich jetzt hin und fertige eine pixelgenaue Zeichnung an von meiner App.
Die gebe ich wieder dem Entwickler und der sagt: Ok, dauert eine Woche und kostet 3.500€. Ok, zweiter Versuch.
Eine Woche später kommt er zurück und präsentiert mir die App auf seinem Smartphone.
Sie sieht genauso aus wie meine Vorlage und funktioniert exakt wie gewünscht.
Super, ich will sie gleich auf meinem Handy installieren.
Installieren? Wie jetzt, das ist eine Java App für Android Telefone, ich aber habe ein iPhone und da läuft nur Swift und ein bisschen Objective-C.
Verdammte Axt, irgendwas läuft hier schief. Mein Fehler hier war von Anfang an nicht unbedingt die fehlende Definition der Sprache,
oder dass die Zeichnung zu undetailliert war. Auch nicht, dass das Projekt nicht bis ins letzte Detail durchgeplant war. Nein!
Der Fehler war von Beginn an: Ich habe mir nicht eingestanden, dass ich keine Ahnung habe von Software Entwicklung
und deswegen immer wieder von Themen überrascht werde, von denen ich gar nicht wusste, dass ich sie gar nicht wusste.
Ein kleiner Rollentausch: In Wirklichkeit bin ich nicht unerfahren in Technologie. Ich lese mich täglich durch die dunkelsten Foren,
um herauszufinden, wie ich ein Micro-Frontend serverseitig mit der V8-Engine rendern kann.
Aber ich würde mir niemals zutrauen ein Haus zu planen, ohne mich vorher mit einem Architekten und einem Statiker abzustimmen.
Auch würde ich kein Fahrrad konstruieren oder mir die Haare selbst schneiden (auch wenn ich schon mal drüber nachgedacht habe).
Viele andere Leute würden das auch nicht machen, weil sie einfach wissen, dass sie von der Materie zu wenig verstehen.
Aber wenn es um Software geht sind alle Experten, die schonmal eine App installiert haben.
Ich spreche hier nicht von der Einführung von Windows 365 durch den CIO einer Firma. Es geht mir hier um die vielen kleinen Tools,
die in jeder Abteilung helfen die Prozesse zu gestalten. Das sind oft kleine Entwicklungen und aus Mangel an Zeit,
wird oft derjenige mit dem Projekt beauftragt, der sich am besten mit dem Computer auskennt.
Aber was wir bei einer Software sehen, ist nur die Spitze des Eisbergs - oft noch nicht mal das.
Ungefähr 98% der Bestandteile einer Anwendung bekommt der User nie zu Gesicht.
Du glaubst mir nicht? Drücke mal auf die rechte Maustaste und dann auf „Seitenquelltext anzeigen“.
Was du jetzt siehst, ist gerade mal das, was an die Oberfläche gespült wurde. Jetzt siehst du vielleicht 5%.
Der Rest liegt im Verborgenen und kann dir auch egal sein. Man muss sich nicht mit allem auskennen.
Das will, glaube ich, am Ende auch niemand. Aber ich denke es ist wichtig zu wissen, was man weiß und was nicht.
Das ist kein Eingeständnis von Überforderung sondern genau das Gegenteil: es ist der Beweis von Kompetenz.
Das könnte Dir gefallen
App to go
Wir bauen Deine App an einem Tag
Denn zu wissen, was man kann und was man nicht kann, macht einen guten Sportsmann aus.
Jemanden zu haben, der deine Interessen kennt und sich für diese einsetzt,
gleichzeitig aber auch mit einem Entwickler auf Augenhöhe sprechen kann – genau das ist es was du brauchst und genau das ist es auch
was du willst und was dir am Ende sehr viel Nerven spart ( und dem Entwickler erst ;)).
Und ja – IT Projekte können Spaß machen, rund laufen, keine unnötigen Kosten verursachen und
richtig cool sein für alle Beteiligten. Und ja, einige Entwickler und vor allem Agenturen übernehmen auch die Zeichnung von Mockups,
das Projektmanagement, das Testing und das Qualitätsmanagement. Aber das müsste man vorher rausfinden und das kostet extra -
es macht ja auch viel Aufwand.
Also was machen wir jetzt, damit du einerseits deine Ressourcen sparen kannst und deine Software trotzdem nicht aussieht wie
eine wild zusammengezimmerte Hütte, sondern wie ein spießiges Häuschen in der Vorstadt mit frisch geharkter Kieseinfahrt?
Mein Angebot ist folgendes: Du gibst mir eine Skizze deiner Idee und ich stelle die richtigen Fragen.
Dann mache ich daraus einen detaillierten Bauplan. Ich entwerfe ein grobes Design deiner Software und beschreibe den nötigen Informationsfluss
und die Technologien im Hintergrund. Das mache ich für dich kostenlos.
Damit bist du jetzt in der Lage, vergleichbare Angebote bei Entwicklern oder Agenturen einzuholen,
denn jetzt hat jeder denselben Wissensstand und es muss nicht wild interpretiert werden.
Und ja: auch ich würde gerne mein Angebot für die Umsetzung mit abgeben - mein Pferd mit ins Rennen schicken.
Warum mache ich das? Zum Einen möchte ich dich gerne als meinen Kunden gewinnen. Zum Anderen möchte ich, dass
du nach dem Projekt sagst: "Super, der hat das wunderbar gemacht, mit dem möchte ich weiterarbeiten".
In diesem Fall fällt meine Vorleistung nicht allzusehr ins Gewicht.
Wenn du also möchtest, nehme ich deine Idee, reichere sie mit aktuellem Tech Know How an und erschaffe daraus eine einfache Software,
die genau das macht, was du brauchst - nicht mehr und nicht weniger: dein Simple Tool.
Und wenn du dich für einen anderen Entwickler entscheidest, dann freut er sich wenigstens über eine detaillierte Projektbeschreibung ;)